@adviser/cement 0.4.39 → 0.4.41

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.
Files changed (56) hide show
  1. package/cjs/utils/consume.cjs +75 -0
  2. package/cjs/utils/consume.cjs.map +1 -0
  3. package/cjs/utils/consume.d.ts +10 -0
  4. package/cjs/utils/consume.d.ts.map +1 -0
  5. package/cjs/utils/consume.test.cjs +212 -0
  6. package/cjs/utils/consume.test.cjs.map +1 -0
  7. package/cjs/utils/consume.test.d.ts +2 -0
  8. package/cjs/utils/consume.test.d.ts.map +1 -0
  9. package/cjs/utils/index.cjs +1 -0
  10. package/cjs/utils/index.cjs.map +1 -1
  11. package/cjs/utils/index.d.ts +1 -0
  12. package/cjs/utils/index.d.ts.map +1 -1
  13. package/cjs/version.cjs +1 -1
  14. package/deno.json +1 -1
  15. package/esm/utils/consume.d.ts +10 -0
  16. package/esm/utils/consume.d.ts.map +1 -0
  17. package/esm/utils/consume.js +69 -0
  18. package/esm/utils/consume.js.map +1 -0
  19. package/esm/utils/consume.test.d.ts +2 -0
  20. package/esm/utils/consume.test.d.ts.map +1 -0
  21. package/esm/utils/consume.test.js +210 -0
  22. package/esm/utils/consume.test.js.map +1 -0
  23. package/esm/utils/index.d.ts +1 -0
  24. package/esm/utils/index.d.ts.map +1 -1
  25. package/esm/utils/index.js +1 -0
  26. package/esm/utils/index.js.map +1 -1
  27. package/esm/version.js +1 -1
  28. package/package.json +1 -1
  29. package/src/utils/consume.ts +104 -0
  30. package/src/utils/index.ts +1 -0
  31. package/ts/cjs/utils/consume.d.ts +10 -0
  32. package/ts/cjs/utils/consume.d.ts.map +1 -0
  33. package/ts/cjs/utils/consume.js +75 -0
  34. package/ts/cjs/utils/consume.js.map +1 -0
  35. package/ts/cjs/utils/consume.test.d.ts +2 -0
  36. package/ts/cjs/utils/consume.test.d.ts.map +1 -0
  37. package/ts/cjs/utils/consume.test.js +212 -0
  38. package/ts/cjs/utils/consume.test.js.map +1 -0
  39. package/ts/cjs/utils/index.d.ts +1 -0
  40. package/ts/cjs/utils/index.d.ts.map +1 -1
  41. package/ts/cjs/utils/index.js +1 -0
  42. package/ts/cjs/utils/index.js.map +1 -1
  43. package/ts/cjs/version.js +1 -1
  44. package/ts/esm/utils/consume.d.ts +10 -0
  45. package/ts/esm/utils/consume.d.ts.map +1 -0
  46. package/ts/esm/utils/consume.js +69 -0
  47. package/ts/esm/utils/consume.js.map +1 -0
  48. package/ts/esm/utils/consume.test.d.ts +2 -0
  49. package/ts/esm/utils/consume.test.d.ts.map +1 -0
  50. package/ts/esm/utils/consume.test.js +210 -0
  51. package/ts/esm/utils/consume.test.js.map +1 -0
  52. package/ts/esm/utils/index.d.ts +1 -0
  53. package/ts/esm/utils/index.d.ts.map +1 -1
  54. package/ts/esm/utils/index.js +1 -0
  55. package/ts/esm/utils/index.js.map +1 -1
  56. package/ts/esm/version.js +1 -1
@@ -0,0 +1,210 @@
1
+ import { describe, it, expect, vi } from "vitest";
2
+ import { consumeStream, consumeIterator } from "./consume.js";
3
+ describe("consumeStream", () => {
4
+ it("should consume an empty stream", async () => {
5
+ const stream = new ReadableStream({
6
+ start(controller) {
7
+ controller.close();
8
+ },
9
+ });
10
+ const result = await consumeStream(stream, (x) => x * 2);
11
+ expect(result).toEqual([]);
12
+ });
13
+ it("should consume a stream with single element", async () => {
14
+ const stream = new ReadableStream({
15
+ start(controller) {
16
+ controller.enqueue(5);
17
+ controller.close();
18
+ },
19
+ });
20
+ const result = await consumeStream(stream, (x) => x * 2);
21
+ expect(result).toEqual([10]);
22
+ });
23
+ it("should consume a stream with multiple elements", async () => {
24
+ const stream = new ReadableStream({
25
+ start(controller) {
26
+ controller.enqueue(1);
27
+ controller.enqueue(2);
28
+ controller.enqueue(3);
29
+ controller.close();
30
+ },
31
+ });
32
+ const result = await consumeStream(stream, (x) => x * 2);
33
+ expect(result).toEqual([2, 4, 6]);
34
+ });
35
+ it("should handle callback that returns promises", async () => {
36
+ const stream = new ReadableStream({
37
+ start(controller) {
38
+ controller.enqueue(1);
39
+ controller.enqueue(2);
40
+ controller.close();
41
+ },
42
+ });
43
+ const result = await consumeStream(stream, async (x) => {
44
+ await new Promise((resolve) => setTimeout(resolve, 10));
45
+ return x * 3;
46
+ });
47
+ expect(result).toEqual([3, 6]);
48
+ });
49
+ it("should handle callback that transforms types", async () => {
50
+ const stream = new ReadableStream({
51
+ start(controller) {
52
+ controller.enqueue(1);
53
+ controller.enqueue(2);
54
+ controller.enqueue(3);
55
+ controller.close();
56
+ },
57
+ });
58
+ const result = await consumeStream(stream, (x) => `value-${x}`);
59
+ expect(result).toEqual(["value-1", "value-2", "value-3"]);
60
+ });
61
+ it("should handle string stream", async () => {
62
+ const stream = new ReadableStream({
63
+ start(controller) {
64
+ controller.enqueue("hello");
65
+ controller.enqueue("world");
66
+ controller.close();
67
+ },
68
+ });
69
+ const result = await consumeStream(stream, (x) => x.toUpperCase());
70
+ expect(result).toEqual(["HELLO", "WORLD"]);
71
+ });
72
+ it("should handle callback errors gracefully", async () => {
73
+ const stream = new ReadableStream({
74
+ start(controller) {
75
+ controller.enqueue(1);
76
+ controller.enqueue(2);
77
+ controller.close();
78
+ },
79
+ });
80
+ await expect(consumeStream(stream, (x) => {
81
+ if (x === 2)
82
+ throw new Error("Test error");
83
+ return x * 2;
84
+ })).rejects.toThrow("Test error");
85
+ });
86
+ });
87
+ describe("consumeIterator", () => {
88
+ it("handles objectentries type safe", async () => {
89
+ const obj = { a: 1, b: 2, c: 3 };
90
+ const result = await consumeIterator(Object.entries(obj).values(), (x) => {
91
+ assertType(x);
92
+ return x[1] * 2;
93
+ });
94
+ expect(result).toEqual([2, 4, 6]);
95
+ });
96
+ it("should consume an empty sync iterator", async () => {
97
+ function* emptyGen() {
98
+ }
99
+ const result = await consumeIterator(emptyGen(), (x) => x * 2);
100
+ expect(result).toEqual([]);
101
+ });
102
+ it("should consume a sync iterator with single element", async () => {
103
+ function* singleGen() {
104
+ yield 5;
105
+ }
106
+ const result = await consumeIterator(singleGen(), (x) => x * 2);
107
+ expect(result).toEqual([10]);
108
+ });
109
+ it("should consume a sync iterator with multiple elements", async () => {
110
+ function* multiGen() {
111
+ yield 1;
112
+ yield 2;
113
+ yield 3;
114
+ }
115
+ const result = await consumeIterator(multiGen(), (x) => x * 2);
116
+ expect(result).toEqual([2, 4, 6]);
117
+ });
118
+ it("should consume an async iterator", async () => {
119
+ async function* asyncGen() {
120
+ yield 1;
121
+ await new Promise((resolve) => setTimeout(resolve, 10));
122
+ yield 2;
123
+ yield 3;
124
+ }
125
+ const result = await consumeIterator(asyncGen(), (x) => x * 2);
126
+ expect(result).toEqual([2, 4, 6]);
127
+ });
128
+ it("should handle callback that returns promises with sync iterator", async () => {
129
+ function* gen() {
130
+ yield 1;
131
+ yield 2;
132
+ }
133
+ const result = await consumeIterator(gen(), async (x) => {
134
+ await new Promise((resolve) => setTimeout(resolve, 10));
135
+ return x * 3;
136
+ });
137
+ expect(result).toEqual([3, 6]);
138
+ });
139
+ it("should handle callback that returns promises with async iterator", async () => {
140
+ async function* asyncGen() {
141
+ await new Promise((resolve) => setTimeout(resolve, 10));
142
+ yield 1;
143
+ await new Promise((resolve) => setTimeout(resolve, 10));
144
+ yield 2;
145
+ }
146
+ const result = await consumeIterator(asyncGen(), async (x) => {
147
+ await new Promise((resolve) => setTimeout(resolve, 10));
148
+ return x * 3;
149
+ });
150
+ expect(result).toEqual([3, 6]);
151
+ });
152
+ it("should handle type transformation", async () => {
153
+ function* gen() {
154
+ yield 1;
155
+ yield 2;
156
+ yield 3;
157
+ }
158
+ const result = await consumeIterator(gen(), (x) => `item-${x}`);
159
+ expect(result).toEqual(["item-1", "item-2", "item-3"]);
160
+ });
161
+ it("should handle large iterators with chunking", async () => {
162
+ function* largeGen() {
163
+ for (let i = 0; i < 100; i++) {
164
+ yield i;
165
+ }
166
+ }
167
+ const result = await consumeIterator(largeGen(), (x) => x * 2);
168
+ expect(result).toHaveLength(100);
169
+ expect(result[0]).toBe(0);
170
+ expect(result[99]).toBe(198);
171
+ });
172
+ it("should handle callback errors gracefully", async () => {
173
+ function* gen() {
174
+ yield 1;
175
+ yield 2;
176
+ }
177
+ await expect(consumeIterator(gen(), (x) => {
178
+ if (x === 2)
179
+ throw new Error("Test error");
180
+ return x * 2;
181
+ })).rejects.toThrow("Test error");
182
+ });
183
+ it("should handle array iterator", async () => {
184
+ const arr = [1, 2, 3, 4, 5];
185
+ const result = await consumeIterator(arr[Symbol.iterator](), (x) => x * 2);
186
+ expect(result).toEqual([2, 4, 6, 8, 10]);
187
+ });
188
+ it("should handle string iterator", async () => {
189
+ const str = "hello";
190
+ const result = await consumeIterator(str[Symbol.iterator](), (char) => char.toUpperCase());
191
+ expect(result).toEqual(["H", "E", "L", "L", "O"]);
192
+ });
193
+ });
194
+ describe("consumeIterator chunking behavior", () => {
195
+ it("should handle chunking with async iterator", async () => {
196
+ async function* largeAsyncGen() {
197
+ for (let i = 0; i < 53; i++) {
198
+ yield i;
199
+ if (i % 10 === 0) {
200
+ await new Promise((resolve) => setTimeout(resolve, 10));
201
+ }
202
+ }
203
+ }
204
+ const setTimeoutFn = vi.fn().mockImplementation((fn) => fn());
205
+ const result = await consumeIterator(largeAsyncGen(), (x) => x, { setTimeoutFn, chunkSize: 10 });
206
+ expect(result).toHaveLength(53);
207
+ expect(setTimeoutFn).toBeCalledTimes(4);
208
+ });
209
+ });
210
+ //# sourceMappingURL=consume.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consume.test.js","sourceRoot":"","sources":["../../../../src/utils/consume.test.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,5 @@ export * from "./stripper.js";
9
9
  export * from "./sorted-object.js";
10
10
  export * from "./uint8array-equal.js";
11
11
  export * from "./coerce-uint8.js";
12
+ export * from "./consume.js";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
@@ -9,4 +9,5 @@ export * from "./stripper.js";
9
9
  export * from "./sorted-object.js";
10
10
  export * from "./uint8array-equal.js";
11
11
  export * from "./coerce-uint8.js";
12
+ export * from "./consume.js";
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
package/esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.4.39";
1
+ export const VERSION = "0.4.41";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adviser/cement",
3
- "version": "0.4.39",
3
+ "version": "0.4.41",
4
4
  "description": "better try/catch/finally handling",
5
5
  "main": "./cjs/index.js",
6
6
  "type": "module",
@@ -0,0 +1,104 @@
1
+ import { isPromise } from "../is-promise.js";
2
+
3
+ export function consumeStream<E, R>(stream: ReadableStream<E>, cb: (msg: E) => R): Promise<R[]> {
4
+ const ret: R[] = [];
5
+ return processStream(stream, (msg) =>
6
+ Promise.resolve(cb(msg)).then((r) => {
7
+ ret.push(r);
8
+ }),
9
+ ).then(() => ret);
10
+ }
11
+
12
+ export function processStream<E, CTX = object>(
13
+ stream: ReadableStream<E>,
14
+ cb: (msg: E, ctx: CTX) => Promise<void> | void,
15
+ ctx: CTX = {} as CTX,
16
+ ): Promise<void> {
17
+ const reader = stream.getReader();
18
+ function readNext(ctx: CTX): Promise<void> {
19
+ return reader.read().then(({ done, value }) => {
20
+ if (done) {
21
+ return;
22
+ }
23
+ return Promise.resolve(cb(value, ctx)).then(() => readNext(ctx));
24
+ });
25
+ }
26
+ return readNext(ctx);
27
+ }
28
+
29
+ export interface StepCfg<CTX = object> {
30
+ readonly chunkSize: number;
31
+ readonly setTimeoutFn: (fn: () => void, delay: number) => void;
32
+ readonly ctx: CTX;
33
+ }
34
+
35
+ interface StepArgs<I extends IterableIterator<E> | AsyncIterableIterator<E>, E, CTX> extends StepCfg<CTX> {
36
+ readonly iter: I;
37
+ readonly cb: (msg: E, ctx: CTX) => Promise<void> | void;
38
+ readonly resolve: () => void;
39
+ readonly reject: (reason: Error) => void;
40
+ chunk: number;
41
+ }
42
+
43
+ function step<I extends IterableIterator<E> | AsyncIterableIterator<E>, R, E>(args: StepArgs<I, E, R>): Promise<void> {
44
+ const item = args.iter.next();
45
+ return Promise.resolve(item).then(({ done, value }: { done?: boolean; value: E }) => {
46
+ if (done) {
47
+ args.resolve();
48
+ return Promise.resolve();
49
+ }
50
+ try {
51
+ return Promise.resolve(args.cb(value, args.ctx)).then(() => {
52
+ if (isPromise(item) && args.chunk >= args.chunkSize) {
53
+ args.setTimeoutFn(() => {
54
+ args.chunk = 0;
55
+ void step(args);
56
+ }, 0);
57
+ return Promise.resolve();
58
+ } else {
59
+ args.chunk++;
60
+ return step(args);
61
+ }
62
+ });
63
+ } catch (e) {
64
+ args.reject(e as Error);
65
+ return Promise.resolve();
66
+ }
67
+ });
68
+ }
69
+
70
+ export function consumeIterator<T, R>(
71
+ iter: IterableIterator<T> | AsyncIterableIterator<T>,
72
+ cb: (msg: T) => R,
73
+ params: Partial<StepCfg<R[]>> = {},
74
+ ): Promise<R[]> {
75
+ const ret: R[] = [];
76
+ return processIterator<T, R[]>(
77
+ iter,
78
+ (value) =>
79
+ Promise.resolve(cb(value)).then((r) => {
80
+ ret.push(r);
81
+ }),
82
+ { ...params, ctx: params.ctx ?? ret },
83
+ ).then(() => ret);
84
+ }
85
+
86
+ export function processIterator<T, CTX = object>(
87
+ iter: IterableIterator<T> | AsyncIterableIterator<T>,
88
+ cb: (msg: T) => Promise<void> | void,
89
+ params: Partial<StepCfg<CTX>> = {},
90
+ ): Promise<void> {
91
+ return new Promise<void>((resolve, reject) => {
92
+ void step({
93
+ setTimeoutFn: setTimeout,
94
+ chunkSize: 16,
95
+ ctx: {} as CTX,
96
+ ...params,
97
+ iter,
98
+ cb,
99
+ reject,
100
+ resolve,
101
+ chunk: 0,
102
+ });
103
+ });
104
+ }
@@ -9,3 +9,4 @@ export * from "./stripper.js";
9
9
  export * from "./sorted-object.js";
10
10
  export * from "./uint8array-equal.js";
11
11
  export * from "./coerce-uint8.js";
12
+ export * from "./consume.js";
@@ -0,0 +1,10 @@
1
+ export declare function consumeStream<E, R>(stream: ReadableStream<E>, cb: (msg: E) => R): Promise<R[]>;
2
+ export declare function processStream<E, CTX = object>(stream: ReadableStream<E>, cb: (msg: E, ctx: CTX) => Promise<void> | void, ctx?: CTX): Promise<void>;
3
+ export interface StepCfg<CTX = object> {
4
+ readonly chunkSize: number;
5
+ readonly setTimeoutFn: (fn: () => void, delay: number) => void;
6
+ readonly ctx: CTX;
7
+ }
8
+ export declare function consumeIterator<T, R>(iter: IterableIterator<T> | AsyncIterableIterator<T>, cb: (msg: T) => R, params?: Partial<StepCfg<R[]>>): Promise<R[]>;
9
+ export declare function processIterator<T, CTX = object>(iter: IterableIterator<T> | AsyncIterableIterator<T>, cb: (msg: T) => Promise<void> | void, params?: Partial<StepCfg<CTX>>): Promise<void>;
10
+ //# sourceMappingURL=consume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consume.d.ts","sourceRoot":"","sources":["../../../../src/utils/consume.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAO9F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,EAC3C,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAC9C,GAAG,GAAE,GAAe,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,MAAM,WAAW,OAAO,CAAC,GAAG,GAAG,MAAM;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB;AAqCD,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAClC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EACpD,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EACjB,MAAM,GAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAM,GACjC,OAAO,CAAC,CAAC,EAAE,CAAC,CAUd;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,EAC7C,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EACpD,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACpC,MAAM,GAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAM,GACjC,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.consumeStream = consumeStream;
4
+ exports.processStream = processStream;
5
+ exports.consumeIterator = consumeIterator;
6
+ exports.processIterator = processIterator;
7
+ const is_promise_js_1 = require("../is-promise.js");
8
+ function consumeStream(stream, cb) {
9
+ const ret = [];
10
+ return processStream(stream, (msg) => Promise.resolve(cb(msg)).then((r) => {
11
+ ret.push(r);
12
+ })).then(() => ret);
13
+ }
14
+ function processStream(stream, cb, ctx = {}) {
15
+ const reader = stream.getReader();
16
+ function readNext(ctx) {
17
+ return reader.read().then(({ done, value }) => {
18
+ if (done) {
19
+ return;
20
+ }
21
+ return Promise.resolve(cb(value, ctx)).then(() => readNext(ctx));
22
+ });
23
+ }
24
+ return readNext(ctx);
25
+ }
26
+ function step(args) {
27
+ const item = args.iter.next();
28
+ return Promise.resolve(item).then(({ done, value }) => {
29
+ if (done) {
30
+ args.resolve();
31
+ return Promise.resolve();
32
+ }
33
+ try {
34
+ return Promise.resolve(args.cb(value, args.ctx)).then(() => {
35
+ if ((0, is_promise_js_1.isPromise)(item) && args.chunk >= args.chunkSize) {
36
+ args.setTimeoutFn(() => {
37
+ args.chunk = 0;
38
+ void step(args);
39
+ }, 0);
40
+ return Promise.resolve();
41
+ }
42
+ else {
43
+ args.chunk++;
44
+ return step(args);
45
+ }
46
+ });
47
+ }
48
+ catch (e) {
49
+ args.reject(e);
50
+ return Promise.resolve();
51
+ }
52
+ });
53
+ }
54
+ function consumeIterator(iter, cb, params = {}) {
55
+ const ret = [];
56
+ return processIterator(iter, (value) => Promise.resolve(cb(value)).then((r) => {
57
+ ret.push(r);
58
+ }), { ...params, ctx: params.ctx ?? ret }).then(() => ret);
59
+ }
60
+ function processIterator(iter, cb, params = {}) {
61
+ return new Promise((resolve, reject) => {
62
+ void step({
63
+ setTimeoutFn: setTimeout,
64
+ chunkSize: 16,
65
+ ctx: {},
66
+ ...params,
67
+ iter,
68
+ cb,
69
+ reject,
70
+ resolve,
71
+ chunk: 0,
72
+ });
73
+ });
74
+ }
75
+ //# sourceMappingURL=consume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consume.js","sourceRoot":"","sources":["../../../../src/utils/consume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=consume.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consume.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/consume.test.ts"],"names":[],"mappings":""}