easy-transform-stream
Version:
Create a transform stream using await instead of callbacks
30 lines (23 loc) • 926 B
TypeScript
import {type Transform as TransformStream, type TransformOptions} from 'node:stream';
export type Options = Omit<TransformOptions, 'transform' | 'flush'>;
/**
Receives each chunk and is expected to return a transformed chunk.
*/
export type Transformer = (chunk: unknown, encoding: BufferEncoding, stream: TransformStream) => Promise<unknown>;
/**
Yield additional chunks at the end of the stream.
*/
export type Flusher = () => AsyncGenerator;
/**
Create a transform stream using await instead of callbacks.
@example
```
import transformStream from 'easy-transform-stream';
const stream = transformStream(async chunk => {
const newChunk = await modifyChunk(chunk);
return newChunk;
});
```
*/
export default function transformStream(transformer: Transformer, flusher?: Flusher): TransformStream;
export default function transformStream(options: Options, transformer: Transformer, flusher?: Flusher): TransformStream;