Files
wehub-resource-sync bb087aad19
CI / format (push) Failing after 2s
CI / packaging (push) Failing after 0s
CI / test (push) Failing after 3s
chore: import upstream snapshot with attribution
2026-07-13 11:58:56 +08:00

22 lines
661 B
Dart

import 'dart:async';
extension StreamExt<T> on Stream<T> {
(StreamController<T>, StreamSubscription<T>) digested() {
late StreamSubscription<T> subscription;
final streamController = StreamController<T>(
onListen: () => subscription.resume(),
onPause: () => subscription.pause(),
onResume: () => subscription.resume(),
onCancel: () async => await subscription.cancel(),
);
subscription = listen(
(data) => streamController.add(data),
onError: (e, st) => streamController.addError(e, st),
onDone: () async => await streamController.close(),
);
return (streamController, subscription);
}
}