import { AsyncReducer } from "https://deno.land/x/rimbu@1.2.1/stream/async/async-reducer.ts";
const { Base } = AsyncReducer;
A base class that can be used to easily create AsyncReducer
instances.
Constructors
new
Base(init: (initHalt: () => void) => MaybePromise<S>,
next: () => MaybePromise<S>,
stateToResult: () => MaybePromise<O>,
onClose?: (state: S, error?: unknown) => MaybePromise<void>,
Methods
chain<O2 extends O>(nextReducers: AsyncStreamSource<AsyncOptLazy<AsyncReducer.Accept<I, O2>, [O2]>>): AsyncReducer<I, O2>
collectInput<I2>(collectFun: AsyncCollectFun<I2, I>): AsyncReducer<I2, O>
compile(): Promise<AsyncReducer.Instance<I, O>>
dropInput(amount: number): AsyncReducer<I, O>
filterInput(pred: () => MaybePromise<boolean>, options?: { negate?: boolean | undefined; }): any
flatMapInput<I2>(flatMapFun: (value: I2, index: number) => MaybePromise<AsyncStreamSource<I>>): AsyncReducer<I2, O>
mapInput<I2>(mapFun: (value: I2, index: number) => MaybePromise<I>): AsyncReducer<I2, O>
mapOutput<O2>(mapFun: () => MaybePromise<O2>): AsyncReducer<I, O2>
sliceInput(from?, amount?: number): AsyncReducer<I, O>
takeInput(amount: number): AsyncReducer<I, O>
takeOutput(amount: number): AsyncReducer<I, O>
takeOutputUntil(pred: (value: O, index: number) => MaybePromise<boolean>, options?: { negate?: boolean; }): AsyncReducer<I, O>