@yume-chan/stream-extra 0.0.19 → 0.0.20
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 +48 -33
- package/CHANGELOG.md +10 -1
- package/esm/buffered-transform.d.ts +1 -2
- package/esm/buffered-transform.d.ts.map +1 -1
- package/esm/buffered-transform.js +10 -9
- package/esm/buffered-transform.js.map +1 -1
- package/esm/buffered.d.ts +4 -9
- package/esm/buffered.d.ts.map +1 -1
- package/esm/buffered.js +34 -30
- package/esm/buffered.js.map +1 -1
- package/esm/consumable.d.ts +1 -2
- package/esm/consumable.d.ts.map +1 -1
- package/esm/consumable.js +9 -9
- package/esm/consumable.js.map +1 -1
- package/esm/distribution.d.ts +1 -4
- package/esm/distribution.d.ts.map +1 -1
- package/esm/distribution.js +29 -29
- package/esm/distribution.js.map +1 -1
- package/esm/duplex.d.ts +1 -5
- package/esm/duplex.d.ts.map +1 -1
- package/esm/duplex.js +21 -19
- package/esm/duplex.js.map +1 -1
- package/esm/gather-string.d.ts +1 -1
- package/esm/gather-string.d.ts.map +1 -1
- package/esm/gather-string.js +3 -3
- package/esm/gather-string.js.map +1 -1
- package/esm/push-readable.d.ts.map +1 -1
- package/esm/push-readable.js +11 -6
- package/esm/push-readable.js.map +1 -1
- package/esm/wrap-readable.d.ts +1 -1
- package/esm/wrap-readable.d.ts.map +1 -1
- package/esm/wrap-readable.js +4 -4
- package/esm/wrap-readable.js.map +1 -1
- package/esm/wrap-writable.d.ts +1 -1
- package/esm/wrap-writable.d.ts.map +1 -1
- package/esm/wrap-writable.js +5 -5
- package/esm/wrap-writable.js.map +1 -1
- package/package.json +6 -6
- package/src/buffered-transform.ts +10 -12
- package/src/buffered.ts +38 -32
- package/src/consumable.ts +11 -11
- package/src/distribution.ts +31 -31
- package/src/duplex.ts +21 -19
- package/src/gather-string.ts +3 -3
- package/src/push-readable.ts +10 -6
- package/src/wrap-readable.ts +4 -4
- package/src/wrap-writable.ts +5 -5
- package/tsconfig.build.json +6 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/chunk.d.ts +0 -8
- package/esm/chunk.d.ts.map +0 -1
- package/esm/chunk.js +0 -56
- package/esm/chunk.js.map +0 -1
- package/esm/trace.d.ts +0 -16
- package/esm/trace.d.ts.map +0 -1
- package/esm/trace.js +0 -131
- package/esm/trace.js.map +0 -1
package/esm/trace.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { PromiseResolver } from "@yume-chan/async";
|
|
2
|
-
import { ReadableStream, WritableStream, } from "./stream.js";
|
|
3
|
-
class RingBuffer {
|
|
4
|
-
_capacity;
|
|
5
|
-
get capacity() {
|
|
6
|
-
return this._capacity;
|
|
7
|
-
}
|
|
8
|
-
_size;
|
|
9
|
-
get size() {
|
|
10
|
-
return this._size;
|
|
11
|
-
}
|
|
12
|
-
_buffer;
|
|
13
|
-
_head;
|
|
14
|
-
_tail;
|
|
15
|
-
constructor(capacity) {
|
|
16
|
-
this._capacity = capacity;
|
|
17
|
-
this._size = 0;
|
|
18
|
-
this._head = 0;
|
|
19
|
-
this._tail = 0;
|
|
20
|
-
this._buffer = new Array(capacity);
|
|
21
|
-
}
|
|
22
|
-
push(value) {
|
|
23
|
-
this._buffer[this._head] = value;
|
|
24
|
-
this._size += 1;
|
|
25
|
-
this._head = (this._head + 1) % this._capacity;
|
|
26
|
-
if (this._head === this._tail) {
|
|
27
|
-
this._tail = (this._tail + 1) % this._capacity;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
shift() {
|
|
31
|
-
if (this._head === this._tail) {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
this._size -= 1;
|
|
35
|
-
const value = this._buffer[this._tail];
|
|
36
|
-
this._tail = (this._tail + 1) % this._capacity;
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
peekFirst() {
|
|
40
|
-
return this._buffer[this._tail];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export const PRESSURE_WARNINGS = new Map();
|
|
44
|
-
export class PressureSensor {
|
|
45
|
-
_readable;
|
|
46
|
-
get readable() {
|
|
47
|
-
return this._readable;
|
|
48
|
-
}
|
|
49
|
-
_writable;
|
|
50
|
-
get writable() {
|
|
51
|
-
return this._writable;
|
|
52
|
-
}
|
|
53
|
-
_name;
|
|
54
|
-
_ended = false;
|
|
55
|
-
_cancelReason = undefined;
|
|
56
|
-
_readAhead;
|
|
57
|
-
_writeAhead;
|
|
58
|
-
_writeLock;
|
|
59
|
-
constructor(name, size) {
|
|
60
|
-
this._name = name;
|
|
61
|
-
this._readAhead = new RingBuffer(size);
|
|
62
|
-
this._writeAhead = new RingBuffer(size);
|
|
63
|
-
this._readable = new ReadableStream({
|
|
64
|
-
pull: async (controller) => {
|
|
65
|
-
if (this._writeAhead.size !== 0) {
|
|
66
|
-
controller.enqueue(this._writeAhead.shift());
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (this._ended) {
|
|
70
|
-
controller.close();
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const resolver = new PromiseResolver();
|
|
74
|
-
this._readAhead.push(resolver);
|
|
75
|
-
const chunk = await resolver.promise;
|
|
76
|
-
if (chunk === undefined) {
|
|
77
|
-
controller.close();
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
controller.enqueue(chunk);
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
cancel: (reason) => {
|
|
84
|
-
this._cancelReason = reason;
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
this._writable = new WritableStream({
|
|
88
|
-
write: (chunk) => {
|
|
89
|
-
if (this._cancelReason !== undefined) {
|
|
90
|
-
throw this._cancelReason;
|
|
91
|
-
}
|
|
92
|
-
if (this._readAhead.size !== 0) {
|
|
93
|
-
this._readAhead.shift().resolve(chunk);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
if (this._writeAhead.size === this._writeAhead.capacity) {
|
|
97
|
-
if (this._writeLock) {
|
|
98
|
-
throw new Error(`PressureSensor ${this._name}: the producer keeps writing without monitoring the pressure.`);
|
|
99
|
-
}
|
|
100
|
-
const warnings = PRESSURE_WARNINGS.get(this._name);
|
|
101
|
-
if (warnings) {
|
|
102
|
-
warnings.push(Date.now());
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
PRESSURE_WARNINGS.set(this._name, [Date.now()]);
|
|
106
|
-
}
|
|
107
|
-
this._writeLock = new PromiseResolver();
|
|
108
|
-
return this._writeLock.promise.then(() => {
|
|
109
|
-
this._writeLock = undefined;
|
|
110
|
-
this._writeAhead.push(chunk);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
this._writeAhead.push(chunk);
|
|
114
|
-
return undefined;
|
|
115
|
-
},
|
|
116
|
-
close: () => {
|
|
117
|
-
this._ended = true;
|
|
118
|
-
while (this._readAhead.size !== 0) {
|
|
119
|
-
this._readAhead.shift().resolve(undefined);
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
abort: (reason) => {
|
|
123
|
-
this._ended = true;
|
|
124
|
-
while (this._readAhead.size !== 0) {
|
|
125
|
-
this._readAhead.shift().reject(reason);
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=trace.js.map
|
package/esm/trace.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}
|