UNPKG

2.21 kBTypeScriptView Raw
1/// <reference types="node" />
2import { Transform } from 'stream';
3import type * as stream from 'stream';
4declare type GetPropValue<T, K extends PropertyKey> = K extends (keyof T) ? T[K] : undefined;
5declare type IfNeverThenUnknown<T> = [T] extends [never] ? unknown : T;
6/**
7 * If the `objectMode` and `writableObjectMode` options is not `true`,
8 * the chunk value is always an instance of Buffer.
9 */
10export declare type InputChunkType<T extends stream.TransformOptions> = (true extends GetPropValue<T, 'objectMode' | 'writableObjectMode'> ? unknown : Buffer);
11/**
12 * If the `objectMode` and `readableObjectMode` options is not `true`,
13 * the chunk value must be of type string or an instance of Buffer or Uint8Array.
14 * @see https://github.com/nodejs/node/blob/v12.17.0/lib/_stream_readable.js#L226-L244
15 */
16export declare type OutputChunkType<T extends stream.TransformOptions> = IfNeverThenUnknown<T extends ({
17 objectMode: true;
18} | {
19 readableObjectMode: true;
20}) ? never : string | Buffer | Uint8Array>;
21export declare type SourceIterator<TOpts extends stream.TransformOptions> = (AsyncIterableIterator<{
22 chunk: InputChunkType<TOpts>;
23 encoding: BufferEncoding;
24}>);
25export declare type TransformFunction<TOpts extends stream.TransformOptions> = ((source: SourceIterator<TOpts>) => Iterable<OutputChunkType<TOpts>> | AsyncIterable<OutputChunkType<TOpts>>);
26export declare class TransformFromAsyncIterable<TOpts extends stream.TransformOptions = Record<string, never>> extends Transform {
27 private transformCallback;
28 private isFinished;
29 private receiveData?;
30 private readonly receivedDataList;
31 constructor(transformFn: TransformFunction<TOpts>, opts?: TOpts);
32 _transform(chunk: InputChunkType<TOpts>, encoding: BufferEncoding, callback: stream.TransformCallback): void;
33 _flush(callback: stream.TransformCallback): void;
34 private finish;
35 private callTransformCallback;
36 private createSource;
37 private emitToSource;
38 private emitFinishEventAfterCallback;
39}
40export declare function transformFrom<TOpts extends stream.TransformOptions = Record<string, never>>(transformFn: TransformFunction<TOpts>, options?: TOpts): stream.Transform;
41export {};
42
\No newline at end of file