Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
d9d96b8bb7 | |||
a961eea431 | |||
edb58ade28 | |||
753a481765 | |||
bbbd1b73b9 | |||
271d0be106 |
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@push.rocks/smartstream",
|
||||
"version": "3.0.31",
|
||||
"version": "3.0.34",
|
||||
"private": false,
|
||||
"description": "simplifies access to node streams",
|
||||
"main": "dist_ts/index.js",
|
||||
@ -24,10 +24,10 @@
|
||||
"devDependencies": {
|
||||
"@git.zone/tsbuild": "^2.1.72",
|
||||
"@git.zone/tsrun": "^1.2.44",
|
||||
"@git.zone/tstest": "^1.0.86",
|
||||
"@git.zone/tstest": "^1.0.88",
|
||||
"@push.rocks/smartfile": "^11.0.4",
|
||||
"@push.rocks/tapbundle": "^5.0.15",
|
||||
"@types/node": "^20.11.20"
|
||||
"@push.rocks/tapbundle": "^5.0.17",
|
||||
"@types/node": "^20.11.28"
|
||||
},
|
||||
"dependencies": {
|
||||
"@push.rocks/lik": "^6.0.14",
|
||||
|
1580
pnpm-lock.yaml
generated
1580
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -44,7 +44,4 @@ hi+wow
|
||||
hi+wow
|
||||
hi+wow
|
||||
hi+wow
|
||||
hi+wow
|
||||
hi+wow
|
||||
hi+wow
|
||||
hi+wow
|
||||
hi
|
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartstream',
|
||||
version: '3.0.31',
|
||||
version: '3.0.34',
|
||||
description: 'simplifies access to node streams'
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ import { Duplex, type DuplexOptions } from 'stream';
|
||||
|
||||
export interface IStreamTools {
|
||||
truncate: () => void;
|
||||
push: (pipeObject: any) => Promise<void>;
|
||||
push: (pipeObject: any) => Promise<boolean>;
|
||||
}
|
||||
|
||||
export interface IStreamWriteFunction<T, rT> {
|
||||
@ -34,11 +34,11 @@ export interface ISmartDuplexOptions<TInput, TOutput> extends DuplexOptions {
|
||||
* it can push or return chunks (but does not have to) to be written to the readable side of the stream
|
||||
*/
|
||||
writeFunction?: IStreamWriteFunction<TInput, TOutput>;
|
||||
|
||||
/**
|
||||
* a final function that is being sent to the end of the stream
|
||||
* a final function that is run at the end of the stream
|
||||
*/
|
||||
finalFunction?: IStreamFinalFunction<TOutput>;
|
||||
// Add other custom options if necessary
|
||||
}
|
||||
|
||||
export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
||||
@ -91,6 +91,7 @@ export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
||||
await this.backpressuredArray.waitForSpace();
|
||||
this.debugLog(`${this.options.name}: can push more again`);
|
||||
}
|
||||
return canPushMore;
|
||||
};
|
||||
|
||||
private asyncWritePromiseObjectmap = new plugins.lik.ObjectMap<Promise<any>>();
|
||||
@ -108,7 +109,7 @@ export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
||||
callback();
|
||||
},
|
||||
push: async (pushArg: TOutput) => {
|
||||
await this.backpressuredPush(pushArg);
|
||||
return await this.backpressuredPush(pushArg);
|
||||
}
|
||||
};
|
||||
|
||||
@ -138,7 +139,7 @@ export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
||||
const tools: IStreamTools = {
|
||||
truncate: () => callback(),
|
||||
push: async (pipeObject) => {
|
||||
this.backpressuredArray.push(pipeObject);
|
||||
return this.backpressuredArray.push(pipeObject);
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -27,4 +27,4 @@ export const createPassThrough = () => {
|
||||
return chunkArg;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user