@yume-chan/stream-extra 0.0.22 → 0.0.24
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/CHANGELOG.json +36 -0
- package/CHANGELOG.md +19 -1
- package/LICENSE +1 -1
- package/esm/concat.d.ts +4 -3
- package/esm/concat.d.ts.map +1 -1
- package/esm/concat.js +6 -4
- package/esm/concat.js.map +1 -1
- package/esm/consumable.d.ts +31 -43
- package/esm/consumable.d.ts.map +1 -1
- package/esm/consumable.js +96 -144
- package/esm/consumable.js.map +1 -1
- package/esm/distribution.d.ts +3 -2
- package/esm/distribution.d.ts.map +1 -1
- package/esm/distribution.js +22 -18
- package/esm/distribution.js.map +1 -1
- package/esm/encoding.d.ts +21 -0
- package/esm/encoding.d.ts.map +1 -0
- package/esm/encoding.js +4 -0
- package/esm/encoding.js.map +1 -0
- package/esm/index.d.ts +3 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -1
- package/esm/index.js.map +1 -1
- package/esm/maybe-consumable.d.ts +21 -0
- package/esm/maybe-consumable.d.ts.map +1 -0
- package/esm/maybe-consumable.js +62 -0
- package/esm/maybe-consumable.js.map +1 -0
- package/esm/pipe-from.d.ts +1 -1
- package/esm/pipe-from.d.ts.map +1 -1
- package/esm/stream.d.ts +9 -10
- package/esm/stream.d.ts.map +1 -1
- package/esm/stream.js +6 -12
- package/esm/stream.js.map +1 -1
- package/esm/struct-deserialize.d.ts +1 -1
- package/esm/struct-deserialize.d.ts.map +1 -1
- package/esm/struct-deserialize.js.map +1 -1
- package/esm/struct-serialize.d.ts +1 -1
- package/esm/struct-serialize.d.ts.map +1 -1
- package/esm/task.d.ts +5 -0
- package/esm/task.d.ts.map +1 -0
- package/esm/task.js +9 -0
- package/esm/task.js.map +1 -0
- package/esm/types.d.ts +778 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/types.js +3 -0
- package/esm/types.js.map +1 -0
- package/esm/wrap-writable.d.ts +1 -1
- package/esm/wrap-writable.d.ts.map +1 -1
- package/esm/wrap-writable.js +12 -12
- package/esm/wrap-writable.js.map +1 -1
- package/package.json +9 -12
- package/src/concat.ts +6 -4
- package/src/consumable.ts +145 -233
- package/src/distribution.ts +30 -20
- package/src/encoding.ts +39 -0
- package/src/index.ts +3 -1
- package/src/maybe-consumable.ts +101 -0
- package/src/stream.ts +20 -25
- package/src/struct-deserialize.ts +2 -2
- package/src/struct-serialize.ts +1 -1
- package/src/task.ts +21 -0
- package/src/types.ts +881 -0
- package/src/wrap-writable.ts +12 -12
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/decode-utf8.d.ts +0 -5
- package/esm/decode-utf8.d.ts.map +0 -1
- package/esm/decode-utf8.js +0 -12
- package/esm/decode-utf8.js.map +0 -1
- package/src/decode-utf8.ts +0 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/esm/types.js
ADDED
package/esm/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAg3B5C,OAAO,EAAE,CAAC"}
|
package/esm/wrap-writable.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface WritableStreamWrapper<T> {
|
|
|
9
9
|
export declare class WrapWritableStream<T> extends WritableStream<T> {
|
|
10
10
|
#private;
|
|
11
11
|
writable: WritableStream<T>;
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(start: WritableStream<T> | WrapWritableStreamStart<T> | WritableStreamWrapper<T>);
|
|
13
13
|
bePipedThroughFrom<U>(transformer: TransformStream<U, T>): WrapWritableStream<U>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=wrap-writable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-writable.d.ts","sourceRoot":"","sources":["../src/wrap-writable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,MAAM,cAAc,CACzD,cAAc,CAAC,CAAC,CAAC,CACpB,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAmBD,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;;IACxD,QAAQ,EAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAKzB,
|
|
1
|
+
{"version":3,"file":"wrap-writable.d.ts","sourceRoot":"","sources":["../src/wrap-writable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,MAAM,cAAc,CACzD,cAAc,CAAC,CAAC,CAAC,CACpB,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAmBD,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;;IACxD,QAAQ,EAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAKzB,KAAK,EACC,cAAc,CAAC,CAAC,CAAC,GACjB,uBAAuB,CAAC,CAAC,CAAC,GAC1B,qBAAqB,CAAC,CAAC,CAAC;IAmClC,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;CAY3D"}
|
package/esm/wrap-writable.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { WritableStream } from "./stream.js";
|
|
2
|
-
async function getWrappedWritableStream(
|
|
3
|
-
if ("start" in
|
|
4
|
-
return await
|
|
2
|
+
async function getWrappedWritableStream(start) {
|
|
3
|
+
if ("start" in start) {
|
|
4
|
+
return await start.start();
|
|
5
5
|
}
|
|
6
|
-
else if (typeof
|
|
7
|
-
return await
|
|
6
|
+
else if (typeof start === "function") {
|
|
7
|
+
return await start();
|
|
8
8
|
}
|
|
9
9
|
else {
|
|
10
10
|
// Can't use `wrapper instanceof WritableStream`
|
|
11
11
|
// Because we want to be compatible with any WritableStream-like objects
|
|
12
|
-
return
|
|
12
|
+
return start;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
export class WrapWritableStream extends WritableStream {
|
|
16
16
|
writable;
|
|
17
17
|
#writer;
|
|
18
|
-
constructor(
|
|
18
|
+
constructor(start) {
|
|
19
19
|
super({
|
|
20
20
|
start: async () => {
|
|
21
21
|
// `start` is invoked before `ReadableStream`'s constructor finish,
|
|
@@ -23,7 +23,7 @@ export class WrapWritableStream extends WritableStream {
|
|
|
23
23
|
// "Must call super constructor in derived class before accessing 'this' or returning from derived constructor".
|
|
24
24
|
// Queue a microtask to avoid this.
|
|
25
25
|
await Promise.resolve();
|
|
26
|
-
this.writable = await getWrappedWritableStream(
|
|
26
|
+
this.writable = await getWrappedWritableStream(start);
|
|
27
27
|
this.#writer = this.writable.getWriter();
|
|
28
28
|
},
|
|
29
29
|
write: async (chunk) => {
|
|
@@ -31,8 +31,8 @@ export class WrapWritableStream extends WritableStream {
|
|
|
31
31
|
},
|
|
32
32
|
abort: async (reason) => {
|
|
33
33
|
await this.#writer.abort(reason);
|
|
34
|
-
if ("close" in
|
|
35
|
-
await
|
|
34
|
+
if (start !== this.writable && "close" in start) {
|
|
35
|
+
await start.close?.();
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
close: async () => {
|
|
@@ -41,8 +41,8 @@ export class WrapWritableStream extends WritableStream {
|
|
|
41
41
|
// closing the outer stream first will make the inner stream incapable of
|
|
42
42
|
// sending data in its `close` handler.
|
|
43
43
|
await this.#writer.close();
|
|
44
|
-
if ("close" in
|
|
45
|
-
await
|
|
44
|
+
if (start !== this.writable && "close" in start) {
|
|
45
|
+
await start.close?.();
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
});
|
package/esm/wrap-writable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-writable.js","sourceRoot":"","sources":["../src/wrap-writable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAW7C,KAAK,UAAU,wBAAwB,CACnC,
|
|
1
|
+
{"version":3,"file":"wrap-writable.js","sourceRoot":"","sources":["../src/wrap-writable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAW7C,KAAK,UAAU,wBAAwB,CACnC,KAG8B;IAE9B,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACnB,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,MAAM,KAAK,EAAE,CAAC;IACzB,CAAC;SAAM,CAAC;QACJ,gDAAgD;QAChD,wEAAwE;QACxE,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,OAAO,kBAAsB,SAAQ,cAAiB;IACxD,QAAQ,CAAqB;IAE7B,OAAO,CAAkC;IAEzC,YACI,KAG8B;QAE9B,KAAK,CAAC;YACF,KAAK,EAAE,KAAK,IAAI,EAAE;gBACd,mEAAmE;gBACnE,uCAAuC;gBACvC,gHAAgH;gBAChH,mCAAmC;gBACnC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBAExB,IAAI,CAAC,QAAQ,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC7C,CAAC;YACD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACpB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;oBAC9C,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC1B,CAAC;YACL,CAAC;YACD,KAAK,EAAE,KAAK,IAAI,EAAE;gBACd,gCAAgC;gBAChC,0EAA0E;gBAC1E,yEAAyE;gBACzE,uCAAuC;gBACvC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3B,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;oBAC9C,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC1B,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAI,WAAkC;QACpD,IAAI,OAAsB,CAAC;QAC3B,OAAO,IAAI,kBAAkB,CAAI;YAC7B,KAAK,EAAE,GAAG,EAAE;gBACR,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5C,OAAO,WAAW,CAAC,QAAQ,CAAC;YAChC,CAAC;YACD,KAAK,CAAC,KAAK;gBACP,MAAM,OAAO,CAAC;YAClB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yume-chan/stream-extra",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.24",
|
|
4
4
|
"description": "Extensions to Web Streams API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"stream",
|
|
@@ -26,25 +26,22 @@
|
|
|
26
26
|
"types": "esm/index.d.ts",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@yume-chan/async": "^2.2.0",
|
|
29
|
-
"@yume-chan/struct": "^0.0.
|
|
30
|
-
"tslib": "^2.6.2",
|
|
31
|
-
"web-streams-polyfill": "^4.0.0-beta.3"
|
|
29
|
+
"@yume-chan/struct": "^0.0.24"
|
|
32
30
|
},
|
|
33
31
|
"devDependencies": {
|
|
34
|
-
"@jest/globals": "^
|
|
32
|
+
"@jest/globals": "^30.0.0-alpha.4",
|
|
35
33
|
"@yume-chan/eslint-config": "^1.0.0",
|
|
36
34
|
"@yume-chan/tsconfig": "^1.0.0",
|
|
37
35
|
"cross-env": "^7.0.3",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"typescript": "^5.3.2"
|
|
36
|
+
"jest": "^30.0.0-alpha.4",
|
|
37
|
+
"prettier": "^3.3.2",
|
|
38
|
+
"ts-jest": "^29.1.4",
|
|
39
|
+
"typescript": "^5.4.5"
|
|
43
40
|
},
|
|
44
41
|
"scripts": {
|
|
45
42
|
"build": "tsc -b tsconfig.build.json",
|
|
46
43
|
"build:watch": "tsc -b tsconfig.build.json",
|
|
47
|
-
"test": "cross-env NODE_OPTIONS
|
|
48
|
-
"lint": "eslint
|
|
44
|
+
"test": "cross-env NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" TS_JEST_DISABLE_VER_CHECKER=true jest --coverage",
|
|
45
|
+
"lint": "run-eslint && prettier src/**/*.ts --write --tab-width 4"
|
|
49
46
|
}
|
|
50
47
|
}
|
package/src/concat.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PromiseResolver } from "@yume-chan/async";
|
|
2
|
+
import { EMPTY_UINT8_ARRAY } from "@yume-chan/struct";
|
|
2
3
|
|
|
3
4
|
import type { ReadableStreamDefaultController } from "./stream.js";
|
|
4
5
|
import { ReadableStream, WritableStream } from "./stream.js";
|
|
@@ -81,9 +82,10 @@ export interface ConcatBufferReadableStream
|
|
|
81
82
|
* A `TransformStream` that concatenates `Uint8Array`s.
|
|
82
83
|
*
|
|
83
84
|
* If you want to decode the result as string,
|
|
84
|
-
* prefer `.pipeThrough(new
|
|
85
|
-
* than `.pipeThough(new ConcatBufferStream()).pipeThrough(new
|
|
86
|
-
* because
|
|
85
|
+
* prefer `.pipeThrough(new TextDecoderStream()).pipeThrough(new ConcatStringStream())`,
|
|
86
|
+
* than `.pipeThough(new ConcatBufferStream()).pipeThrough(new TextDecoderStream())`,
|
|
87
|
+
* because of JavaScript engine optimizations,
|
|
88
|
+
* concatenating strings is faster than concatenating `Uint8Array`s.
|
|
87
89
|
*/
|
|
88
90
|
export class ConcatBufferStream {
|
|
89
91
|
#segments: Uint8Array[] = [];
|
|
@@ -99,7 +101,7 @@ export class ConcatBufferStream {
|
|
|
99
101
|
let offset = 0;
|
|
100
102
|
switch (this.#segments.length) {
|
|
101
103
|
case 0:
|
|
102
|
-
result =
|
|
104
|
+
result = EMPTY_UINT8_ARRAY;
|
|
103
105
|
break;
|
|
104
106
|
case 1:
|
|
105
107
|
result = this.#segments[0]!;
|
package/src/consumable.ts
CHANGED
|
@@ -5,30 +5,17 @@ import type {
|
|
|
5
5
|
WritableStreamDefaultController,
|
|
6
6
|
WritableStreamDefaultWriter,
|
|
7
7
|
} from "./stream.js";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
interface Console {
|
|
15
|
-
createTask(name: string): Task;
|
|
16
|
-
}
|
|
8
|
+
import {
|
|
9
|
+
ReadableStream as NativeReadableStream,
|
|
10
|
+
WritableStream as NativeWritableStream,
|
|
11
|
+
} from "./stream.js";
|
|
12
|
+
import type { Task } from "./task.js";
|
|
13
|
+
import { createTask } from "./task.js";
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
function isPromiseLike(value: unknown): value is PromiseLike<unknown> {
|
|
16
|
+
return typeof value === "object" && value !== null && "then" in value;
|
|
20
17
|
}
|
|
21
18
|
|
|
22
|
-
// `createTask` allows browser DevTools to track the call stack across async boundaries.
|
|
23
|
-
const { console } = globalThis as unknown as GlobalExtension;
|
|
24
|
-
const createTask: Console["createTask"] =
|
|
25
|
-
console.createTask?.bind(console) ??
|
|
26
|
-
(() => ({
|
|
27
|
-
run(callback) {
|
|
28
|
-
return callback();
|
|
29
|
-
},
|
|
30
|
-
}));
|
|
31
|
-
|
|
32
19
|
export class Consumable<T> {
|
|
33
20
|
readonly #task: Task;
|
|
34
21
|
readonly #resolver: PromiseResolver<void>;
|
|
@@ -47,15 +34,27 @@ export class Consumable<T> {
|
|
|
47
34
|
this.#resolver.resolve();
|
|
48
35
|
}
|
|
49
36
|
|
|
50
|
-
error(error:
|
|
37
|
+
error(error: unknown) {
|
|
51
38
|
this.#resolver.reject(error);
|
|
52
39
|
}
|
|
53
40
|
|
|
54
|
-
|
|
41
|
+
tryConsume<U>(callback: (value: T) => U) {
|
|
55
42
|
try {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
43
|
+
let result = this.#task.run(() => callback(this.value));
|
|
44
|
+
if (isPromiseLike(result)) {
|
|
45
|
+
result = result.then(
|
|
46
|
+
(value) => {
|
|
47
|
+
this.#resolver.resolve();
|
|
48
|
+
return value;
|
|
49
|
+
},
|
|
50
|
+
(e) => {
|
|
51
|
+
this.#resolver.reject(e);
|
|
52
|
+
throw e;
|
|
53
|
+
},
|
|
54
|
+
) as U;
|
|
55
|
+
} else {
|
|
56
|
+
this.#resolver.resolve();
|
|
57
|
+
}
|
|
59
58
|
return result;
|
|
60
59
|
} catch (e) {
|
|
61
60
|
this.#resolver.reject(e);
|
|
@@ -64,230 +63,143 @@ export class Consumable<T> {
|
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
super({
|
|
79
|
-
async transform(chunk, controller) {
|
|
80
|
-
await enqueue(controller, chunk);
|
|
81
|
-
},
|
|
82
|
-
});
|
|
66
|
+
export namespace Consumable {
|
|
67
|
+
export interface WritableStreamSink<in T> {
|
|
68
|
+
start?(
|
|
69
|
+
controller: WritableStreamDefaultController,
|
|
70
|
+
): void | PromiseLike<void>;
|
|
71
|
+
write?(
|
|
72
|
+
chunk: T,
|
|
73
|
+
controller: WritableStreamDefaultController,
|
|
74
|
+
): void | PromiseLike<void>;
|
|
75
|
+
abort?(reason: unknown): void | PromiseLike<void>;
|
|
76
|
+
close?(): void | PromiseLike<void>;
|
|
83
77
|
}
|
|
84
|
-
}
|
|
85
78
|
|
|
86
|
-
export class
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
>
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export interface ConsumableReadableStreamController<T> {
|
|
101
|
-
enqueue(chunk: T): Promise<void>;
|
|
102
|
-
close(): void;
|
|
103
|
-
error(reason: any): void;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export interface ConsumableReadableStreamSource<T> {
|
|
107
|
-
start?(
|
|
108
|
-
controller: ConsumableReadableStreamController<T>,
|
|
109
|
-
): void | PromiseLike<void>;
|
|
110
|
-
pull?(
|
|
111
|
-
controller: ConsumableReadableStreamController<T>,
|
|
112
|
-
): void | PromiseLike<void>;
|
|
113
|
-
cancel?(reason: any): void | PromiseLike<void>;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export class ConsumableReadableStream<T> extends ReadableStream<Consumable<T>> {
|
|
117
|
-
constructor(
|
|
118
|
-
source: ConsumableReadableStreamSource<T>,
|
|
119
|
-
strategy?: QueuingStrategy<T>,
|
|
120
|
-
) {
|
|
121
|
-
let wrappedController:
|
|
122
|
-
| ConsumableReadableStreamController<T>
|
|
123
|
-
| undefined;
|
|
124
|
-
|
|
125
|
-
let wrappedStrategy: QueuingStrategy<Consumable<T>> | undefined;
|
|
126
|
-
if (strategy) {
|
|
127
|
-
wrappedStrategy = {};
|
|
128
|
-
if ("highWaterMark" in strategy) {
|
|
129
|
-
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
130
|
-
}
|
|
131
|
-
if ("size" in strategy) {
|
|
132
|
-
wrappedStrategy.size = (chunk) => {
|
|
133
|
-
return strategy.size!(chunk.value);
|
|
134
|
-
};
|
|
135
|
-
}
|
|
79
|
+
export class WritableStream<in T> extends NativeWritableStream<
|
|
80
|
+
Consumable<T>
|
|
81
|
+
> {
|
|
82
|
+
static async write<T>(
|
|
83
|
+
writer: WritableStreamDefaultWriter<Consumable<T>>,
|
|
84
|
+
value: T,
|
|
85
|
+
) {
|
|
86
|
+
const consumable = new Consumable(value);
|
|
87
|
+
await writer.write(consumable);
|
|
88
|
+
await consumable.consumed;
|
|
136
89
|
}
|
|
137
90
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
91
|
+
constructor(
|
|
92
|
+
sink: WritableStreamSink<T>,
|
|
93
|
+
strategy?: QueuingStrategy<T>,
|
|
94
|
+
) {
|
|
95
|
+
let wrappedStrategy: QueuingStrategy<Consumable<T>> | undefined;
|
|
96
|
+
if (strategy) {
|
|
97
|
+
wrappedStrategy = {};
|
|
98
|
+
if ("highWaterMark" in strategy) {
|
|
99
|
+
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
100
|
+
}
|
|
101
|
+
if ("size" in strategy) {
|
|
102
|
+
wrappedStrategy.size = (chunk) => {
|
|
103
|
+
return strategy.size!(
|
|
104
|
+
chunk instanceof Consumable ? chunk.value : chunk,
|
|
105
|
+
);
|
|
151
106
|
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
152
109
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
110
|
+
super(
|
|
111
|
+
{
|
|
112
|
+
start(controller) {
|
|
113
|
+
return sink.start?.(controller);
|
|
114
|
+
},
|
|
115
|
+
async write(chunk, controller) {
|
|
116
|
+
await chunk.tryConsume((chunk) =>
|
|
117
|
+
sink.write?.(chunk, controller),
|
|
118
|
+
);
|
|
119
|
+
},
|
|
120
|
+
abort(reason) {
|
|
121
|
+
return sink.abort?.(reason);
|
|
122
|
+
},
|
|
123
|
+
close() {
|
|
124
|
+
return sink.close?.();
|
|
125
|
+
},
|
|
160
126
|
},
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
127
|
+
wrappedStrategy,
|
|
128
|
+
);
|
|
129
|
+
}
|
|
164
130
|
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export interface ConsumableWritableStreamSink<T> {
|
|
168
|
-
start?(
|
|
169
|
-
controller: WritableStreamDefaultController,
|
|
170
|
-
): void | PromiseLike<void>;
|
|
171
|
-
write?(
|
|
172
|
-
chunk: T,
|
|
173
|
-
controller: WritableStreamDefaultController,
|
|
174
|
-
): void | PromiseLike<void>;
|
|
175
|
-
abort?(reason: any): void | PromiseLike<void>;
|
|
176
|
-
close?(): void | PromiseLike<void>;
|
|
177
|
-
}
|
|
178
131
|
|
|
179
|
-
export
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
) {
|
|
184
|
-
const consumable = new Consumable(value);
|
|
185
|
-
await writer.write(consumable);
|
|
186
|
-
await consumable.consumed;
|
|
132
|
+
export interface ReadableStreamController<T> {
|
|
133
|
+
enqueue(chunk: T): Promise<void>;
|
|
134
|
+
close(): void;
|
|
135
|
+
error(reason: unknown): void;
|
|
187
136
|
}
|
|
188
137
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
198
|
-
}
|
|
199
|
-
if ("size" in strategy) {
|
|
200
|
-
wrappedStrategy.size = (chunk) => {
|
|
201
|
-
return strategy.size!(chunk.value);
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
super(
|
|
207
|
-
{
|
|
208
|
-
start(controller) {
|
|
209
|
-
return sink.start?.(controller);
|
|
210
|
-
},
|
|
211
|
-
async write(chunk, controller) {
|
|
212
|
-
await chunk.tryConsume(
|
|
213
|
-
(value) => sink.write?.(value, controller),
|
|
214
|
-
);
|
|
215
|
-
chunk.consume();
|
|
216
|
-
},
|
|
217
|
-
abort(reason) {
|
|
218
|
-
return sink.abort?.(reason);
|
|
219
|
-
},
|
|
220
|
-
close() {
|
|
221
|
-
return sink.close?.();
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
wrappedStrategy,
|
|
225
|
-
);
|
|
138
|
+
export interface ReadableStreamSource<T> {
|
|
139
|
+
start?(
|
|
140
|
+
controller: ReadableStreamController<T>,
|
|
141
|
+
): void | PromiseLike<void>;
|
|
142
|
+
pull?(
|
|
143
|
+
controller: ReadableStreamController<T>,
|
|
144
|
+
): void | PromiseLike<void>;
|
|
145
|
+
cancel?(reason: unknown): void | PromiseLike<void>;
|
|
226
146
|
}
|
|
227
|
-
}
|
|
228
147
|
|
|
229
|
-
export
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
controller: ConsumableReadableStreamController<O>,
|
|
239
|
-
): void | PromiseLike<void>;
|
|
240
|
-
}
|
|
148
|
+
export class ReadableStream<T> extends NativeReadableStream<Consumable<T>> {
|
|
149
|
+
static async enqueue<T>(
|
|
150
|
+
controller: { enqueue: (chunk: Consumable<T>) => void },
|
|
151
|
+
chunk: T,
|
|
152
|
+
) {
|
|
153
|
+
const output = new Consumable(chunk);
|
|
154
|
+
controller.enqueue(output);
|
|
155
|
+
await output.consumed;
|
|
156
|
+
}
|
|
241
157
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
|
249
|
-
|
|
158
|
+
constructor(
|
|
159
|
+
source: ReadableStreamSource<T>,
|
|
160
|
+
strategy?: QueuingStrategy<T>,
|
|
161
|
+
) {
|
|
162
|
+
let wrappedController: ReadableStreamController<T> | undefined;
|
|
163
|
+
|
|
164
|
+
let wrappedStrategy: QueuingStrategy<Consumable<T>> | undefined;
|
|
165
|
+
if (strategy) {
|
|
166
|
+
wrappedStrategy = {};
|
|
167
|
+
if ("highWaterMark" in strategy) {
|
|
168
|
+
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
169
|
+
}
|
|
170
|
+
if ("size" in strategy) {
|
|
171
|
+
wrappedStrategy.size = (chunk) => {
|
|
172
|
+
return strategy.size!(chunk.value);
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
250
176
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
177
|
+
super(
|
|
178
|
+
{
|
|
179
|
+
async start(controller) {
|
|
180
|
+
wrappedController = {
|
|
181
|
+
async enqueue(chunk) {
|
|
182
|
+
await ReadableStream.enqueue(controller, chunk);
|
|
183
|
+
},
|
|
184
|
+
close() {
|
|
185
|
+
controller.close();
|
|
186
|
+
},
|
|
187
|
+
error(reason) {
|
|
188
|
+
controller.error(reason);
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
await source.start?.(wrappedController);
|
|
256
193
|
},
|
|
257
|
-
|
|
258
|
-
|
|
194
|
+
async pull() {
|
|
195
|
+
await source.pull?.(wrappedController!);
|
|
259
196
|
},
|
|
260
|
-
|
|
261
|
-
|
|
197
|
+
async cancel(reason) {
|
|
198
|
+
await source.cancel?.(reason);
|
|
262
199
|
},
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
async transform(chunk) {
|
|
268
|
-
await chunk.tryConsume(
|
|
269
|
-
(value) =>
|
|
270
|
-
transformer.transform?.(value, wrappedController!),
|
|
271
|
-
);
|
|
272
|
-
chunk.consume();
|
|
273
|
-
},
|
|
274
|
-
async flush() {
|
|
275
|
-
await transformer.flush?.(wrappedController!);
|
|
276
|
-
},
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
export class ConsumableInspectStream<T> extends TransformStream<
|
|
282
|
-
Consumable<T>,
|
|
283
|
-
Consumable<T>
|
|
284
|
-
> {
|
|
285
|
-
constructor(callback: (value: T) => void) {
|
|
286
|
-
super({
|
|
287
|
-
transform(chunk, controller) {
|
|
288
|
-
callback(chunk.value);
|
|
289
|
-
controller.enqueue(chunk);
|
|
290
|
-
},
|
|
291
|
-
});
|
|
200
|
+
},
|
|
201
|
+
wrappedStrategy,
|
|
202
|
+
);
|
|
203
|
+
}
|
|
292
204
|
}
|
|
293
205
|
}
|