UNPKG

@push.rocks/smartstream

Version:

A library to simplify the creation and manipulation of Node.js streams, providing utilities for handling transform, duplex, and readable/writable streams effectively in TypeScript.

31 lines (26 loc) 788 B
import { type TransformOptions } from 'stream'; import { SmartDuplex } from './smartstream.classes.smartduplex.js'; export interface AsyncTransformFunction<TInput, TOutput> { (chunkArg: TInput): Promise<TOutput>; } export function createTransformFunction<TInput, TOutput>( asyncFunction: AsyncTransformFunction<TInput, TOutput>, options?: TransformOptions ): SmartDuplex { const smartDuplexStream = new SmartDuplex({ ...options, writeFunction: async (chunkArg, toolsArg) => { const result = await asyncFunction(chunkArg); return result; } }); return smartDuplexStream; } export const createPassThrough = () => { return new SmartDuplex({ objectMode: true, writeFunction: async (chunkArg, toolsArg) => { return chunkArg; } }) }