UNPKG

@scramjet/framework

Version:

Simple yet powerful live data computation framework.

87 lines (86 loc) 4.83 kB
/// <reference types="node" /> import { Readable, Writable } from "stream"; import { BaseStream } from "./base-stream"; import { IFCA } from "../ifca"; import { IFCAChain } from "../ifca/ifca-chain"; import { AnyIterable, StreamConstructor, ResolvablePromiseObject, TransformFunction, MaybePromise, StreamOptions } from "../types"; declare type Reducer<IN, OUT> = { isAsync: boolean; value?: OUT; onFirstChunkCallback: Function; onChunkCallback: (chunk: IN) => MaybePromise<void>; }; declare type WritableProxy<IN> = { write: (chunk: IN) => MaybePromise<void>; end: () => void; }; declare type Pipe<IN> = { destination: BaseStream<IN, any> | WritableProxy<IN>; options: { end: boolean; }; }; export declare class DataStream<IN, OUT = IN> implements BaseStream<IN, OUT>, AsyncIterable<OUT> { protected options: StreamOptions; protected parentStream?: DataStream<IN, any> | undefined; constructor(options?: StreamOptions, parentStream?: DataStream<IN, any> | undefined); protected corked: ResolvablePromiseObject<void> | null; protected ifcaChain: IFCAChain<IN>; protected ifca: IFCA<IN | OUT, OUT, any>; protected pipes: Array<Pipe<OUT>>; protected writable: boolean; protected readable: boolean; protected transformable: boolean; protected pipeable: boolean; protected isPiped: boolean; static from<IN extends any, STREAM extends DataStream<IN>>(this: StreamConstructor<STREAM>, input: Iterable<IN> | AsyncIterable<IN> | Readable, options?: StreamOptions): STREAM; static fromFile<IN extends any, STREAM extends DataStream<IN>>(this: StreamConstructor<STREAM>, path: string, options?: StreamOptions): STREAM; [Symbol.asyncIterator](): { next: () => Promise<IteratorYieldResult<OUT> | IteratorReturnResult<boolean>>; }; write(chunk: IN): MaybePromise<void>; read(): MaybePromise<OUT | null>; pause(): void; resume(): void; end(): MaybePromise<void>; each<ARGS extends any[] = []>(callback: TransformFunction<OUT, void, ARGS>, ...args: ARGS): DataStream<IN, OUT>; map<ARGS extends any[] = []>(callback: TransformFunction<OUT, IN, ARGS>, ...args: ARGS): DataStream<IN>; map<NEW_OUT, ARGS extends any[] = []>(callback: TransformFunction<OUT, NEW_OUT, ARGS>, ...args: ARGS): DataStream<IN, NEW_OUT>; filter<ARGS extends any[] = []>(callback: TransformFunction<OUT, Boolean, ARGS>, ...args: ARGS): DataStream<IN, OUT>; batch<ARGS extends any[] = []>(callback: TransformFunction<OUT, Boolean, ARGS>, ...args: ARGS): DataStream<IN, OUT[]>; flatMap<ARGS extends any[] = []>(callback: TransformFunction<OUT, AnyIterable<IN>, ARGS>, ...args: ARGS): DataStream<IN>; flatMap<NEW_OUT, ARGS extends any[] = []>(callback: TransformFunction<OUT, AnyIterable<NEW_OUT>, ARGS>, ...args: ARGS): DataStream<IN, NEW_OUT>; pipe<DEST extends BaseStream<OUT, any>>(destination: DEST, options?: { end: boolean; }): DEST; pipe<DEST extends Writable>(destination: DEST, options?: { end: boolean; }): DEST; use<NEW_OUT>(callback: (stream: DataStream<IN, OUT>) => NEW_OUT): NEW_OUT; reduce<NEW_OUT = OUT>(callback: (previousValue: NEW_OUT, currentChunk: OUT) => MaybePromise<NEW_OUT>, initial?: NEW_OUT): Promise<NEW_OUT>; toArray(): Promise<OUT[]>; run(): Promise<void>; toFile(filePath: string): Promise<void>; asWritable(): Writable; protected on(eventName: string): void; protected createChildStream(): DataStream<IN, OUT>; protected createChildStream<NEW_OUT>(): DataStream<IN, NEW_OUT>; protected createChildStreamSuperType<NEW_OUT>(): DataStream<IN, NEW_OUT>; protected cork(): void; protected uncork(): void; protected getReducer<NEW_OUT>(callback: (previousValue: NEW_OUT, currentChunk: OUT) => MaybePromise<NEW_OUT>, initial?: NEW_OUT): Reducer<OUT, NEW_OUT>; protected getReader(uncork: boolean, callbacks: { onChunkCallback: (chunk: OUT) => void; onFirstChunkCallback?: Function; onEndCallback?: Function; }): () => Promise<void>; protected getReaderAsyncCallback(uncork: boolean, callbacks: { onChunkCallback: (chunk: OUT) => MaybePromise<void>; onFirstChunkCallback?: Function; onEndCallback?: Function; }): () => Promise<void>; protected readSource(iterable: Iterable<IN> | AsyncIterable<IN>): this; protected injectArgsToCallback<NEW_OUT, ARGS extends any[]>(callback: TransformFunction<OUT, NEW_OUT, ARGS>, args: ARGS): (chunk: OUT) => Promise<NEW_OUT> | NEW_OUT; protected injectArgsToCallbackAndMapResult<NEW_OUT, MAP_TO, ARGS extends any[]>(callback: TransformFunction<OUT, NEW_OUT, ARGS>, resultMapper: (chunk: OUT, result: NEW_OUT) => MAP_TO, args: ARGS): (chunk: OUT) => Promise<MAP_TO> | MAP_TO; } export {};