toNotReplayValueStream method

NotReplayValueStream<T> toNotReplayValueStream(
  1. T value
)

Convert this Stream to a single-subscription NotReplayValueStream.

Implementation

NotReplayValueStream<T> toNotReplayValueStream(T value) {
  final controller = ValueStreamController(value, sync: true);
  late StreamSubscription<T> subscription;

  controller.onListen = () {
    subscription = listen(
      controller.add,
      onError: controller.addError,
      onDone: controller.close,
    );

    if (!isBroadcast) {
      controller.onPause = subscription.pause;
      controller.onResume = subscription.resume;
    }
  };
  controller.onCancel = () => subscription.cancel();

  return controller.stream;
}