UNPKG

monoflux

Version:

Stream processing for JS simplified

76 lines (75 loc) 4.08 kB
export declare class Flux<T> implements AsyncGenerator<T>, Promise<T[]> { private readonly generator; private readonly upstream?; private readonly handleCancel?; private _closed; private constructor(); [Symbol.asyncIterator](): AsyncGenerator<T, any, unknown>; next(...args: [] | [unknown]): Promise<IteratorResult<T>>; next(...args: [] | [unknown]): Promise<IteratorResult<T>>; return(value?: any): Promise<IteratorResult<T, undefined>>; throw(e: any): Promise<IteratorResult<T>>; cancel(e?: unknown): Promise<void>; then<TResult1 = T[], TResult2 = never>(onfulfilled?: ((value: T[]) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>; catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<T[] | TResult>; finally(onfinally?: (() => void) | null): Promise<T[]>; get [Symbol.toStringTag](): string; subscribe(callback?: (value: T) => void): { unsubscribe: () => Promise<IteratorResult<T, undefined>>; }; filter<O = T>(predicate: (value: T) => boolean): Flux<O>; /** * Flux until predicate is true; the rest is dropped. The first * value that is dropped is the value for which the predicate * is true. * * @param predicate */ untilExcl(predicate: (value: T) => boolean): Flux<Awaited<T>>; doOnEach(callback: (value: T) => void): Flux<T>; doAfterLast(callback: (allEvents: T[]) => (void | Promise<void>)): Flux<T>; map<O>(mapper: (value: T) => O): Flux<O>; take(n: number): Flux<T>; /** * Delay each of this Flux elements (Subscriber.onNext signals) by a given duration. * Signals are delayed and continue on the parallel default Scheduler, but empty * sequences or immediate error signals are not delayed. * * @param delayMillis - The duration in milliseconds to delay each element emission * @returns A new Flux with delayed element emissions * * @example * ```typescript * const flux = Flux.fromArray([1, 2, 3]) * const delayed = flux.delayElements(1000) // Each element delayed by 1 second * for await (const value of delayed) { * console.log(value) // Prints 1, 2, 3 with 1 second delay between each * } * ``` */ delayElements(delayMillis: number): Flux<T>; flatMap<O>(mapper: (value: T) => O[]): Flux<O>; flatMap<O>(mapper: (value: T) => Flux<O>, options?: { concurrency?: number; }): Flux<O>; flatMap<O>(mapper: (value: T) => Promise<O>, options?: { concurrency?: number; }): Flux<O>; transform<O>(defineGenerator: (thisFlux: Flux<T>) => AsyncGenerator<O>): Flux<O>; reduce<O>(reducer: (reduction: O, newValue: T) => O, initialValue: O): Promise<O>; reduce<O>(reducer: (reduction: O | undefined, newValue: T) => O): Promise<O | undefined>; asList(): Promise<T[]>; whenComplete(): Promise<void>; static create<T>(creator: (push: (value: T) => void, complete: () => void, reject: (err: any) => void) => (void | Promise<void>)): Flux<T>; static just<T>(...array: T[]): Flux<T>; static from<T>(array: T[]): Flux<T>; static from<T>(generator: AsyncGenerator<T>, handleCancel?: (e?: any) => void): Flux<T>; static from<T>(stream: ReadableStream<T>, handleCancel?: (e?: any) => void): Flux<T>; static from<T>(fn: () => AsyncGenerator<T>, handleCancel?: (e?: any) => void): Flux<T>; static fromArray<T>(array: T[]): Flux<T>; static constructFromGeneratorFunction<T>(fn: () => AsyncGenerator<T>, upstream: Flux<unknown> | undefined, handleCancel?: (e?: any) => void): Flux<T>; static fromGeneratorFunction<T>(fn: () => AsyncGenerator<T>, handleCancel?: (e?: any) => void): Flux<T>; static fromGenerator<T>(generator: AsyncGenerator<T>, handleCancel?: (e?: any) => void): Flux<T>; static fromReadableStream<T>(stream: ReadableStream<T>, handleCancel?: (e?: any) => void): Flux<T>; get closed(): boolean; }