BloomMutation<T, P> class
Asynchronous mutation manager with automated optimistic updates, automatic rollback, and cache invalidation.
Encapsulates execution state signals (data, status, error), executes optimistic updates against BloomData query cache, rolls back automatically on error, and invalidates target query keys.
Example:
final createPost = BloomMutation<Post, Map<String, dynamic>>(
mutateFn: (params) => api.createPost(params),
optimisticKey: ['posts'],
optimisticData: (params, oldPosts) => [Post.fromMap(params), ...?oldPosts],
invalidateKeys: [['posts']],
);
await createPost.mutate({'title': 'New Article'});
Constructors
-
BloomMutation({required MutationFn<
T, P> mutateFn, 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 BloomMutation instance.
Properties
-
data
→ ReadonlySignal<
T?> -
Reactive signal holding the latest successful result data, or
null.no setter -
error
→ ReadonlySignal<
Object?> -
Reactive signal holding any error thrown during execution, or
null.no setter - hashCode → int
-
The hash code for this object.
no setterinherited
-
invalidateKeys
→ List<
List> -
List of query cache keys to invalidate upon successful completion.
final
- isError → bool
-
Whether the mutation failed with an error.
no setter
- isIdle → bool
-
Whether the mutation is in MutationStatus.idle status.
no setter
- isPending → bool
-
Whether the mutation is actively executing in background.
no setter
- isSuccess → bool
-
Whether the mutation succeeded.
no setter
-
mutateFn
→ MutationFn<
T, P> -
The underlying mutation execution function.
final
-
onError
→ OnErrorCallback<
P> ? -
Optional hook invoked on mutation error.
final
-
onMutate
→ OnMutateCallback<
P> ? -
Optional hook invoked before mutation execution.
final
-
onSettled
→ OnSettledCallback<
T, P> ? -
Optional hook invoked when mutation settles.
final
-
onSuccess
→ OnSuccessCallback<
T, P> ? -
Optional hook invoked on successful mutation.
final
-
optimisticData
→ OptimisticUpdater<
T, P> ? -
Optimistic data transformation callback applied before network resolution.
final
- optimisticKey → List?
-
Optional query cache key targeted for optimistic updates.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
status
→ ReadonlySignal<
MutationStatus> -
Reactive signal indicating the current mutation lifecycle status.
no setter
Methods
-
mutate(
P params) → Future< T?> -
Safely executes mutation with parameters
params. -
mutateAsync(
P params) → Future< T> -
Executes mutation returning the resolved data
Tor rethrowing the caught error. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reset(
) → void - Resets mutation state signals to MutationStatus.idle and clears data and error.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited