UNPKG

@johngw/stream

Version:

Reactive programming tools using the WHATWG Streams API.

33 lines (31 loc) 929 B
import { ForkableStream } from '@johngw/stream/sinks/ForkableStream' import { ForkableRecallSink } from '@johngw/stream/sinks/ForkableRecallSink' import { BaseForkableStream } from '@johngw/stream/sinks/BaseForkableStream' /** * An extension to the {@link ForkableStream:class} that immediately * queues the last received chunk to any fork. * * @group Sinks * @see {@link ForkableRecallSink} * @example * ``` * const forkable = new ForkableRecallStream<number>() * await fromCollection([1, 2, 3, 4, 5, 6, 7]).pipeTo(forkable) * ``` * * Now the stream has finished, if we fork from it we'll * receive the last thing that was emitted. * * ``` * await forkable.fork().pipeTo(write(console.info)) * // 7 * ``` */ export class ForkableRecallStream<T> extends BaseForkableStream< T, ForkableRecallSink<T> > { constructor(strategy?: QueuingStrategy<T>) { super(new ForkableRecallSink<T>(), strategy) } }