Skip to content

andreaswierm/repo_scaffold

Repository files navigation

Repo Scaffold

This project aims to give a simple interface to create repositories that can be used with n number of queries and mutations

How to use

Create your first first repo

class ExampleRepo extends Repo {
  final List<int> numbers;
}

Query

Create a query

class ListAllNumbersQuery implements RepoQuery<Future<List<int>>> {
  @override
  Future<List<int>> query(ExampleRepo repo) async {
    return repo.numbers;
  }
}

Use query

final numbers = await ExampleRepo.query(
  ListAllNumbersQuery(),
);

Mutation

Create mutation

class AddItemMutation implements RepoMutation<Future<void>> {
  final int item;

  AddItemMutation({
    required this.item,
  });

  @override
  Future<void> mutate(ExampleRepo repo) async {
    repo.numbers.add(item);
  }
}

Use mutation

await ExampleRepo.mutate(
  AddItemMutation(
    item: 5,
  ),
);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages