Standard Repositories

pub package shorebird ci codecov style: very good analysis License: MIT

Provides an interface for Repositories in your Flutter apps.

If you've never heard of the concept of repositories, you can read about theme in the bloc documentation.

Usage

Create a repository for a particular type

import 'package:standard_repositories/standard_repositories.dart';

class MyRepository {
    MyRepository();

    final repository = Repository<String>(repositoryName: 'my_repository');

    void makeUpperCase() {
        repository.value = repository.value.toUpperCase();
    }
}

Use the repository in your app

final repository = MyRepository('Hello, world!');
final subscription = repository.stream.listen((value) {
    print(value);
});

repository.makeUpperCase();

subscription.cancel();

Prints

  • Hello, world!
  • HELLO, WORLD!

Available Repositories

Repository

A simple repository that allows you to manage a single value.

Setting Values:

  • value = value: Set the value to a new value.

Reading Values:

  • stream: A stream of the value.
  • value: The current value.

MultiRepository

A repository with a collection of handy functions to manage a collection of values.

Setting Values:

  • value = values: Set the collection to a new value.
  • add(value): Add a value to the collection.
  • addAll(values): Add multiple values to the collection.
  • remove(value): Remove a value from the collection.
  • removeWhere(selector): Remove all values that match the selector.
  • replace(existingValue, newValue): Replace a value in the collection.
  • replaceWhere(selector, value): Replace all values that match the selector.

Reading Values:

  • stream: A stream of the collection.
  • value: The current value of the collection.

RepositoryGroup

A group of repositories that allows you to manage a collection of repositories.

import 'package:standard_repositories/standard_repositories.dart';

final repositoryGroup = RepositoryGroup<String>(
  build: (id) => Repository<String>(repositoryName: 'my_repository_$id'),
  );

  final repository = repositoryGroup.getRepository('id1');
  // Use repository like normal

Libraries

standard_repositories
A Very Good Project created by Very Good CLI.