fuery_core 0.0.1 copy "fuery_core: ^0.0.1" to clipboard
fuery_core: ^0.0.1 copied to clipboard

Asynchronous State Management for Dart

Fuery Core #

Asynchronous State Management for Dart. #

Features #

  • Async data fetching, caching, invalidation
  • Mutation with side effect

Installation #

flutter pub add fuery_core

Basic Usage #

Query #

int id = 2;

// QueryResult<Post, Error>
late final post = Query.use<Post, Error>(
  queryKey: ['posts', id],
  queryFn: () => repository.getPostById(id),
);

...

print(post.data.value); // Instance of 'Post'
print(post.status); // QueryStatus.success

Mutation #

// MutationResult<Post, Error, void Function(String), Future<Post> Function(String)>
late final createPost = Mutation.args<String, Post, Error>(
  mutationFn: (String content) => repository.createPost(content),
  onMutate: (args) => print('mutate started'),
  onSuccess: (args, data) => print('mutate succeed'),
  onError: (args, error) => print('mutate error occurred'),
);

createPost.mutate('some content');
// or
await createPost.mutateAsync('some content');

// MutationResult<Post, Error, void Function(), Future<void> Function()>
late final removeAll = Mutation.noArgs<void, Error>(
  mutationFn: () => repository.removeAll(),
  onMutate: () => print('mutate started'),
  onSuccess: (data) => print('mutate succeed'),
  onError: (error) => print('mutate error occurred'),
);

removeAll.mutate();
// or
await removeAll.mutateAsync();

Fuery Client #

// invalidate
Fuery.invalidateQueries(queryKey: ['posts']);

// configuration global options
Fuery.config(QueryOptions(
  gcTime: 1000 * 60 * 60,
  staleTime: 0,
  refetchInterval: 1000 * 60 * 30,
));

Todo #

  • Infinite Query
  • More complex features like query-core (from react-query)
2
likes
0
points
45
downloads

Publisher

unverified uploader

Weekly Downloads

Asynchronous State Management for Dart

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, rxdart

More

Packages that depend on fuery_core