diff --git a/test/test.backpressure.ts b/test/test.backpressure.ts index 03ca798..5028cef 100644 --- a/test/test.backpressure.ts +++ b/test/test.backpressure.ts @@ -19,15 +19,15 @@ tap.test('should run backpressure test', async (toolsArg) => { writeFunction: async (chunk, tools) => { await new Promise((resolve) => setTimeout(resolve, 20)); // Slow processing console.log(`processed chunk ${chunk} in stream 2`); - // await tools.push(chunk); - return chunk; + await tools.push(chunk); + // return chunk; }, }); // This stream processes data more slowly const stream3 = new SmartDuplex({ objectMode: true, name: 'stream3', writeFunction: async (chunk, tools) => { - await new Promise((resolve) => setTimeout(resolve, 100)); // Slow processing + await new Promise((resolve) => setTimeout(resolve, 200)); // Slow processing console.log(`processed chunk ${chunk} in stream 3`); }, }); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index cf76c88..7f1c5c3 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartstream', - version: '3.0.26', + version: '3.0.27', description: 'simplifies access to node streams' } diff --git a/ts/index.ts b/ts/index.ts index 3baab0e..7f8e9ce 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,4 +1,3 @@ -export * from './smartstream.classes.passthrough.js'; export * from './smartstream.classes.smartduplex.js'; export * from './smartstream.classes.streamwrapper.js'; export * from './smartstream.classes.streamintake.js'; diff --git a/ts/smartstream.classes.passthrough.ts b/ts/smartstream.classes.passthrough.ts deleted file mode 100644 index 202cc0a..0000000 --- a/ts/smartstream.classes.passthrough.ts +++ /dev/null @@ -1,21 +0,0 @@ -import * as plugins from './smartstream.plugins.js'; - -export class PassThrough extends plugins.stream.Duplex { - constructor(options?: plugins.stream.DuplexOptions) { - super(options); - } - - _read(size: number): void { - // No-op: Data written will be automatically available for reading. - } - - _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void { - if (this.push(chunk, encoding)) { - callback(); - } else { - this.once('drain', () => { - callback(); - }); - } - } -} \ No newline at end of file diff --git a/ts/smartstream.functions.ts b/ts/smartstream.functions.ts index 88afca7..647e780 100644 --- a/ts/smartstream.functions.ts +++ b/ts/smartstream.functions.ts @@ -18,4 +18,13 @@ export function createTransformFunction( }); return smartDuplexStream; +} + +export const createPassThrough = () => { + return new SmartDuplex({ + objectMode: true, + writeFunction: async (chunkArg, toolsArg) => { + return chunkArg; + } + }) } \ No newline at end of file