mutation<T, P> function
BloomMutation<T, P>
mutation<T, P>({
- required MutationFn<
T, P> mutate, - List? optimisticKey,
- OptimisticUpdater<
T, P> ? optimisticData, - List<
List> invalidateKeys = const [], - OnMutateCallback<
P> ? onMutate, - OnSuccessCallback<
T, P> ? onSuccess, - OnErrorCallback<
P> ? onError, - OnSettledCallback<
T, P> ? onSettled,
Creates a declarative mutation with optional automated optimistic rollback and cache invalidation.
Example:
final deleteItem = mutation<bool, int>(
mutate: (id) => api.deleteItem(id),
invalidateKeys: [['items']],
);
Implementation
BloomMutation<T, P> mutation<T, P>({
required MutationFn<T, P> mutate,
List<dynamic>? optimisticKey,
OptimisticUpdater<T, P>? optimisticData,
List<List<dynamic>> invalidateKeys = const [],
OnMutateCallback<P>? onMutate,
OnSuccessCallback<T, P>? onSuccess,
OnErrorCallback<P>? onError,
OnSettledCallback<T, P>? onSettled,
}) {
return BloomMutation<T, P>(
mutateFn: mutate,
optimisticKey: optimisticKey,
optimisticData: optimisticData,
invalidateKeys: invalidateKeys,
onMutate: onMutate,
onSuccess: onSuccess,
onError: onError,
onSettled: onSettled,
);
}