@push.rocks/smartstream 3.0.20 → 3.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartstream',
|
|
6
|
-
version: '3.0.
|
|
6
|
+
version: '3.0.22',
|
|
7
7
|
description: 'simplifies access to node streams'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLG1DQUFtQztDQUNqRCxDQUFBIn0=
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Duplex, type DuplexOptions } from 'stream';
|
|
4
4
|
export interface IStreamTools {
|
|
5
5
|
truncate: () => void;
|
|
6
|
-
push: (pipeObject: any) => void
|
|
6
|
+
push: (pipeObject: any) => Promise<void>;
|
|
7
7
|
}
|
|
8
8
|
export interface IStreamWriteFunction<T, rT> {
|
|
9
9
|
(chunkArg: T, toolsArg: IStreamTools): Promise<rT>;
|
|
@@ -23,8 +23,9 @@ export class SmartDuplex extends Duplex {
|
|
|
23
23
|
this.options = optionsArg;
|
|
24
24
|
}
|
|
25
25
|
async _read(size) {
|
|
26
|
-
await this.backpressuredArray.waitForItems();
|
|
27
26
|
this.debugLog(`${this.options.name}: read was called`);
|
|
27
|
+
await this.backpressuredArray.waitForItems();
|
|
28
|
+
this.debugLog(`${this.options.name}: successfully waited for items.`);
|
|
28
29
|
if (this.options.readFunction) {
|
|
29
30
|
await this.options.readFunction();
|
|
30
31
|
}
|
|
@@ -48,8 +49,13 @@ export class SmartDuplex extends Duplex {
|
|
|
48
49
|
isTruncated = true;
|
|
49
50
|
callback();
|
|
50
51
|
},
|
|
51
|
-
push: (pushArg) => {
|
|
52
|
-
this.backpressuredArray.push(pushArg);
|
|
52
|
+
push: async (pushArg) => {
|
|
53
|
+
const canPushMore = this.backpressuredArray.push(pushArg);
|
|
54
|
+
if (!canPushMore) {
|
|
55
|
+
this.debugLog(`${this.options.name}: cannot push more`);
|
|
56
|
+
await this.backpressuredArray.waitForSpace();
|
|
57
|
+
this.debugLog(`${this.options.name}: can push more again`);
|
|
58
|
+
}
|
|
53
59
|
},
|
|
54
60
|
};
|
|
55
61
|
try {
|
|
@@ -60,12 +66,7 @@ export class SmartDuplex extends Duplex {
|
|
|
60
66
|
return;
|
|
61
67
|
}
|
|
62
68
|
if (modifiedChunk) {
|
|
63
|
-
|
|
64
|
-
if (!canPushMore) {
|
|
65
|
-
this.debugLog(`${this.options.name}: cannot push more`);
|
|
66
|
-
await this.backpressuredArray.waitForSpace();
|
|
67
|
-
this.debugLog(`${this.options.name}: can push more again`);
|
|
68
|
-
}
|
|
69
|
+
await tools.push(modifiedChunk);
|
|
69
70
|
}
|
|
70
71
|
callback();
|
|
71
72
|
writeDeferred.resolve();
|
|
@@ -82,7 +83,9 @@ export class SmartDuplex extends Duplex {
|
|
|
82
83
|
if (this.options.finalFunction) {
|
|
83
84
|
const tools = {
|
|
84
85
|
truncate: () => callback(),
|
|
85
|
-
push: (pipeObject) =>
|
|
86
|
+
push: async (pipeObject) => {
|
|
87
|
+
this.push(pipeObject);
|
|
88
|
+
},
|
|
86
89
|
};
|
|
87
90
|
try {
|
|
88
91
|
const finalChunk = await this.options.finalFunction(tools);
|
|
@@ -100,4 +103,4 @@ export class SmartDuplex extends Duplex {
|
|
|
100
103
|
callback();
|
|
101
104
|
}
|
|
102
105
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJlYW0uY2xhc3Nlcy5zbWFydGR1cGxleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RyZWFtLmNsYXNzZXMuc21hcnRkdXBsZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFzQixNQUFNLFFBQVEsQ0FBQztBQXlCcEQsTUFBTSxPQUFPLFdBQXlDLFNBQVEsTUFBTTtJQUNsRSxTQUFTO0lBQ1QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBdUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNkJBQTZCO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQU1PLFFBQVEsQ0FBQyxVQUFrQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsWUFBWSxVQUFpRDtRQUMzRCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFYcEIsV0FBVztRQUNILHVCQUFrQixHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBVyxDQUFDO1FBOEJuRSwrQkFBMEIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFnQixDQUFDO1FBbkI3RSxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGtDQUFrQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUM3QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDbkM7UUFDRCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDdkIsT0FBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksV0FBVyxFQUFFO1lBQzVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsRCxJQUFJLFNBQVMsRUFBRTtnQkFDYixXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNwQztTQUNGO0lBQ0gsQ0FBQztJQUdELHlFQUF5RTtJQUNsRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWEsRUFBRSxRQUFnQixFQUFFLFFBQXdDO1FBQzNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUMvQixPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQWlCO1lBQzFCLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDbkIsUUFBUSxFQUFFLENBQUM7WUFDYixDQUFDO1lBQ0QsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQztvQkFDeEQsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksdUJBQXVCLENBQUMsQ0FBQztpQkFDNUQ7WUFDSCxDQUFDO1NBQ0YsQ0FBQztRQUVGLElBQUk7WUFDRixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JFLElBQUksV0FBVyxFQUFFO2dCQUNmLE9BQU87YUFDUjtZQUNELElBQUksYUFBYSxFQUFFO2dCQUNqQixNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDakM7WUFDRCxRQUFRLEVBQUUsQ0FBQztZQUNYLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4QixhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQzlCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBd0M7UUFDMUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDOUIsTUFBTSxLQUFLLEdBQWlCO2dCQUMxQixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO2dCQUMxQixJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO29CQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2FBQ0YsQ0FBQztZQUVGLElBQUk7Z0JBQ0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDdkI7YUFDRjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDZCxPQUFPO2FBQ1I7U0FDRjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0NBQ0YifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartstream",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.22",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "simplifies access to node streams",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
"@git.zone/tsbuild": "^2.1.66",
|
|
26
26
|
"@git.zone/tsrun": "^1.2.44",
|
|
27
27
|
"@git.zone/tstest": "^1.0.84",
|
|
28
|
-
"@push.rocks/smartdelay": "^3.0.5",
|
|
29
28
|
"@push.rocks/smartfile": "^11.0.0",
|
|
30
29
|
"@push.rocks/tapbundle": "^5.0.15",
|
|
31
30
|
"@types/node": "^20.9.0"
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Duplex, type DuplexOptions } from 'stream';
|
|
|
3
3
|
|
|
4
4
|
export interface IStreamTools {
|
|
5
5
|
truncate: () => void;
|
|
6
|
-
push: (pipeObject: any) => void
|
|
6
|
+
push: (pipeObject: any) => Promise<void>;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export interface IStreamWriteFunction<T, rT> {
|
|
@@ -51,8 +51,9 @@ export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
public async _read(size: number): Promise<void> {
|
|
54
|
-
await this.backpressuredArray.waitForItems();
|
|
55
54
|
this.debugLog(`${this.options.name}: read was called`);
|
|
55
|
+
await this.backpressuredArray.waitForItems();
|
|
56
|
+
this.debugLog(`${this.options.name}: successfully waited for items.`);
|
|
56
57
|
if (this.options.readFunction) {
|
|
57
58
|
await this.options.readFunction();
|
|
58
59
|
}
|
|
@@ -79,8 +80,13 @@ export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
|
|
79
80
|
isTruncated = true;
|
|
80
81
|
callback();
|
|
81
82
|
},
|
|
82
|
-
push: (pushArg: TOutput) => {
|
|
83
|
-
this.backpressuredArray.push(pushArg);
|
|
83
|
+
push: async (pushArg: TOutput) => {
|
|
84
|
+
const canPushMore = this.backpressuredArray.push(pushArg);
|
|
85
|
+
if (!canPushMore) {
|
|
86
|
+
this.debugLog(`${this.options.name}: cannot push more`);
|
|
87
|
+
await this.backpressuredArray.waitForSpace();
|
|
88
|
+
this.debugLog(`${this.options.name}: can push more again`);
|
|
89
|
+
}
|
|
84
90
|
},
|
|
85
91
|
};
|
|
86
92
|
|
|
@@ -92,12 +98,7 @@ export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
|
|
92
98
|
return;
|
|
93
99
|
}
|
|
94
100
|
if (modifiedChunk) {
|
|
95
|
-
|
|
96
|
-
if (!canPushMore) {
|
|
97
|
-
this.debugLog(`${this.options.name}: cannot push more`);
|
|
98
|
-
await this.backpressuredArray.waitForSpace();
|
|
99
|
-
this.debugLog(`${this.options.name}: can push more again`);
|
|
100
|
-
}
|
|
101
|
+
await tools.push(modifiedChunk);
|
|
101
102
|
}
|
|
102
103
|
callback();
|
|
103
104
|
writeDeferred.resolve();
|
|
@@ -114,7 +115,9 @@ export class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
|
|
114
115
|
if (this.options.finalFunction) {
|
|
115
116
|
const tools: IStreamTools = {
|
|
116
117
|
truncate: () => callback(),
|
|
117
|
-
push: (pipeObject) =>
|
|
118
|
+
push: async (pipeObject) => {
|
|
119
|
+
this.push(pipeObject);
|
|
120
|
+
},
|
|
118
121
|
};
|
|
119
122
|
|
|
120
123
|
try {
|