@yume-chan/stream-extra 0.0.24 → 2.0.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/CHANGELOG.md +29 -1
- package/LICENSE +1 -1
- package/esm/buffered-transform.d.ts +3 -3
- package/esm/buffered-transform.d.ts.map +1 -1
- package/esm/buffered-transform.js +14 -8
- package/esm/buffered-transform.js.map +1 -1
- package/esm/buffered.d.ts +3 -6
- package/esm/buffered.d.ts.map +1 -1
- package/esm/buffered.js +87 -75
- package/esm/buffered.js.map +1 -1
- package/esm/concat.js +2 -2
- package/esm/concat.js.map +1 -1
- package/esm/consumable.d.ts +15 -10
- package/esm/consumable.d.ts.map +1 -1
- package/esm/consumable.js +82 -86
- package/esm/consumable.js.map +1 -1
- package/esm/duplex.d.ts +2 -2
- package/esm/duplex.d.ts.map +1 -1
- package/esm/duplex.js +2 -6
- package/esm/duplex.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/maybe-consumable-ns.d.ts +16 -0
- package/esm/maybe-consumable-ns.d.ts.map +1 -0
- package/esm/maybe-consumable-ns.js +44 -0
- package/esm/maybe-consumable-ns.js.map +1 -0
- package/esm/maybe-consumable.d.ts +2 -19
- package/esm/maybe-consumable.d.ts.map +1 -1
- package/esm/maybe-consumable.js +1 -61
- package/esm/maybe-consumable.js.map +1 -1
- package/esm/push-readable.d.ts +16 -2
- package/esm/push-readable.d.ts.map +1 -1
- package/esm/push-readable.js +176 -17
- package/esm/push-readable.js.map +1 -1
- package/esm/split-string.d.ts.map +1 -1
- package/esm/split-string.js +19 -14
- package/esm/split-string.js.map +1 -1
- package/esm/stream.d.ts +5 -5
- package/esm/stream.d.ts.map +1 -1
- package/esm/stream.js +54 -5
- package/esm/stream.js.map +1 -1
- package/esm/struct-deserialize.d.ts +3 -4
- package/esm/struct-deserialize.d.ts.map +1 -1
- package/esm/struct-deserialize.js.map +1 -1
- package/esm/struct-serialize.d.ts +2 -2
- package/esm/struct-serialize.d.ts.map +1 -1
- package/esm/struct-serialize.js.map +1 -1
- package/esm/task.d.ts.map +1 -1
- package/esm/task.js +2 -2
- package/esm/task.js.map +1 -1
- package/esm/try-close.d.ts +10 -0
- package/esm/try-close.d.ts.map +1 -0
- package/esm/try-close.js +19 -0
- package/esm/try-close.js.map +1 -0
- package/esm/types.d.ts +3 -3
- package/esm/types.d.ts.map +1 -1
- package/esm/types.js.map +1 -1
- package/esm/wrap-readable.d.ts +5 -4
- package/esm/wrap-readable.d.ts.map +1 -1
- package/esm/wrap-readable.js +14 -9
- package/esm/wrap-readable.js.map +1 -1
- package/esm/wrap-writable.d.ts +2 -2
- package/esm/wrap-writable.d.ts.map +1 -1
- package/esm/wrap-writable.js +4 -6
- package/esm/wrap-writable.js.map +1 -1
- package/package.json +11 -13
- package/src/buffered-transform.ts +21 -11
- package/src/buffered.ts +107 -83
- package/src/concat.ts +2 -2
- package/src/consumable.ts +117 -112
- package/src/duplex.ts +4 -7
- package/src/index.ts +1 -0
- package/src/maybe-consumable-ns.ts +75 -0
- package/src/maybe-consumable.ts +2 -98
- package/src/push-readable.ts +213 -19
- package/src/split-string.ts +22 -21
- package/src/stream.ts +68 -8
- package/src/struct-deserialize.ts +3 -6
- package/src/struct-serialize.ts +3 -3
- package/src/task.ts +2 -2
- package/src/try-close.ts +44 -0
- package/src/types.ts +3 -2
- package/src/wrap-readable.ts +20 -14
- package/src/wrap-writable.ts +6 -9
- package/tsconfig.build.tsbuildinfo +1 -1
- package/CHANGELOG.json +0 -104
package/esm/consumable.js
CHANGED
|
@@ -1,10 +1,89 @@
|
|
|
1
|
-
import { PromiseResolver } from "@yume-chan/async";
|
|
1
|
+
import { PromiseResolver, isPromiseLike } from "@yume-chan/async";
|
|
2
2
|
import { ReadableStream as NativeReadableStream, WritableStream as NativeWritableStream, } from "./stream.js";
|
|
3
3
|
import { createTask } from "./task.js";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
// Workaround https://github.com/evanw/esbuild/issues/3923
|
|
5
|
+
class WritableStream extends NativeWritableStream {
|
|
6
|
+
static async write(writer, value) {
|
|
7
|
+
const consumable = new Consumable(value);
|
|
8
|
+
await writer.write(consumable);
|
|
9
|
+
await consumable.consumed;
|
|
10
|
+
}
|
|
11
|
+
constructor(sink, strategy) {
|
|
12
|
+
let wrappedStrategy;
|
|
13
|
+
if (strategy) {
|
|
14
|
+
wrappedStrategy = {};
|
|
15
|
+
if ("highWaterMark" in strategy) {
|
|
16
|
+
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
17
|
+
}
|
|
18
|
+
if ("size" in strategy) {
|
|
19
|
+
wrappedStrategy.size = (chunk) => {
|
|
20
|
+
return strategy.size(chunk instanceof Consumable ? chunk.value : chunk);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
super({
|
|
25
|
+
start(controller) {
|
|
26
|
+
return sink.start?.(controller);
|
|
27
|
+
},
|
|
28
|
+
async write(chunk, controller) {
|
|
29
|
+
await chunk.tryConsume((chunk) => sink.write?.(chunk, controller));
|
|
30
|
+
},
|
|
31
|
+
abort(reason) {
|
|
32
|
+
return sink.abort?.(reason);
|
|
33
|
+
},
|
|
34
|
+
close() {
|
|
35
|
+
return sink.close?.();
|
|
36
|
+
},
|
|
37
|
+
}, wrappedStrategy);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
class ReadableStream extends NativeReadableStream {
|
|
41
|
+
static async enqueue(controller, chunk) {
|
|
42
|
+
const output = new Consumable(chunk);
|
|
43
|
+
controller.enqueue(output);
|
|
44
|
+
await output.consumed;
|
|
45
|
+
}
|
|
46
|
+
constructor(source, strategy) {
|
|
47
|
+
let wrappedController;
|
|
48
|
+
let wrappedStrategy;
|
|
49
|
+
if (strategy) {
|
|
50
|
+
wrappedStrategy = {};
|
|
51
|
+
if ("highWaterMark" in strategy) {
|
|
52
|
+
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
53
|
+
}
|
|
54
|
+
if ("size" in strategy) {
|
|
55
|
+
wrappedStrategy.size = (chunk) => {
|
|
56
|
+
return strategy.size(chunk.value);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
super({
|
|
61
|
+
async start(controller) {
|
|
62
|
+
wrappedController = {
|
|
63
|
+
async enqueue(chunk) {
|
|
64
|
+
await ReadableStream.enqueue(controller, chunk);
|
|
65
|
+
},
|
|
66
|
+
close() {
|
|
67
|
+
controller.close();
|
|
68
|
+
},
|
|
69
|
+
error(reason) {
|
|
70
|
+
controller.error(reason);
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
await source.start?.(wrappedController);
|
|
74
|
+
},
|
|
75
|
+
async pull() {
|
|
76
|
+
await source.pull?.(wrappedController);
|
|
77
|
+
},
|
|
78
|
+
async cancel(reason) {
|
|
79
|
+
await source.cancel?.(reason);
|
|
80
|
+
},
|
|
81
|
+
}, wrappedStrategy);
|
|
82
|
+
}
|
|
6
83
|
}
|
|
7
84
|
export class Consumable {
|
|
85
|
+
static WritableStream = WritableStream;
|
|
86
|
+
static ReadableStream = ReadableStream;
|
|
8
87
|
#task;
|
|
9
88
|
#resolver;
|
|
10
89
|
value;
|
|
@@ -44,87 +123,4 @@ export class Consumable {
|
|
|
44
123
|
}
|
|
45
124
|
}
|
|
46
125
|
}
|
|
47
|
-
(function (Consumable) {
|
|
48
|
-
class WritableStream extends NativeWritableStream {
|
|
49
|
-
static async write(writer, value) {
|
|
50
|
-
const consumable = new Consumable(value);
|
|
51
|
-
await writer.write(consumable);
|
|
52
|
-
await consumable.consumed;
|
|
53
|
-
}
|
|
54
|
-
constructor(sink, strategy) {
|
|
55
|
-
let wrappedStrategy;
|
|
56
|
-
if (strategy) {
|
|
57
|
-
wrappedStrategy = {};
|
|
58
|
-
if ("highWaterMark" in strategy) {
|
|
59
|
-
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
60
|
-
}
|
|
61
|
-
if ("size" in strategy) {
|
|
62
|
-
wrappedStrategy.size = (chunk) => {
|
|
63
|
-
return strategy.size(chunk instanceof Consumable ? chunk.value : chunk);
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
super({
|
|
68
|
-
start(controller) {
|
|
69
|
-
return sink.start?.(controller);
|
|
70
|
-
},
|
|
71
|
-
async write(chunk, controller) {
|
|
72
|
-
await chunk.tryConsume((chunk) => sink.write?.(chunk, controller));
|
|
73
|
-
},
|
|
74
|
-
abort(reason) {
|
|
75
|
-
return sink.abort?.(reason);
|
|
76
|
-
},
|
|
77
|
-
close() {
|
|
78
|
-
return sink.close?.();
|
|
79
|
-
},
|
|
80
|
-
}, wrappedStrategy);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
Consumable.WritableStream = WritableStream;
|
|
84
|
-
class ReadableStream extends NativeReadableStream {
|
|
85
|
-
static async enqueue(controller, chunk) {
|
|
86
|
-
const output = new Consumable(chunk);
|
|
87
|
-
controller.enqueue(output);
|
|
88
|
-
await output.consumed;
|
|
89
|
-
}
|
|
90
|
-
constructor(source, strategy) {
|
|
91
|
-
let wrappedController;
|
|
92
|
-
let wrappedStrategy;
|
|
93
|
-
if (strategy) {
|
|
94
|
-
wrappedStrategy = {};
|
|
95
|
-
if ("highWaterMark" in strategy) {
|
|
96
|
-
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
97
|
-
}
|
|
98
|
-
if ("size" in strategy) {
|
|
99
|
-
wrappedStrategy.size = (chunk) => {
|
|
100
|
-
return strategy.size(chunk.value);
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
super({
|
|
105
|
-
async start(controller) {
|
|
106
|
-
wrappedController = {
|
|
107
|
-
async enqueue(chunk) {
|
|
108
|
-
await ReadableStream.enqueue(controller, chunk);
|
|
109
|
-
},
|
|
110
|
-
close() {
|
|
111
|
-
controller.close();
|
|
112
|
-
},
|
|
113
|
-
error(reason) {
|
|
114
|
-
controller.error(reason);
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
await source.start?.(wrappedController);
|
|
118
|
-
},
|
|
119
|
-
async pull() {
|
|
120
|
-
await source.pull?.(wrappedController);
|
|
121
|
-
},
|
|
122
|
-
async cancel(reason) {
|
|
123
|
-
await source.cancel?.(reason);
|
|
124
|
-
},
|
|
125
|
-
}, wrappedStrategy);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
Consumable.ReadableStream = ReadableStream;
|
|
129
|
-
})(Consumable || (Consumable = {}));
|
|
130
126
|
//# sourceMappingURL=consumable.js.map
|
package/esm/consumable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumable.js","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"consumable.js","sourceRoot":"","sources":["../src/consumable.ts"],"names":[],"mappings":"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"}
|
package/esm/duplex.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
2
|
import type { QueuingStrategy, ReadableStream } from "./stream.js";
|
|
3
3
|
import { WritableStream } from "./stream.js";
|
|
4
4
|
import { WrapReadableStream } from "./wrap-readable.js";
|
|
@@ -15,7 +15,7 @@ export interface DuplexStreamFactoryOptions {
|
|
|
15
15
|
* `DuplexStreamFactory#dispose` yourself, you can return `false`
|
|
16
16
|
* (or a `Promise` that resolves to `false`) to disable the automatic call.
|
|
17
17
|
*/
|
|
18
|
-
close?: (() =>
|
|
18
|
+
close?: (() => MaybePromiseLike<boolean | void>) | undefined;
|
|
19
19
|
/**
|
|
20
20
|
* Callback when any `ReadableStream` is closed (the other peer doesn't produce any more data),
|
|
21
21
|
* or `WritableStream` is aborted (the other peer can't receive any more data),
|
package/esm/duplex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplex.d.ts","sourceRoot":"","sources":["../src/duplex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"duplex.d.ts","sourceRoot":"","sources":["../src/duplex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,MAAM,WAAW,0BAA0B;IACvC;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAE7D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB,CAAC,CAAC,EAAE,CAAC;;IAKjC,IAAI,cAAc,YAEjB;IAGD,IAAI,MAAM,kBAET;gBAIW,OAAO,CAAC,EAAE,0BAA0B;IAIhD,YAAY,CACR,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC9B,kBAAkB,CAAC,CAAC,CAAC;IAoBxB,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAsBtD,KAAK;IAkBL,OAAO;CAUhB"}
|
package/esm/duplex.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PromiseResolver } from "@yume-chan/async";
|
|
2
2
|
import { WritableStream } from "./stream.js";
|
|
3
|
+
import { tryClose } from "./try-close.js";
|
|
3
4
|
import { WrapReadableStream } from "./wrap-readable.js";
|
|
4
5
|
const NOOP = () => {
|
|
5
6
|
// no-op
|
|
@@ -80,12 +81,7 @@ export class DuplexStreamFactory {
|
|
|
80
81
|
this.#writableClosed = true;
|
|
81
82
|
this.#closed.resolve();
|
|
82
83
|
for (const controller of this.#readableControllers) {
|
|
83
|
-
|
|
84
|
-
controller.close();
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// ignore
|
|
88
|
-
}
|
|
84
|
+
tryClose(controller);
|
|
89
85
|
}
|
|
90
86
|
await this.#options.dispose?.();
|
|
91
87
|
}
|
package/esm/duplex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplex.js","sourceRoot":"","sources":["../src/duplex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"duplex.js","sourceRoot":"","sources":["../src/duplex.ts"],"names":[],"mappings":"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"}
|
package/esm/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from "./stream.js";
|
|
|
14
14
|
export * from "./struct-deserialize.js";
|
|
15
15
|
export * from "./struct-serialize.js";
|
|
16
16
|
export * from "./task.js";
|
|
17
|
+
export * from "./try-close.js";
|
|
17
18
|
export * from "./wrap-readable.js";
|
|
18
19
|
export * from "./wrap-writable.js";
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -14,6 +14,7 @@ export * from "./stream.js";
|
|
|
14
14
|
export * from "./struct-deserialize.js";
|
|
15
15
|
export * from "./struct-serialize.js";
|
|
16
16
|
export * from "./task.js";
|
|
17
|
+
export * from "./try-close.js";
|
|
17
18
|
export * from "./wrap-readable.js";
|
|
18
19
|
export * from "./wrap-writable.js";
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Consumable } from "./consumable.js";
|
|
2
|
+
import type { MaybeConsumable } from "./maybe-consumable.js";
|
|
3
|
+
import type { QueuingStrategy, WritableStreamDefaultController } from "./stream.js";
|
|
4
|
+
import { WritableStream as NativeWritableStream } from "./stream.js";
|
|
5
|
+
export declare function getValue<T>(value: MaybeConsumable<T>): T;
|
|
6
|
+
export declare function tryConsume<T, R>(value: T, callback: (value: T extends Consumable<infer U> ? U : T) => R): R;
|
|
7
|
+
export interface WritableStreamSink<in T> {
|
|
8
|
+
start?(controller: WritableStreamDefaultController): void | PromiseLike<void>;
|
|
9
|
+
write?(chunk: T, controller: WritableStreamDefaultController): void | PromiseLike<void>;
|
|
10
|
+
abort?(reason: unknown): void | PromiseLike<void>;
|
|
11
|
+
close?(): void | PromiseLike<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare class WritableStream<in T> extends NativeWritableStream<MaybeConsumable<T>> {
|
|
14
|
+
constructor(sink: WritableStreamSink<T>, strategy?: QueuingStrategy<T>);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=maybe-consumable-ns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybe-consumable-ns.d.ts","sourceRoot":"","sources":["../src/maybe-consumable-ns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACR,eAAe,EACf,+BAA+B,EAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAErE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAExD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC3B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAC9D,CAAC,CAMH;AAED,MAAM,WAAW,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACpC,KAAK,CAAC,CACF,UAAU,EAAE,+BAA+B,GAC5C,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,CACF,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,+BAA+B,GAC5C,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,qBAAa,cAAc,CAAC,EAAE,CAAC,CAAC,CAAE,SAAQ,oBAAoB,CAC1D,eAAe,CAAC,CAAC,CAAC,CACrB;gBACe,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;CAoCzE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Consumable } from "./consumable.js";
|
|
2
|
+
import { WritableStream as NativeWritableStream } from "./stream.js";
|
|
3
|
+
export function getValue(value) {
|
|
4
|
+
return value instanceof Consumable ? value.value : value;
|
|
5
|
+
}
|
|
6
|
+
export function tryConsume(value, callback) {
|
|
7
|
+
if (value instanceof Consumable) {
|
|
8
|
+
return value.tryConsume(callback);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return callback(value);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class WritableStream extends NativeWritableStream {
|
|
15
|
+
constructor(sink, strategy) {
|
|
16
|
+
let wrappedStrategy;
|
|
17
|
+
if (strategy) {
|
|
18
|
+
wrappedStrategy = {};
|
|
19
|
+
if ("highWaterMark" in strategy) {
|
|
20
|
+
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
21
|
+
}
|
|
22
|
+
if ("size" in strategy) {
|
|
23
|
+
wrappedStrategy.size = (chunk) => {
|
|
24
|
+
return strategy.size(chunk instanceof Consumable ? chunk.value : chunk);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
super({
|
|
29
|
+
start(controller) {
|
|
30
|
+
return sink.start?.(controller);
|
|
31
|
+
},
|
|
32
|
+
async write(chunk, controller) {
|
|
33
|
+
await tryConsume(chunk, (chunk) => sink.write?.(chunk, controller));
|
|
34
|
+
},
|
|
35
|
+
abort(reason) {
|
|
36
|
+
return sink.abort?.(reason);
|
|
37
|
+
},
|
|
38
|
+
close() {
|
|
39
|
+
return sink.close?.();
|
|
40
|
+
},
|
|
41
|
+
}, wrappedStrategy);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=maybe-consumable-ns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybe-consumable-ns.js","sourceRoot":"","sources":["../src/maybe-consumable-ns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,UAAU,QAAQ,CAAI,KAAyB;IACjD,OAAO,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,UAAU,CACtB,KAAQ,EACR,QAA6D;IAE7D,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACJ,OAAO,QAAQ,CAAC,KAAc,CAAC,CAAC;IACpC,CAAC;AACL,CAAC;AAcD,MAAM,OAAO,cAAqB,SAAQ,oBAEzC;IACG,YAAY,IAA2B,EAAE,QAA6B;QAClE,IAAI,eAAgE,CAAC;QACrE,IAAI,QAAQ,EAAE,CAAC;YACX,eAAe,GAAG,EAAE,CAAC;YACrB,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;gBAC9B,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC3D,CAAC;YACD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACrB,eAAe,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC7B,OAAO,QAAQ,CAAC,IAAK,CACjB,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACpD,CAAC;gBACN,CAAC,CAAC;YACN,CAAC;QACL,CAAC;QAED,KAAK,CACD;YACI,KAAK,CAAC,UAAU;gBACZ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU;gBACzB,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC9B,IAAI,CAAC,KAAK,EAAE,CAAC,KAAU,EAAE,UAAU,CAAC,CACvC,CAAC;YACN,CAAC;YACD,KAAK,CAAC,MAAM;gBACR,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,KAAK;gBACD,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1B,CAAC;SACJ,EACD,eAAe,CAClB,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1,21 +1,4 @@
|
|
|
1
|
-
import { Consumable } from "./consumable.js";
|
|
2
|
-
import type { QueuingStrategy, WritableStreamDefaultController } from "./stream.js";
|
|
3
|
-
import { WritableStream as NativeWritableStream, TransformStream } from "./stream.js";
|
|
1
|
+
import type { Consumable } from "./consumable.js";
|
|
4
2
|
export type MaybeConsumable<T> = T | Consumable<T>;
|
|
5
|
-
export
|
|
6
|
-
function getValue<T>(value: MaybeConsumable<T>): T;
|
|
7
|
-
function tryConsume<T, R>(value: T, callback: (value: T extends Consumable<infer U> ? U : T) => R): R;
|
|
8
|
-
class UnwrapStream<T> extends TransformStream<MaybeConsumable<T>, T> {
|
|
9
|
-
constructor();
|
|
10
|
-
}
|
|
11
|
-
interface WritableStreamSink<in T> {
|
|
12
|
-
start?(controller: WritableStreamDefaultController): void | PromiseLike<void>;
|
|
13
|
-
write?(chunk: T, controller: WritableStreamDefaultController): void | PromiseLike<void>;
|
|
14
|
-
abort?(reason: unknown): void | PromiseLike<void>;
|
|
15
|
-
close?(): void | PromiseLike<void>;
|
|
16
|
-
}
|
|
17
|
-
class WritableStream<in T> extends NativeWritableStream<MaybeConsumable<T>> {
|
|
18
|
-
constructor(sink: WritableStreamSink<T>, strategy?: QueuingStrategy<T>);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
3
|
+
export * as MaybeConsumable from "./maybe-consumable-ns.js";
|
|
21
4
|
//# sourceMappingURL=maybe-consumable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maybe-consumable.d.ts","sourceRoot":"","sources":["../src/maybe-consumable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"maybe-consumable.d.ts","sourceRoot":"","sources":["../src/maybe-consumable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAEnD,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC"}
|
package/esm/maybe-consumable.js
CHANGED
|
@@ -1,62 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { WritableStream as NativeWritableStream, TransformStream, } from "./stream.js";
|
|
3
|
-
export var MaybeConsumable;
|
|
4
|
-
(function (MaybeConsumable) {
|
|
5
|
-
function getValue(value) {
|
|
6
|
-
return value instanceof Consumable ? value.value : value;
|
|
7
|
-
}
|
|
8
|
-
MaybeConsumable.getValue = getValue;
|
|
9
|
-
function tryConsume(value, callback) {
|
|
10
|
-
if (value instanceof Consumable) {
|
|
11
|
-
return value.tryConsume(callback);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return callback(value);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
MaybeConsumable.tryConsume = tryConsume;
|
|
18
|
-
class UnwrapStream extends TransformStream {
|
|
19
|
-
constructor() {
|
|
20
|
-
super({
|
|
21
|
-
transform(chunk, controller) {
|
|
22
|
-
MaybeConsumable.tryConsume(chunk, (chunk) => {
|
|
23
|
-
controller.enqueue(chunk);
|
|
24
|
-
});
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
MaybeConsumable.UnwrapStream = UnwrapStream;
|
|
30
|
-
class WritableStream extends NativeWritableStream {
|
|
31
|
-
constructor(sink, strategy) {
|
|
32
|
-
let wrappedStrategy;
|
|
33
|
-
if (strategy) {
|
|
34
|
-
wrappedStrategy = {};
|
|
35
|
-
if ("highWaterMark" in strategy) {
|
|
36
|
-
wrappedStrategy.highWaterMark = strategy.highWaterMark;
|
|
37
|
-
}
|
|
38
|
-
if ("size" in strategy) {
|
|
39
|
-
wrappedStrategy.size = (chunk) => {
|
|
40
|
-
return strategy.size(chunk instanceof Consumable ? chunk.value : chunk);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
super({
|
|
45
|
-
start(controller) {
|
|
46
|
-
return sink.start?.(controller);
|
|
47
|
-
},
|
|
48
|
-
async write(chunk, controller) {
|
|
49
|
-
await MaybeConsumable.tryConsume(chunk, (chunk) => sink.write?.(chunk, controller));
|
|
50
|
-
},
|
|
51
|
-
abort(reason) {
|
|
52
|
-
return sink.abort?.(reason);
|
|
53
|
-
},
|
|
54
|
-
close() {
|
|
55
|
-
return sink.close?.();
|
|
56
|
-
},
|
|
57
|
-
}, wrappedStrategy);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
MaybeConsumable.WritableStream = WritableStream;
|
|
61
|
-
})(MaybeConsumable || (MaybeConsumable = {}));
|
|
1
|
+
export * as MaybeConsumable from "./maybe-consumable-ns.js";
|
|
62
2
|
//# sourceMappingURL=maybe-consumable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maybe-consumable.js","sourceRoot":"","sources":["../src/maybe-consumable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"maybe-consumable.js","sourceRoot":"","sources":["../src/maybe-consumable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC"}
|
package/esm/push-readable.d.ts
CHANGED
|
@@ -7,8 +7,22 @@ export interface PushReadableStreamController<T> {
|
|
|
7
7
|
error(e?: unknown): void;
|
|
8
8
|
}
|
|
9
9
|
export type PushReadableStreamSource<T> = (controller: PushReadableStreamController<T>) => void | Promise<void>;
|
|
10
|
+
export type PushReadableLogger<T> = (event: {
|
|
11
|
+
source: "producer";
|
|
12
|
+
operation: "enqueue";
|
|
13
|
+
value: T;
|
|
14
|
+
phase: "start" | "waiting" | "ignored" | "complete";
|
|
15
|
+
} | {
|
|
16
|
+
source: "producer";
|
|
17
|
+
operation: "close" | "error";
|
|
18
|
+
explicit: boolean;
|
|
19
|
+
phase: "start" | "ignored" | "complete";
|
|
20
|
+
} | {
|
|
21
|
+
source: "consumer";
|
|
22
|
+
operation: "pull" | "cancel";
|
|
23
|
+
phase: "start" | "complete";
|
|
24
|
+
}) => void;
|
|
10
25
|
export declare class PushReadableStream<T> extends ReadableStream<T> {
|
|
11
|
-
#private;
|
|
12
26
|
/**
|
|
13
27
|
* Create a new `PushReadableStream` from a source.
|
|
14
28
|
*
|
|
@@ -16,6 +30,6 @@ export declare class PushReadableStream<T> extends ReadableStream<T> {
|
|
|
16
30
|
* when the `Promise` is resolved, and be errored when the `Promise` is rejected.
|
|
17
31
|
* @param strategy
|
|
18
32
|
*/
|
|
19
|
-
constructor(source: PushReadableStreamSource<T>, strategy?: QueuingStrategy<T>);
|
|
33
|
+
constructor(source: PushReadableStreamSource<T>, strategy?: QueuingStrategy<T>, logger?: PushReadableLogger<T>);
|
|
20
34
|
}
|
|
21
35
|
//# sourceMappingURL=push-readable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-readable.d.ts","sourceRoot":"","sources":["../src/push-readable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAmB,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC3C,WAAW,EAAE,WAAW,CAAC;IAEzB,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,KAAK,IAAI,IAAI,CAAC;IAEd,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,CACtC,UAAU,EAAE,4BAA4B,CAAC,CAAC,CAAC,KAC1C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"push-readable.d.ts","sourceRoot":"","sources":["../src/push-readable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAmB,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC3C,WAAW,EAAE,WAAW,CAAC;IAEzB,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,KAAK,IAAI,IAAI,CAAC;IAEd,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,CACtC,UAAU,EAAE,4BAA4B,CAAC,CAAC,CAAC,KAC1C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAChC,KAAK,EACC;IACI,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CACvD,GACD;IACI,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;CAC3C,GACD;IACI,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,KACN,IAAI,CAAC;AAEV,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACxD;;;;;;OAMG;gBAEC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACnC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;CA+PrC"}
|