| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 |
|
| 11 |
|
| 12 | var Deferred = class {
|
| 13 | promise;
|
| 14 | resolve;
|
| 15 | reject;
|
| 16 | constructor() {
|
| 17 | this.promise = new Promise((resolve, reject) => {
|
| 18 | this.resolve = resolve;
|
| 19 | this.reject = reject;
|
| 20 | });
|
| 21 | }
|
| 22 | };
|
| 23 | function createLineSplittingTransform() {
|
| 24 | const decoder = new TextDecoder();
|
| 25 | let leftover = "";
|
| 26 | return new TransformStream({
|
| 27 | transform(chunk, controller) {
|
| 28 | const str = decoder.decode(chunk, { stream: true });
|
| 29 | const parts = (leftover + str).split("\n");
|
| 30 | leftover = parts.pop() || "";
|
| 31 | for (const part of parts) controller.enqueue(part);
|
| 32 | },
|
| 33 | flush(controller) {
|
| 34 | if (leftover) controller.enqueue(leftover);
|
| 35 | }
|
| 36 | });
|
| 37 | }
|
| 38 |
|
| 39 | export { Deferred, createLineSplittingTransform };
|