UNPKG

queueueue

Version:

Convert push-based streams to pull-based async iterables (fork of queueable)

24 lines (23 loc) 724 B
import { PushAdapter } from '../common'; /** * Multicasts pushed values to a variable number of async iterable iterators * as receivers or subscribers. * * Does not buffer pushed values; if no receivers are registered, pushed * values are silently discarded. */ export default class Multicast<A> implements AsyncIterable<A> { private readonly init; onStart?(): void; onStop?(): void; readonly receivers: Set<PushAdapter<A>>; constructor(init?: () => PushAdapter<A>); /** * Pushes a value to all registered receivers. */ push(value: A): this; /** * Creates and registers a receiver. */ [Symbol.asyncIterator](): AsyncIterableIterator<A>; }