@push.rocks/smartstream 3.0.41 → 3.0.44
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/index.d.ts +2 -0
- package/dist_ts/index.js +3 -1
- package/dist_ts/smartstream.classes.streamintake.d.ts +1 -0
- package/dist_ts/smartstream.classes.streamintake.js +35 -1
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/package.json +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +5 -0
- package/ts/smartstream.classes.streamintake.ts +39 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
|
@@ -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.44',
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHNMQUFzTDtDQUNwTSxDQUFBIn0=
|
package/dist_ts/index.d.ts
CHANGED
package/dist_ts/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { stream } from './smartstream.plugins.js';
|
|
2
|
+
export { stream, };
|
|
1
3
|
export * from './smartstream.classes.smartduplex.js';
|
|
2
4
|
export * from './smartstream.classes.streamwrapper.js';
|
|
3
5
|
export * from './smartstream.classes.streamintake.js';
|
|
4
6
|
export * from './smartstream.functions.js';
|
|
5
7
|
import * as plugins from './smartstream.plugins.js';
|
|
6
8
|
export const webstream = plugins.webstream;
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sR0FDUCxDQUFBO0FBRUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxPQUFPLEtBQUssT0FBTyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDIn0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import * as plugins from './smartstream.plugins.js';
|
|
3
3
|
export declare class StreamIntake<T> extends plugins.stream.Readable {
|
|
4
|
+
static fromStream<U>(inputStream: plugins.stream.Readable | ReadableStream, options?: plugins.stream.ReadableOptions): Promise<StreamIntake<U>>;
|
|
4
5
|
private signalEndBoolean;
|
|
5
6
|
private chunkStore;
|
|
6
7
|
pushNextObservable: plugins.smartrx.ObservableIntake<any>;
|
|
@@ -1,7 +1,41 @@
|
|
|
1
1
|
import * as plugins from './smartstream.plugins.js';
|
|
2
2
|
export class StreamIntake extends plugins.stream.Readable {
|
|
3
|
+
// STATIC
|
|
4
|
+
static async fromStream(inputStream, options) {
|
|
5
|
+
const intakeStream = new StreamIntake(options);
|
|
6
|
+
if (inputStream instanceof plugins.stream.Readable) {
|
|
7
|
+
inputStream.on('data', (chunk) => {
|
|
8
|
+
intakeStream.pushData(chunk);
|
|
9
|
+
});
|
|
10
|
+
inputStream.on('end', () => {
|
|
11
|
+
intakeStream.signalEnd();
|
|
12
|
+
});
|
|
13
|
+
inputStream.on('error', (err) => {
|
|
14
|
+
intakeStream.destroy(err);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const reader = inputStream.getReader();
|
|
19
|
+
const readChunk = () => {
|
|
20
|
+
reader.read().then(({ done, value }) => {
|
|
21
|
+
if (done) {
|
|
22
|
+
intakeStream.signalEnd();
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
intakeStream.pushData(value);
|
|
26
|
+
readChunk();
|
|
27
|
+
}
|
|
28
|
+
}).catch((err) => {
|
|
29
|
+
intakeStream.destroy(err);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
readChunk();
|
|
33
|
+
}
|
|
34
|
+
return intakeStream;
|
|
35
|
+
}
|
|
3
36
|
constructor(options) {
|
|
4
37
|
super({ ...options, objectMode: true }); // Ensure that we are in object mode.
|
|
38
|
+
// INSTANCE
|
|
5
39
|
this.signalEndBoolean = false;
|
|
6
40
|
this.chunkStore = [];
|
|
7
41
|
this.pushNextObservable = new plugins.smartrx.ObservableIntake();
|
|
@@ -44,4 +78,4 @@ export class StreamIntake extends plugins.stream.Readable {
|
|
|
44
78
|
this.pushNextObservable.signalComplete();
|
|
45
79
|
}
|
|
46
80
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJlYW0uY2xhc3Nlcy5zdHJlYW1pbnRha2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0cmVhbS5jbGFzc2VzLnN0cmVhbWludGFrZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLDBCQUEwQixDQUFDO0FBRXBELE1BQU0sT0FBTyxZQUFnQixTQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUTtJQUMxRCxTQUFTO0lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUksV0FBcUQsRUFBRSxPQUF3QztRQUMvSCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBSSxPQUFPLENBQUMsQ0FBQztRQUVsRCxJQUFJLFdBQVcsWUFBWSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUU7Z0JBQ2xDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ3pCLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztZQUVILFdBQVcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQUU7Z0JBQ3JDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sTUFBTSxHQUFJLFdBQThCLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFM0QsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO2dCQUNyQixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJ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
|
|
@@ -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.44',
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUseUJBQXlCO0lBQy9CLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzTEFBc0w7Q0FDcE0sQ0FBQSJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartstream",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.44",
|
|
4
4
|
"private": false,
|
|
5
5
|
"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.",
|
|
6
6
|
"type": "module",
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartstream',
|
|
6
|
-
version: '3.0.
|
|
6
|
+
version: '3.0.44',
|
|
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
|
}
|
package/ts/index.ts
CHANGED
|
@@ -1,6 +1,45 @@
|
|
|
1
1
|
import * as plugins from './smartstream.plugins.js';
|
|
2
2
|
|
|
3
3
|
export class StreamIntake<T> extends plugins.stream.Readable {
|
|
4
|
+
// STATIC
|
|
5
|
+
public static async fromStream<U>(inputStream: plugins.stream.Readable | ReadableStream, options?: plugins.stream.ReadableOptions): Promise<StreamIntake<U>> {
|
|
6
|
+
const intakeStream = new StreamIntake<U>(options);
|
|
7
|
+
|
|
8
|
+
if (inputStream instanceof plugins.stream.Readable) {
|
|
9
|
+
inputStream.on('data', (chunk: U) => {
|
|
10
|
+
intakeStream.pushData(chunk);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
inputStream.on('end', () => {
|
|
14
|
+
intakeStream.signalEnd();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
inputStream.on('error', (err: Error) => {
|
|
18
|
+
intakeStream.destroy(err);
|
|
19
|
+
});
|
|
20
|
+
} else {
|
|
21
|
+
const reader = (inputStream as ReadableStream).getReader();
|
|
22
|
+
|
|
23
|
+
const readChunk = () => {
|
|
24
|
+
reader.read().then(({ done, value }) => {
|
|
25
|
+
if (done) {
|
|
26
|
+
intakeStream.signalEnd();
|
|
27
|
+
} else {
|
|
28
|
+
intakeStream.pushData(value);
|
|
29
|
+
readChunk();
|
|
30
|
+
}
|
|
31
|
+
}).catch((err) => {
|
|
32
|
+
intakeStream.destroy(err);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
readChunk();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return intakeStream;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// INSTANCE
|
|
4
43
|
private signalEndBoolean = false;
|
|
5
44
|
private chunkStore: T[] = [];
|
|
6
45
|
public pushNextObservable = new plugins.smartrx.ObservableIntake<any>();
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartstream',
|
|
6
|
-
version: '3.0.
|
|
6
|
+
version: '3.0.44',
|
|
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
|
}
|