@push.rocks/smartstream 3.3.0 → 3.4.0
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.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/smartstream.classes.smartduplex.d.ts +10 -4
- package/dist_ts/smartstream.classes.smartduplex.js +182 -72
- package/dist_ts/smartstream.classes.streamintake.js +6 -3
- package/dist_ts/smartstream.classes.streamwrapper.js +11 -12
- package/dist_ts/smartstream.nodewebhelpers.d.ts +2 -2
- package/dist_ts/smartstream.nodewebhelpers.js +97 -36
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/classes.webduplexstream.js +20 -15
- package/package.json +4 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/smartstream.classes.smartduplex.ts +211 -78
- package/ts/smartstream.classes.streamintake.ts +5 -2
- package/ts/smartstream.classes.streamwrapper.ts +11 -12
- package/ts/smartstream.nodewebhelpers.ts +105 -37
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/classes.webduplexstream.ts +20 -13
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartstream',
|
|
6
|
-
version: '3.
|
|
6
|
+
version: '3.4.0',
|
|
7
7
|
description: '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.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHNMQUFzTDtDQUNwTSxDQUFBIn0=
|
|
@@ -38,14 +38,20 @@ export declare class SmartDuplex<TInput = any, TOutput = any> extends Duplex {
|
|
|
38
38
|
static fromWebReadableStream<T = any>(readableStream: ReadableStream<T>): SmartDuplex<T, T>;
|
|
39
39
|
private backpressuredArray;
|
|
40
40
|
options: ISmartDuplexOptions<TInput, TOutput>;
|
|
41
|
-
private
|
|
41
|
+
private _consumerWantsData;
|
|
42
|
+
private _readFunctionRunning;
|
|
42
43
|
private debugLog;
|
|
43
44
|
constructor(optionsArg?: ISmartDuplexOptions<TInput, TOutput>);
|
|
44
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Synchronously drains items from the backpressuredArray into the readable side.
|
|
47
|
+
* Stops when push() returns false (consumer is full) or array is empty.
|
|
48
|
+
*/
|
|
49
|
+
private _drainBackpressuredArray;
|
|
50
|
+
_read(size: number): void;
|
|
45
51
|
backpressuredPush(pushArg: TOutput): Promise<boolean>;
|
|
46
52
|
private asyncWritePromiseObjectmap;
|
|
47
|
-
_write(chunk: TInput, encoding: string, callback: (error?: Error | null) => void):
|
|
48
|
-
_final(callback: (error?: Error | null) => void):
|
|
53
|
+
_write(chunk: TInput, encoding: string, callback: (error?: Error | null) => void): void;
|
|
54
|
+
_final(callback: (error?: Error | null) => void): void;
|
|
49
55
|
getWebStreams(): Promise<{
|
|
50
56
|
readable: ReadableStream;
|
|
51
57
|
writable: WritableStream;
|
|
@@ -12,53 +12,91 @@ export class SmartDuplex extends Duplex {
|
|
|
12
12
|
}
|
|
13
13
|
static fromWebReadableStream(readableStream) {
|
|
14
14
|
const smartDuplex = new SmartDuplex({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
objectMode: true,
|
|
16
|
+
});
|
|
17
|
+
// Acquire reader ONCE
|
|
18
|
+
const reader = readableStream.getReader();
|
|
19
|
+
let reading = false;
|
|
20
|
+
// Override _read to pull from the web reader
|
|
21
|
+
smartDuplex._read = function (_size) {
|
|
22
|
+
if (reading)
|
|
23
|
+
return;
|
|
24
|
+
reading = true;
|
|
25
|
+
reader.read().then(({ value, done }) => {
|
|
26
|
+
reading = false;
|
|
26
27
|
if (done) {
|
|
27
28
|
smartDuplex.push(null);
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
else {
|
|
31
|
+
smartDuplex.push(value);
|
|
32
|
+
}
|
|
33
|
+
}, (err) => {
|
|
34
|
+
reading = false;
|
|
35
|
+
smartDuplex.destroy(err);
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
// Cancel reader on destroy
|
|
39
|
+
smartDuplex.on('close', () => {
|
|
40
|
+
reader.cancel().catch(() => { });
|
|
30
41
|
});
|
|
31
42
|
return smartDuplex;
|
|
32
43
|
}
|
|
33
44
|
debugLog(messageArg) {
|
|
34
|
-
// optional debug log
|
|
35
45
|
if (this.options.debug) {
|
|
36
46
|
console.log(messageArg);
|
|
37
47
|
}
|
|
38
48
|
}
|
|
39
49
|
constructor(optionsArg) {
|
|
50
|
+
const safeOptions = optionsArg || {};
|
|
40
51
|
super(Object.assign({
|
|
41
52
|
highWaterMark: 1,
|
|
42
|
-
},
|
|
53
|
+
}, safeOptions));
|
|
54
|
+
this._consumerWantsData = false;
|
|
55
|
+
this._readFunctionRunning = false;
|
|
43
56
|
this.asyncWritePromiseObjectmap = new plugins.lik.ObjectMap();
|
|
44
|
-
this.options =
|
|
57
|
+
this.options = safeOptions;
|
|
45
58
|
this.backpressuredArray = new plugins.lik.BackpressuredArray(this.options.highWaterMark || 1);
|
|
46
59
|
}
|
|
47
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Synchronously drains items from the backpressuredArray into the readable side.
|
|
62
|
+
* Stops when push() returns false (consumer is full) or array is empty.
|
|
63
|
+
*/
|
|
64
|
+
_drainBackpressuredArray() {
|
|
65
|
+
while (this.backpressuredArray.data.length > 0) {
|
|
66
|
+
const nextChunk = this.backpressuredArray.shift();
|
|
67
|
+
if (nextChunk === null) {
|
|
68
|
+
// EOF signal — push null to end readable side
|
|
69
|
+
this.push(null);
|
|
70
|
+
this._consumerWantsData = false;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const canPushMore = this.push(nextChunk);
|
|
74
|
+
if (!canPushMore) {
|
|
75
|
+
this._consumerWantsData = false;
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// _read must NOT be async — Node.js ignores the return value
|
|
81
|
+
_read(size) {
|
|
48
82
|
this.debugLog(`${this.options.name}: read was called`);
|
|
49
|
-
|
|
50
|
-
|
|
83
|
+
this._consumerWantsData = true;
|
|
84
|
+
// Drain any buffered items first
|
|
85
|
+
if (this.backpressuredArray.data.length > 0) {
|
|
86
|
+
this._drainBackpressuredArray();
|
|
51
87
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const nextChunk = this.backpressuredArray.shift();
|
|
57
|
-
canPushMore = this.push(nextChunk);
|
|
88
|
+
// If readFunction exists and is not already running, start it
|
|
89
|
+
if (this.options.readFunction && !this._readFunctionRunning) {
|
|
90
|
+
this._readFunctionRunning = true;
|
|
91
|
+
this.options.readFunction().then(() => { this._readFunctionRunning = false; }, (err) => { this._readFunctionRunning = false; this.destroy(err); });
|
|
58
92
|
}
|
|
59
93
|
}
|
|
60
94
|
async backpressuredPush(pushArg) {
|
|
61
95
|
const canPushMore = this.backpressuredArray.push(pushArg);
|
|
96
|
+
// Try to drain if the consumer wants data
|
|
97
|
+
if (this._consumerWantsData) {
|
|
98
|
+
this._drainBackpressuredArray();
|
|
99
|
+
}
|
|
62
100
|
if (!canPushMore) {
|
|
63
101
|
this.debugLog(`${this.options.name}: cannot push more`);
|
|
64
102
|
await this.backpressuredArray.waitForSpace();
|
|
@@ -66,79 +104,134 @@ export class SmartDuplex extends Duplex {
|
|
|
66
104
|
}
|
|
67
105
|
return canPushMore;
|
|
68
106
|
}
|
|
69
|
-
//
|
|
70
|
-
|
|
107
|
+
// _write must NOT be async — Node.js ignores the return value
|
|
108
|
+
_write(chunk, encoding, callback) {
|
|
71
109
|
if (!this.options.writeFunction) {
|
|
72
110
|
return callback(new Error('No stream function provided'));
|
|
73
111
|
}
|
|
112
|
+
let callbackCalled = false;
|
|
113
|
+
const safeCallback = (err) => {
|
|
114
|
+
if (!callbackCalled) {
|
|
115
|
+
callbackCalled = true;
|
|
116
|
+
callback(err);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
74
119
|
let isTruncated = false;
|
|
75
120
|
const tools = {
|
|
76
121
|
truncate: () => {
|
|
77
|
-
this.push(null);
|
|
78
122
|
isTruncated = true;
|
|
79
|
-
|
|
123
|
+
safeCallback();
|
|
124
|
+
this.push(null);
|
|
80
125
|
},
|
|
81
126
|
push: async (pushArg) => {
|
|
82
127
|
return await this.backpressuredPush(pushArg);
|
|
83
128
|
},
|
|
84
129
|
};
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const modifiedChunk = await this.options.writeFunction(chunk, tools);
|
|
130
|
+
const writeDeferred = plugins.smartpromise.defer();
|
|
131
|
+
this.asyncWritePromiseObjectmap.add(writeDeferred.promise);
|
|
132
|
+
this.options.writeFunction(chunk, tools).then((modifiedChunk) => {
|
|
89
133
|
if (isTruncated) {
|
|
134
|
+
writeDeferred.resolve();
|
|
135
|
+
this.asyncWritePromiseObjectmap.remove(writeDeferred.promise);
|
|
90
136
|
return;
|
|
91
137
|
}
|
|
92
|
-
|
|
93
|
-
|
|
138
|
+
const finish = () => {
|
|
139
|
+
safeCallback();
|
|
140
|
+
writeDeferred.resolve();
|
|
141
|
+
this.asyncWritePromiseObjectmap.remove(writeDeferred.promise);
|
|
142
|
+
};
|
|
143
|
+
if (modifiedChunk !== undefined && modifiedChunk !== null) {
|
|
144
|
+
this.backpressuredPush(modifiedChunk).then(finish, (err) => {
|
|
145
|
+
safeCallback(err);
|
|
146
|
+
writeDeferred.resolve();
|
|
147
|
+
this.asyncWritePromiseObjectmap.remove(writeDeferred.promise);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
finish();
|
|
94
152
|
}
|
|
95
|
-
|
|
153
|
+
}, (err) => {
|
|
154
|
+
safeCallback(err);
|
|
96
155
|
writeDeferred.resolve();
|
|
97
|
-
writeDeferred.promise
|
|
98
|
-
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
callback(err);
|
|
103
|
-
}
|
|
156
|
+
this.asyncWritePromiseObjectmap.remove(writeDeferred.promise);
|
|
157
|
+
});
|
|
104
158
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
159
|
+
// _final must NOT be async — Node.js ignores the return value
|
|
160
|
+
_final(callback) {
|
|
161
|
+
let callbackCalled = false;
|
|
162
|
+
const safeCallback = (err) => {
|
|
163
|
+
if (!callbackCalled) {
|
|
164
|
+
callbackCalled = true;
|
|
165
|
+
callback(err);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
Promise.all(this.asyncWritePromiseObjectmap.getArray()).then(() => {
|
|
169
|
+
if (this.options.finalFunction) {
|
|
170
|
+
const tools = {
|
|
171
|
+
truncate: () => safeCallback(),
|
|
172
|
+
push: async (pipeObject) => {
|
|
173
|
+
return await this.backpressuredPush(pipeObject);
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
this.options.finalFunction(tools).then((finalChunk) => {
|
|
177
|
+
const pushNull = () => {
|
|
178
|
+
this.backpressuredArray.push(null);
|
|
179
|
+
if (this._consumerWantsData) {
|
|
180
|
+
this._drainBackpressuredArray();
|
|
181
|
+
}
|
|
182
|
+
safeCallback();
|
|
183
|
+
};
|
|
184
|
+
if (finalChunk !== undefined && finalChunk !== null) {
|
|
185
|
+
this.backpressuredPush(finalChunk).then(pushNull, (err) => {
|
|
186
|
+
safeCallback(err);
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
pushNull();
|
|
191
|
+
}
|
|
192
|
+
}, (err) => {
|
|
193
|
+
this.backpressuredArray.push(null);
|
|
194
|
+
if (this._consumerWantsData) {
|
|
195
|
+
this._drainBackpressuredArray();
|
|
196
|
+
}
|
|
197
|
+
safeCallback(err);
|
|
198
|
+
});
|
|
119
199
|
}
|
|
120
|
-
|
|
200
|
+
else {
|
|
121
201
|
this.backpressuredArray.push(null);
|
|
122
|
-
|
|
123
|
-
|
|
202
|
+
if (this._consumerWantsData) {
|
|
203
|
+
this._drainBackpressuredArray();
|
|
204
|
+
}
|
|
205
|
+
safeCallback();
|
|
124
206
|
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
207
|
+
}, (err) => {
|
|
208
|
+
safeCallback(err);
|
|
209
|
+
});
|
|
128
210
|
}
|
|
129
211
|
async getWebStreams() {
|
|
130
212
|
const duplex = this;
|
|
213
|
+
let readableClosed = false;
|
|
131
214
|
const readable = new ReadableStream({
|
|
132
215
|
start(controller) {
|
|
133
|
-
|
|
216
|
+
const onReadable = () => {
|
|
134
217
|
let chunk;
|
|
135
218
|
while (null !== (chunk = duplex.read())) {
|
|
136
219
|
controller.enqueue(chunk);
|
|
137
220
|
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
221
|
+
};
|
|
222
|
+
const onEnd = () => {
|
|
223
|
+
if (!readableClosed) {
|
|
224
|
+
readableClosed = true;
|
|
225
|
+
controller.close();
|
|
226
|
+
}
|
|
227
|
+
cleanup();
|
|
228
|
+
};
|
|
229
|
+
const cleanup = () => {
|
|
230
|
+
duplex.removeListener('readable', onReadable);
|
|
231
|
+
duplex.removeListener('end', onEnd);
|
|
232
|
+
};
|
|
233
|
+
duplex.on('readable', onReadable);
|
|
234
|
+
duplex.on('end', onEnd);
|
|
142
235
|
},
|
|
143
236
|
cancel(reason) {
|
|
144
237
|
duplex.destroy(new Error(reason));
|
|
@@ -147,22 +240,39 @@ export class SmartDuplex extends Duplex {
|
|
|
147
240
|
const writable = new WritableStream({
|
|
148
241
|
write(chunk) {
|
|
149
242
|
return new Promise((resolve, reject) => {
|
|
243
|
+
let resolved = false;
|
|
244
|
+
const onDrain = () => {
|
|
245
|
+
if (!resolved) {
|
|
246
|
+
resolved = true;
|
|
247
|
+
resolve();
|
|
248
|
+
}
|
|
249
|
+
};
|
|
150
250
|
const isBackpressured = !duplex.write(chunk, (error) => {
|
|
151
251
|
if (error) {
|
|
152
|
-
|
|
252
|
+
if (!resolved) {
|
|
253
|
+
resolved = true;
|
|
254
|
+
duplex.removeListener('drain', onDrain);
|
|
255
|
+
reject(error);
|
|
256
|
+
}
|
|
153
257
|
}
|
|
154
|
-
else {
|
|
258
|
+
else if (!isBackpressured && !resolved) {
|
|
259
|
+
resolved = true;
|
|
155
260
|
resolve();
|
|
156
261
|
}
|
|
157
262
|
});
|
|
158
263
|
if (isBackpressured) {
|
|
159
|
-
duplex.once('drain',
|
|
264
|
+
duplex.once('drain', onDrain);
|
|
160
265
|
}
|
|
161
266
|
});
|
|
162
267
|
},
|
|
163
268
|
close() {
|
|
164
269
|
return new Promise((resolve, reject) => {
|
|
165
|
-
duplex.end(
|
|
270
|
+
duplex.end((err) => {
|
|
271
|
+
if (err)
|
|
272
|
+
reject(err);
|
|
273
|
+
else
|
|
274
|
+
resolve();
|
|
275
|
+
});
|
|
166
276
|
});
|
|
167
277
|
},
|
|
168
278
|
abort(reason) {
|
|
@@ -172,4 +282,4 @@ export class SmartDuplex extends Duplex {
|
|
|
172
282
|
return { readable, writable };
|
|
173
283
|
}
|
|
174
284
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJlYW0uY2xhc3Nlcy5zbWFydGR1cGxleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RyZWFtLmNsYXNzZXMuc21hcnRkdXBsZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFzQixNQUFNLFFBQVEsQ0FBQztBQTBDcEQsTUFBTSxPQUFPLFdBQXlDLFNBQVEsTUFBTTtJQUNsRSxTQUFTO0lBQ1QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBdUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNkJBQTZCO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDakMsY0FBaUM7UUFFakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQU87WUFDeEM7OztlQUdHO1lBQ0gsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUN2QixNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN4QixXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixDQUFDO2dCQUNELE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FB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
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJlYW0uY2xhc3Nlcy5zbWFydGR1cGxleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RyZWFtLmNsYXNzZXMuc21hcnRkdXBsZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFzQixNQUFNLFFBQVEsQ0FBQztBQTBDcEQsTUFBTSxPQUFPLFdBQXlDLFNBQVEsTUFBTTtJQUNsRSxTQUFTO0lBQ1QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBdUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNkJBQTZCO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDakMsY0FBaUM7UUFFakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQU87WUFDeEMsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRUgsc0JBQXNCO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFcEIsNkNBQTZDO1FBQzdDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxLQUFhO1lBQ3pDLElBQUksT0FBTztnQkFBRSxPQUFPO1lBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUNoQixDQUFDLEVBQUUsS0FB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
|
|
@@ -4,8 +4,11 @@ export class StreamIntake extends plugins.stream.Readable {
|
|
|
4
4
|
static async fromStream(inputStream, options) {
|
|
5
5
|
const intakeStream = new StreamIntake(options);
|
|
6
6
|
if (inputStream instanceof plugins.stream.Readable) {
|
|
7
|
-
inputStream.on('
|
|
8
|
-
|
|
7
|
+
inputStream.on('readable', () => {
|
|
8
|
+
let chunk;
|
|
9
|
+
while (null !== (chunk = inputStream.read())) {
|
|
10
|
+
intakeStream.pushData(chunk);
|
|
11
|
+
}
|
|
9
12
|
});
|
|
10
13
|
inputStream.on('end', () => {
|
|
11
14
|
intakeStream.signalEnd();
|
|
@@ -78,4 +81,4 @@ export class StreamIntake extends plugins.stream.Readable {
|
|
|
78
81
|
this.pushNextObservable.signalComplete();
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJlYW0uY2xhc3Nlcy5zdHJlYW1pbnRha2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0cmVhbS5jbGFzc2VzLnN0cmVhbWludGFrZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLDBCQUEwQixDQUFDO0FBRXBELE1BQU0sT0FBTyxZQUFnQixTQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUTtJQUMxRCxTQUFTO0lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUksV0FBcUQsRUFBRSxPQUF3QztRQUMvSCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBSSxPQUFPLENBQUMsQ0FBQztRQUVsRCxJQUFJLFdBQVcsWUFBWSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDOUIsSUFBSSxLQUFRLENBQUM7Z0JBQ2IsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBTyxDQUFDLEVBQUUsQ0FBQztvQkFDbEQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUN6QixZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQVUsRUFBRSxFQUFFO2dCQUNyQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLE1BQU0sR0FBSSxXQUE4QixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRTNELE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDckIsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7b0JBQ3JDLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ1QsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUMzQixDQUFDO3lCQUFNLENBQUM7d0JBQ04sWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDN0IsU0FBUyxFQUFFLENBQUM7b0JBQ2QsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDZixZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztZQUVGLFNBQVMsRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFRRCxZQUFZLE9BQXdDO1FBQ2xELEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMscUNBQXFDO1FBUGhGLFdBQVc7UUFDSCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUN0Qix1QkFBa0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQU8sQ0FBQztRQUNoRSx1QkFBa0IsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBSXhELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVk7UUFDaEIsMkJBQTJCO1FBQzNCLE1BQU0sU0FBUyxHQUFHLEdBQVMsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxxREFBcUQ7Z0JBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUN4QyxPQUFPO2dCQUNULENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDMUIsMkRBQTJEO29CQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sNkJBQTZCO29CQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxxQkFBcUI7d0JBQzdFLFNBQVMsRUFBRSxDQUFDLENBQUMsNkJBQTZCO29CQUM1QyxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLFNBQVMsRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFFBQVEsQ0FBQyxTQUFZO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0YifQ==
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as plugins from './smartstream.plugins.js';
|
|
2
|
-
// interfaces
|
|
3
|
-
import { Transform } from 'stream';
|
|
4
2
|
/**
|
|
5
3
|
* class Smartstream handles
|
|
6
4
|
*/
|
|
@@ -59,16 +57,17 @@ export class StreamWrapper {
|
|
|
59
57
|
firstIteration = false;
|
|
60
58
|
}
|
|
61
59
|
this.streamStartedDeferred.resolve();
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
let resolved = false;
|
|
61
|
+
const safeResolve = () => {
|
|
62
|
+
if (!resolved) {
|
|
63
|
+
resolved = true;
|
|
64
|
+
done.resolve();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
finalStream.on('end', safeResolve);
|
|
68
|
+
finalStream.on('close', safeResolve);
|
|
69
|
+
finalStream.on('finish', safeResolve);
|
|
71
70
|
return done.promise;
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJlYW0uY2xhc3Nlcy5zdHJlYW13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJlYW0uY2xhc3Nlcy5zdHJlYW13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMEJBQTBCLENBQUM7QUFlcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUt4Qjs7T0FFRztJQUNILFlBQVksY0FBcUI7UUFQekIsZ0JBQVcsR0FBaUMsRUFBRSxDQUFDO1FBQy9DLDJCQUFzQixHQUF5QixFQUFFLENBQUM7UUFDbEQsMEJBQXFCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQU0zRCxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxZQUFvQixFQUFFLGdCQUFzQztRQUN4RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLGFBQWEsRUFBRSxnQkFBZ0I7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUc7UUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBUSxDQUFDO1FBRWhELGNBQWM7UUFDZCxNQUFNLG9CQUFvQixHQUFpQyxFQUFFLENBQUM7UUFDOUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxxQkFBcUI7UUFDckIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksY0FBYyxHQUFZLElBQUksQ0FBQztRQUNuQyxLQUFLLE1BQU0sTUFBTSxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDMUMsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzVCLFdBQVcsR0FBRyxNQUFNLENBQUM7WUFDdkIsQ0FBQztZQUNELE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDSCxLQUFLLE1BQU0saUJBQWlCLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzVELE1BQU0sQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFckMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRTtZQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuQyxXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNyQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as plugins from './smartstream.plugins.js';
|
|
2
2
|
/**
|
|
3
|
-
* Creates a Web ReadableStream from a file.
|
|
3
|
+
* Creates a Web ReadableStream from a file using pull-based backpressure.
|
|
4
4
|
*
|
|
5
5
|
* @param filePath - The path to the file to be read
|
|
6
6
|
* @returns A Web ReadableStream that reads the file in chunks
|
|
@@ -14,7 +14,7 @@ export declare function createWebReadableStreamFromFile(filePath: string): Reada
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function convertWebReadableToNodeReadable(webStream: ReadableStream<Uint8Array>): plugins.stream.Readable;
|
|
16
16
|
/**
|
|
17
|
-
* Converts a Node.js Readable stream to a Web ReadableStream.
|
|
17
|
+
* Converts a Node.js Readable stream to a Web ReadableStream using pull-based backpressure.
|
|
18
18
|
*
|
|
19
19
|
* @param nodeStream - The Node.js Readable stream to convert
|
|
20
20
|
* @returns A Web ReadableStream that reads data from the Node.js Readable stream
|