Skip to content

Convert Listenable (eg. ChangeNotifier), ValueListenable(eg. ValueNotifier) to Stream / ValueStream.

License

Notifications You must be signed in to change notification settings

Flutter-Dart-Open-Source/listenable_stream

Repository files navigation

listenable_stream

  • Convert Flutter's Listenable (e.g. ChangeNotifier) to Stream.
  • Convert Flutter's ValueListenable (e.g. ValueNotifier) to ValueStream (incl. "replay" and "not replay").

Pub Version codecov Flutter Tests GitHub Style Hits

  • ListenableStream<Listenable>
  • ValueListenable<T>ValueStream<T>

Usage

Listenable.toStream()

final ChangeNotifier changeNotifier = ChangeNotifier();
final Stream<ChangeNotifier> stream = changeNotifier.toStream();
stream.listen(print); // prints Instance of 'ChangeNotifier', Instance of 'ChangeNotifier'

changeNotifier.notifyListeners();
changeNotifier.notifyListeners();

ValueListenable.toValueStream()

final ValueNotifier<int> valueNotifier = ValueNotifier(0);
final ValueListenableStream<int> stream = valueNotifier.toValueStream();
stream.listen(print); // prints 1, 2

valueNotifier.value = 1;
valueNotifier.value = 2;
print(stream.value); // prints 2

ValueListenable.toValueStream(replayValue: true)

final ValueNotifier<int> valueNotifier = ValueNotifier(0);
final ValueListenableStream<int> stream = valueNotifier.toValueStream(replayValue: true);
stream.listen(print); // prints 0, 1, 2

valueNotifier.value = 1;
valueNotifier.value = 2;
print(stream.value); // prints 2

Note

  • All returned Stream is single-subscription Stream (ie. it can only be listened once) and does not emits any errors.
  • ValueListenableStream always has value (ie. has no error).

About

Convert Listenable (eg. ChangeNotifier), ValueListenable(eg. ValueNotifier) to Stream / ValueStream.

Resources

License

Stars

Watchers

Forks

Packages

No packages published