@johnhenry/iteration 0.0.0 → 0.1.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.
Files changed (50) hide show
  1. package/dist/async-channel.d.ts +24 -4
  2. package/dist/async-channel.d.ts.map +1 -1
  3. package/dist/async-channel.js +41 -38
  4. package/dist/async-channel.js.map +1 -1
  5. package/dist/combine.d.ts +146 -0
  6. package/dist/combine.d.ts.map +1 -0
  7. package/dist/combine.js +353 -0
  8. package/dist/combine.js.map +1 -0
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/internal.d.ts +66 -0
  14. package/dist/internal.d.ts.map +1 -0
  15. package/dist/internal.js +134 -0
  16. package/dist/internal.js.map +1 -0
  17. package/dist/iterator-tools.d.ts +13 -0
  18. package/dist/iterator-tools.d.ts.map +1 -1
  19. package/dist/iterator-tools.js +38 -18
  20. package/dist/iterator-tools.js.map +1 -1
  21. package/dist/itertools.d.ts.map +1 -1
  22. package/dist/itertools.js +42 -24
  23. package/dist/itertools.js.map +1 -1
  24. package/dist/tee.d.ts +24 -2
  25. package/dist/tee.d.ts.map +1 -1
  26. package/dist/tee.js +175 -2
  27. package/dist/tee.js.map +1 -1
  28. package/dist/time.d.ts +69 -0
  29. package/dist/time.d.ts.map +1 -0
  30. package/dist/time.js +234 -0
  31. package/dist/time.js.map +1 -0
  32. package/dist/transduce.d.ts +65 -0
  33. package/dist/transduce.d.ts.map +1 -1
  34. package/dist/transduce.js +33 -1
  35. package/dist/transduce.js.map +1 -1
  36. package/dist/transducers.d.ts.map +1 -1
  37. package/dist/transducers.js +86 -16
  38. package/dist/transducers.js.map +1 -1
  39. package/package.json +10 -2
  40. package/readme.md +338 -14
  41. package/src/async-channel.ts +63 -47
  42. package/src/combine.ts +441 -0
  43. package/src/index.ts +2 -0
  44. package/src/internal.ts +164 -0
  45. package/src/iterator-tools.ts +48 -20
  46. package/src/itertools.ts +36 -23
  47. package/src/tee.ts +202 -2
  48. package/src/time.ts +262 -0
  49. package/src/transduce.ts +113 -1
  50. package/src/transducers.ts +121 -30
@@ -1,4 +1,4 @@
1
- import { isAsyncIterator } from "./is-iterator.js";
1
+ import { closeAll, closeAllSync, entryOf, pull } from "./internal.js";
2
2
  /**
3
3
  * Sentinel returned by a reducer step to stop consumption of the source
4
4
  * iterator (early termination -- see the `take` transducer).
@@ -171,17 +171,32 @@ export const conjoinAsync = async function* (iterator, ...itemList) {
171
171
  * @returns an iterator who's members are the members of the given iterators zipped sequencially
172
172
  */
173
173
  export const zipSync = function* (...iteratorList) {
174
- const generators = iteratorList.map((iterator) => iterator[Symbol.iterator]());
175
- outer: while (true) {
176
- const result = [];
177
- for (const generator of generators) {
178
- const { value, done } = generator.next();
179
- if (done) {
180
- break outer;
174
+ const entries = iteratorList.map((iterator) => ({ it: iterator[Symbol.iterator](), done: false }));
175
+ try {
176
+ outer: while (true) {
177
+ const result = [];
178
+ for (const entry of entries) {
179
+ let step;
180
+ try {
181
+ step = entry.it.next();
182
+ }
183
+ catch (error) {
184
+ entry.done = true; // an iterator that threw is not closed again
185
+ throw error;
186
+ }
187
+ if (step.done) {
188
+ entry.done = true;
189
+ break outer;
190
+ }
191
+ result.push(step.value);
181
192
  }
182
- result.push(value);
193
+ yield result;
183
194
  }
184
- yield result;
195
+ }
196
+ finally {
197
+ // Close every input that has not ended -- when the shortest input ends,
198
+ // when an input throws, and when the consumer exits early.
199
+ closeAllSync(entries);
185
200
  }
186
201
  };
187
202
  /**
@@ -195,15 +210,20 @@ export const zipSync = function* (...iteratorList) {
195
210
  * @returns an async iterator who's members are the members of the given iterators zipped sequencially
196
211
  */
197
212
  export const zipAsync = async function* (...iteratorList) {
198
- const generators = iteratorList.map((iterator) => isAsyncIterator(iterator)
199
- ? iterator[Symbol.asyncIterator]()
200
- : iterator[Symbol.iterator]());
201
- while (true) {
202
- const results = await Promise.all(generators.map((g) => g.next()));
203
- if (results.some(({ done }) => done)) {
204
- break;
213
+ const entries = iteratorList.map((iterator) => entryOf(iterator));
214
+ try {
215
+ while (true) {
216
+ const results = await Promise.all(entries.map((entry) => pull(entry)));
217
+ if (results.some(({ done }) => done)) {
218
+ break;
219
+ }
220
+ yield results.map(({ value }) => value);
205
221
  }
206
- yield results.map(({ value }) => value);
222
+ }
223
+ finally {
224
+ // Close every input that has not ended -- when the shortest input ends,
225
+ // when an input rejects, and when the consumer exits early.
226
+ await closeAll(entries);
207
227
  }
208
228
  };
209
229
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"iterator-tools.js","sourceRoot":"","sources":["../src/iterator-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iterator-tools.js","sourceRoot":"","sources":["../src/iterator-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"itertools.d.ts","sourceRoot":"","sources":["../src/itertools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH;;;;;;GAMG;AACH,wBAAiB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAKtG;AAED;;;;GAIG;AACH,wBAAuB,cAAc,CAAC,CAAC,EACrC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC/B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GACvC,cAAc,CAAC,CAAC,CAAC,CAKnB;AAED;;;;;GAKG;AACH,wBAAiB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAUtG;AAED;;;;GAIG;AACH,wBAAuB,cAAc,CAAC,CAAC,EACrC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC/B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACzB,cAAc,CAAC,CAAC,CAAC,CAUnB;AAED;;;;;GAKG;AACH,wBAAiB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAIlG;AAED;;;;GAIG;AACH,wBAAuB,aAAa,CAAC,CAAC,EACpC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EACxC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GACpD,cAAc,CAAC,CAAC,CAAC,CAInB;AAED;;;;GAIG;AACH,wBAAiB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAOjF;AAED;;;;GAIG;AACH,wBAAuB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAOhH;AAED;;;;;;GAMG;AACH,wBAAiB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEzE;AAED;;;;GAIG;AACH,wBAAuB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAExG;AAED;;;;;;;;;;GAUG;AACH,wBAAiB,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EACnC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,KAAK,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAA4B,GAC/C,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAiBrB;AAED;;;;GAIG;AACH,wBAAuB,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAC1C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAA4B,GAC/C,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAiB1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,uDAAa,CAAC;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,UAAU,+EAAc,CAAC;AAEtC;;;;;;;GAOG;AACH,wBAAiB,WAAW,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAIxF;AAED;;;;;GAKG;AACH,wBAAuB,YAAY,CAAC,CAAC,EACnC,mBAAmB,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC5G,cAAc,CAAC,CAAC,CAAC,CAInB;AAED;;;;;;GAMG;AACH,wBAAiB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CASjE;AAED;;;;GAIG;AACH,wBAAuB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAShG;AAED;;;;GAIG;AACH,wBAAiB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAIvE;AAED;;;;GAIG;AACH,wBAAuB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAInF;AAED;;;;;GAKG;AACH,wBAAiB,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAClC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,KAAK,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAA4B,GAC/C,SAAS,CAAC,CAAC,CAAC,CASd;AAED;;;;GAIG;AACH,wBAAuB,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EACzC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EACxC,KAAK,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAA4B,GAC/C,cAAc,CAAC,CAAC,CAAC,CASnB;AAED;;;;;;;GAOG;AACH,wBAAiB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,SAAI,GAAG,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAE1F;AAED;;;;;GAKG;AACH,wBAAuB,cAAc,CAAC,CAAC,EACrC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EACxC,KAAK,SAAI,GACR,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAK7B;AAED;;;;;GAKG;AACH,wBAAiB,WAAW,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EACpD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClC,SAAS,CAAC,CAAC,CAAC,CAEd;AAED;;;;GAIG;AACH,wBAAuB,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAC3D,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,mBAAmB,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GACxD,cAAc,CAAC,CAAC,CAAC,CAInB;AAED;;;;;;;;GAQG;AACH,wBAAiB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAiBhH;AAED;;;;;GAKG;AACH,wBAAuB,eAAe,CAAC,CAAC,EAAE,CAAC,EACzC,SAAS,EAAE,CAAC,EACZ,GAAG,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GACrD,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAW9B;AAED;;;;;;;;GAQG;AACH,wBAAiB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAc7G;AAED;;;;GAIG;AACH,wBAAuB,WAAW,CAAC,CAAC,EAClC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GACxC,cAAc,CAAC,CAAC,CAAC,CAcnB"}
1
+ {"version":3,"file":"itertools.d.ts","sourceRoot":"","sources":["../src/itertools.ts"],"names":[],"mappings":"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"}
package/dist/itertools.js CHANGED
@@ -18,7 +18,7 @@
18
18
  * See docs/discussion/python-itertools.md for the full comparison to
19
19
  * Python's itertools module and the documented design divergences.
20
20
  */
21
- import { isAsyncIterator } from "./is-iterator.js";
21
+ import { closeAll, closeAllSync, entryOf, pull } from "./internal.js";
22
22
  import { concatAsync, concatSync, zipAsync, zipSync } from "./iterator-tools.js";
23
23
  /**
24
24
  * Yield items while predicate holds; stop (without consuming further) at
@@ -380,23 +380,37 @@ export async function* starmapAsync(fn, iterableOfArgArrays) {
380
380
  * @param iteratorList iterables to zip
381
381
  */
382
382
  export function* zipLongestSync(fillValue, ...iteratorList) {
383
- const generators = iteratorList.map((iterator) => iterator[Symbol.iterator]());
384
- while (true) {
385
- const result = [];
386
- let anyNotDone = false;
387
- for (const generator of generators) {
388
- const { value, done } = generator.next();
389
- if (done) {
390
- result.push(fillValue);
391
- }
392
- else {
393
- anyNotDone = true;
394
- result.push(value);
383
+ const entries = iteratorList.map((iterator) => ({ it: iterator[Symbol.iterator](), done: false }));
384
+ try {
385
+ while (true) {
386
+ const result = [];
387
+ let anyNotDone = false;
388
+ for (const entry of entries) {
389
+ let step;
390
+ try {
391
+ step = entry.it.next();
392
+ }
393
+ catch (error) {
394
+ entry.done = true; // an iterator that threw is not closed again
395
+ throw error;
396
+ }
397
+ if (step.done) {
398
+ entry.done = true;
399
+ result.push(fillValue);
400
+ }
401
+ else {
402
+ anyNotDone = true;
403
+ result.push(step.value);
404
+ }
395
405
  }
406
+ if (!anyNotDone)
407
+ return;
408
+ yield result;
396
409
  }
397
- if (!anyNotDone)
398
- return;
399
- yield result;
410
+ }
411
+ finally {
412
+ // Close every input that has not ended, on an error or an early exit.
413
+ closeAllSync(entries);
400
414
  }
401
415
  }
402
416
  /**
@@ -406,14 +420,18 @@ export function* zipLongestSync(fillValue, ...iteratorList) {
406
420
  * @name zipLongestAsync
407
421
  */
408
422
  export async function* zipLongestAsync(fillValue, ...iteratorList) {
409
- const generators = iteratorList.map((iterator) => isAsyncIterator(iterator)
410
- ? iterator[Symbol.asyncIterator]()
411
- : iterator[Symbol.iterator]());
412
- while (true) {
413
- const results = await Promise.all(generators.map((g) => g.next()));
414
- if (results.every(({ done }) => done))
415
- return;
416
- yield results.map(({ value, done }) => (done ? fillValue : value));
423
+ const entries = iteratorList.map((iterator) => entryOf(iterator));
424
+ try {
425
+ while (true) {
426
+ const results = await Promise.all(entries.map((entry) => pull(entry)));
427
+ if (results.every(({ done }) => done))
428
+ return;
429
+ yield results.map(({ value, done }) => (done ? fillValue : value));
430
+ }
431
+ }
432
+ finally {
433
+ // Close every input that has not ended, on an error or an early exit.
434
+ await closeAll(entries);
417
435
  }
418
436
  }
419
437
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"itertools.js","sourceRoot":"","sources":["../src/itertools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"itertools.js","sourceRoot":"","sources":["../src/itertools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,SAAS,CAAC,CAAC,aAAa,CAAI,SAA+B,EAAE,QAAqB;IACtF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO;QAC7B,MAAM,IAAI,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACnC,SAA+B,EAC/B,QAAwC;IAExC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO;QAC7B,MAAM,IAAI,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,CAAC,CAAC,aAAa,CAAI,SAA+B,EAAE,QAAqB;IACtF,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAClB,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,CAAC,KAAK,CAAC;QACd,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACnC,SAA+B,EAC/B,QAA0B;IAE1B,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,CAAC,KAAK,CAAC;QACd,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,CAAC,CAAC,YAAY,CAAI,QAAqB,EAAE,SAA4B;IAClF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,OAAO,CAAU,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACjE,IAAI,IAAI;YAAE,MAAM,IAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAClC,QAAwC,EACxC,SAAqD;IAErD,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAU,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACxE,IAAI,IAAI;YAAE,MAAM,IAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,SAAS,CAAC,CAAC,YAAY,CAAI,QAAqB,EAAE,CAAS;IAC/D,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAI,QAAwC,EAAE,CAAS;IACzF,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,SAAS,CAAC,CAAC,YAAY,CAAI,QAAqB;IACpD,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAsB,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAI,QAAwC;IAC9E,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAA2B,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,SAAS,CAAC,CAAC,WAAW,CAC1B,QAAqB,EACrB,QAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAiB;IAEhD,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAClB,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO;IACnB,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3B,UAAU,GAAG,GAAG,CAAC;YACjB,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,QAA0B,EAC1B,QAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAiB;IAEhD,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO;IACnB,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3B,UAAU,GAAG,GAAG,CAAC;YACjB,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;;;;;GAOG;AACH,MAAM,SAAS,CAAC,CAAC,WAAW,CAAI,mBAA0C;IACxE,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QACxC,KAAK,CAAC,CAAC,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,mBAA6G;IAE7G,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QAC9C,KAAK,CAAC,CAAC,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,SAAS,CAAC,CAAC,SAAS,CAAI,QAAqB;IACjD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,IAAI,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,CAAC,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,CAAI,QAAwC;IAC3E,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,IAAI,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,CAAC,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,SAAS,CAAC,CAAC,UAAU,CAAI,KAAQ,EAAE,KAAK,GAAG,QAAQ;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAAI,KAAQ,EAAE,KAAK,GAAG,QAAQ;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,CAAC,CAAC,UAAU,CACzB,QAAqB,EACrB,QAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAiB;IAEhD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAK,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAChC,QAAwC,EACxC,QAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAiB;IAEhD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAK,CAAC;IAC1B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,SAAS,CAAC,CAAC,aAAa,CAAI,QAAqB,EAAE,KAAK,GAAG,CAAC;IAChE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAe,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACnC,QAAwC,EACxC,KAAK,GAAG,CAAC;IAET,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,CAAC,CAAC,WAAW,CAC1B,EAAwB,EACxB,mBAAmC;IAEnC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,EAAwB,EACxB,mBAAyD;IAEzD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;QAC7C,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,SAAS,CAAC,CAAC,cAAc,CAAO,SAAY,EAAE,GAAG,YAAgC;IACrF,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACnG,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,IAAuB,CAAC;gBAC5B,IAAI,CAAC;oBACH,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,6CAA6C;oBAChE,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,MAAM,MAAM,CAAC;QACf,CAAC;IACH,CAAC;YAAS,CAAC;QACT,sEAAsE;QACtE,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,SAAY,EACZ,GAAG,YAAmD;IAEtD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,KAAW,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;YAAS,CAAC;QACT,sEAAsE;QACtE,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,SAAS,CAAC,CAAC,UAAU,CAAI,QAAqB,EAAE,GAAG,IAAsC;IAC7F,IAAI,KAAK,GAAG,CAAC,EACX,IAAI,GAA8B,QAAQ,EAC1C,IAAI,GAAG,CAAC,CAAC;IACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAwB,CAAC;SAChE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAgC,CAAC;IAClF,IAAI,IAAI,IAAI,IAAI;QAAE,IAAI,GAAG,QAAQ,CAAC;IAClC,IAAI,IAAI,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC;YAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAChC,QAA0B,EAC1B,GAAG,IAAsC;IAEzC,IAAI,KAAK,GAAG,CAAC,EACX,IAAI,GAA8B,QAAQ,EAC1C,IAAI,GAAG,CAAC,CAAC;IACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAwB,CAAC;SAChE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAgC,CAAC;IAClF,IAAI,IAAI,IAAI,IAAI;QAAE,IAAI,GAAG,QAAQ,CAAC;IAClC,IAAI,IAAI,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5E,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC;YAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAC5D,CAAC;AACH,CAAC"}
package/dist/tee.d.ts CHANGED
@@ -13,6 +13,28 @@
13
13
  * };
14
14
  * ```
15
15
  */
16
- export declare const teeSync: (num?: number) => <T>(iterable: Iterable<T>) => Array<Generator<T>>;
17
- export declare const teeAsync: (num?: number) => <T>(iterable: AsyncIterable<T>) => Array<AsyncGenerator<T>>;
16
+ /**
17
+ * Optional bound on how far branches may drift apart. Without it (the
18
+ * default), a branch that falls behind buffers without limit.
19
+ */
20
+ export interface TeeOptions {
21
+ /** Most items a branch may hold unread (an integer >= 1). */
22
+ limit: number;
23
+ /**
24
+ * What happens when a branch pulls a new item while another branch
25
+ * already holds `limit` unread items:
26
+ * - `"wait"` (teeAsync only): the pulling branch waits until the slowest
27
+ * branch reads (true backpressure);
28
+ * - `"drop-oldest"`: the item is delivered and that branch's oldest
29
+ * unread item is discarded, so each branch keeps its newest `limit`;
30
+ * - `"error"`: the pull throws a RangeError instead.
31
+ */
32
+ overflow?: "wait" | "drop-oldest" | "error";
33
+ }
34
+ /** teeSync cannot block, so it supports every overflow mode except "wait". */
35
+ export interface TeeSyncOptions extends TeeOptions {
36
+ overflow?: "drop-oldest" | "error";
37
+ }
38
+ export declare const teeSync: (num?: number, options?: TeeSyncOptions) => <T>(iterable: Iterable<T>) => Array<Generator<T>>;
39
+ export declare const teeAsync: (num?: number, options?: TeeOptions) => <T>(iterable: AsyncIterable<T>) => Array<AsyncGenerator<T>>;
18
40
  //# sourceMappingURL=tee.d.ts.map
package/dist/tee.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tee.d.ts","sourceRoot":"","sources":["../src/tee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,eAAO,MAAM,OAAO,GACjB,YAAO,MACP,CAAC,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAyC7C,CAAC;AAEJ,eAAO,MAAM,QAAQ,GAClB,YAAO,MACP,CAAC,EAAE,UAAU,aAAa,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAsEvD,CAAC"}
1
+ {"version":3,"file":"tee.d.ts","sourceRoot":"","sources":["../src/tee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC;CAC7C;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;CACpC;AAkCD,eAAO,MAAM,OAAO,GACjB,YAAO,EAAE,UAAU,cAAc,MACjC,CAAC,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CA0C7C,CAAC;AAEJ,eAAO,MAAM,QAAQ,GAClB,YAAO,EAAE,UAAU,UAAU,MAC7B,CAAC,EAAE,UAAU,aAAa,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAuEvD,CAAC"}
package/dist/tee.js CHANGED
@@ -14,7 +14,37 @@
14
14
  * ```
15
15
  */
16
16
  const DONE = Symbol("DONE");
17
- export const teeSync = (num = 0) => (iterable) => {
17
+ const validate = (name, options, allowWait) => {
18
+ const { limit, overflow = allowWait ? "wait" : "error" } = options;
19
+ if (!(limit === Infinity || (Number.isInteger(limit) && limit >= 1))) {
20
+ throw new RangeError(`${name}: limit must be an integer >= 1`);
21
+ }
22
+ if (overflow === "wait" && !allowWait) {
23
+ throw new TypeError(`${name}: overflow "wait" needs to block, which only teeAsync can do`);
24
+ }
25
+ if (overflow !== "wait" && overflow !== "drop-oldest" && overflow !== "error") {
26
+ throw new TypeError(`${name}: unknown overflow mode ${String(overflow)}`);
27
+ }
28
+ return { limit, overflow };
29
+ };
30
+ const overflowError = (name, limit) => new RangeError(`${name}: a branch already holds ${limit} unread items (overflow: "error")`);
31
+ /**
32
+ * Track branches that have finished or been closed, so they stop
33
+ * receiving items (and stop counting toward the limit). Overriding
34
+ * `return` on the instance also catches a branch closed before its first
35
+ * next(), whose generator body (and finally block) never runs.
36
+ */
37
+ const trackClose = (gen, onClose) => {
38
+ const original = gen.return.bind(gen);
39
+ gen.return = (value) => {
40
+ onClose();
41
+ return original(value);
42
+ };
43
+ return gen;
44
+ };
45
+ export const teeSync = (num = 0, options) => (iterable) => {
46
+ if (options)
47
+ return boundedTeeSync(num, validate("teeSync", options, false), iterable);
18
48
  const source = iterable[Symbol.iterator]();
19
49
  const buffers = new Array(num).fill(null).map(() => []);
20
50
  const next = (i) => {
@@ -52,7 +82,9 @@ export const teeSync = (num = 0) => (iterable) => {
52
82
  }
53
83
  });
54
84
  };
55
- export const teeAsync = (num = 0) => (iterable) => {
85
+ export const teeAsync = (num = 0, options) => (iterable) => {
86
+ if (options)
87
+ return boundedTeeAsync(num, validate("teeAsync", options, true), iterable);
56
88
  const source = iterable[Symbol.asyncIterator]();
57
89
  const buffers = new Array(num).fill(null).map(() => []);
58
90
  // Guards against the check-then-act race between "is my buffer empty"
@@ -115,4 +147,145 @@ export const teeAsync = (num = 0) => (iterable) => {
115
147
  }
116
148
  });
117
149
  };
150
+ /**
151
+ * teeSync with a per-branch limit. A separate code path so the default,
152
+ * unbounded teeSync is untouched.
153
+ * @ignore
154
+ */
155
+ const boundedTeeSync = (num, { limit, overflow }, iterable) => {
156
+ const source = iterable[Symbol.iterator]();
157
+ const buffers = new Array(num).fill(null).map(() => []);
158
+ const open = new Array(num).fill(true);
159
+ const next = (i) => {
160
+ const buffer = buffers[i];
161
+ if (buffer.length !== 0) {
162
+ return buffer.shift();
163
+ }
164
+ if (overflow === "error" && buffers.some((b, j) => j !== i && open[j] && b.length >= limit)) {
165
+ throw overflowError("teeSync", limit);
166
+ }
167
+ const x = source.next();
168
+ if (x.done) {
169
+ return DONE;
170
+ }
171
+ for (let j = 0; j < buffers.length; j++) {
172
+ if (j === i || !open[j])
173
+ continue;
174
+ const other = buffers[j];
175
+ other.push(x.value);
176
+ if (other.length > limit)
177
+ other.shift(); // drop-oldest
178
+ }
179
+ return x.value;
180
+ };
181
+ return buffers.map((_, i) => {
182
+ const close = () => {
183
+ open[i] = false;
184
+ buffers[i].length = 0;
185
+ };
186
+ return trackClose((function* () {
187
+ try {
188
+ for (;;) {
189
+ const x = next(i);
190
+ if (x === DONE)
191
+ break;
192
+ yield x;
193
+ }
194
+ }
195
+ finally {
196
+ close();
197
+ source.return?.();
198
+ }
199
+ })(), close);
200
+ });
201
+ };
202
+ /**
203
+ * teeAsync with a per-branch limit. A separate code path so the default,
204
+ * unbounded teeAsync is untouched.
205
+ * @ignore
206
+ */
207
+ const boundedTeeAsync = (num, { limit, overflow }, iterable) => {
208
+ const source = iterable[Symbol.asyncIterator]();
209
+ const buffers = new Array(num).fill(null).map(() => []);
210
+ const open = new Array(num).fill(true);
211
+ let inFlight = null;
212
+ let sourceDone = false;
213
+ // Branches blocked by overflow "wait", woken whenever a buffer shrinks
214
+ // or a branch closes.
215
+ let waiters = [];
216
+ const wake = () => {
217
+ const ready = waiters;
218
+ waiters = [];
219
+ for (const resolve of ready)
220
+ resolve();
221
+ };
222
+ const full = (i) => buffers.some((b, j) => j !== i && open[j] && b.length >= limit);
223
+ const next = async (i) => {
224
+ const buffer = buffers[i];
225
+ if (buffer.length !== 0) {
226
+ const value = buffer.shift();
227
+ wake();
228
+ return value;
229
+ }
230
+ if (sourceDone) {
231
+ return DONE;
232
+ }
233
+ if (inFlight) {
234
+ await inFlight;
235
+ return next(i);
236
+ }
237
+ if (full(i)) {
238
+ if (overflow === "error")
239
+ throw overflowError("teeAsync", limit);
240
+ if (overflow === "wait") {
241
+ await new Promise((resolve) => waiters.push(resolve));
242
+ return next(i);
243
+ }
244
+ }
245
+ const pull = (async () => {
246
+ const x = await source.next();
247
+ if (x.done) {
248
+ sourceDone = true;
249
+ return DONE;
250
+ }
251
+ for (let j = 0; j < buffers.length; j++) {
252
+ if (j === i || !open[j])
253
+ continue;
254
+ const other = buffers[j];
255
+ other.push(x.value);
256
+ if (other.length > limit)
257
+ other.shift(); // drop-oldest
258
+ }
259
+ return x.value;
260
+ })();
261
+ inFlight = pull;
262
+ try {
263
+ return await pull;
264
+ }
265
+ finally {
266
+ inFlight = null;
267
+ }
268
+ };
269
+ return buffers.map((_, i) => {
270
+ const close = () => {
271
+ open[i] = false;
272
+ buffers[i].length = 0;
273
+ wake();
274
+ };
275
+ return trackClose((async function* () {
276
+ try {
277
+ for (;;) {
278
+ const x = await next(i);
279
+ if (x === DONE)
280
+ break;
281
+ yield x;
282
+ }
283
+ }
284
+ finally {
285
+ close();
286
+ await source.return?.();
287
+ }
288
+ })(), close);
289
+ });
290
+ };
118
291
  //# sourceMappingURL=tee.js.map
package/dist/tee.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tee.js","sourceRoot":"","sources":["../src/tee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tee.js","sourceRoot":"","sources":["../src/tee.ts"],"names":[],"mappings":"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"}
package/dist/time.d.ts ADDED
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Time-based operators: debounceAsync and throttleAsync.
3
+ *
4
+ * Both drain their source eagerly (timing depends on when values arrive,
5
+ * not on when the consumer reads) and queue what they emit until the
6
+ * consumer reads it. Both take an injectable `clock`, so they can be driven
7
+ * by a fake clock in tests or by a host's own scheduler, and an optional
8
+ * `signal`. On abort, on a source error, and on consumer exit they clear
9
+ * their timer and close (`return()`) the source.
10
+ */
11
+ import { type SignalOptions } from "./abort.ts";
12
+ import { type AnyIterable } from "./internal.ts";
13
+ /**
14
+ * The timer functions the time operators use. Defaults to the host's
15
+ * global `setTimeout`/`clearTimeout` and `performance.now()` (or
16
+ * `Date.now()` where `performance` is missing). `now()` must use the same
17
+ * time base as the delays given to `setTimeout`.
18
+ */
19
+ export interface Clock {
20
+ setTimeout(callback: () => void, ms: number): unknown;
21
+ clearTimeout(handle: unknown): void;
22
+ now(): number;
23
+ }
24
+ export interface TimeOptions extends SignalOptions {
25
+ clock?: Clock;
26
+ }
27
+ export interface ThrottleOptions extends TimeOptions {
28
+ /** Emit the value that opens a window immediately. Default `true`. */
29
+ leading?: boolean;
30
+ /** At the end of a window, emit the newest value that arrived during it. Default `true`. */
31
+ trailing?: boolean;
32
+ }
33
+ /** The host's timers. */
34
+ export declare const systemClock: Clock;
35
+ /**
36
+ * Emit a value only after `ms` have passed with no newer value: a burst of
37
+ * values becomes its last value, emitted `ms` after the burst ends. When
38
+ * the source ends, a value still waiting is emitted at once.
39
+ *
40
+ * Emitted values queue until the consumer reads them. A source error is
41
+ * rethrown after the queued values; a value still waiting for its quiet
42
+ * period is dropped.
43
+ * @kind function
44
+ * @name debounceAsync
45
+ * @example
46
+ * ```javascript
47
+ * for await (const query of debounceAsync(250, keystrokes)) search(query);
48
+ * ```
49
+ */
50
+ export declare const debounceAsync: <T>(ms: number, iterable: AnyIterable<T>, { clock, signal }?: TimeOptions) => AsyncGenerator<T>;
51
+ /**
52
+ * Emit at most one value per `ms` window. A value arriving while no window
53
+ * is open opens one, and is emitted at once if `leading` (default `true`).
54
+ * With `trailing` (default `true`), the newest value that arrived during a
55
+ * window is emitted when the window closes, which opens the next window.
56
+ * When the source ends, a trailing value still waiting is emitted at once.
57
+ *
58
+ * `leading` and `trailing` cannot both be false. Emitted values queue
59
+ * until the consumer reads them. A source error is rethrown after the
60
+ * queued values; a trailing value still waiting is dropped.
61
+ * @kind function
62
+ * @name throttleAsync
63
+ * @example
64
+ * ```javascript
65
+ * for await (const position of throttleAsync(16, pointerMoves)) draw(position);
66
+ * ```
67
+ */
68
+ export declare const throttleAsync: <T>(ms: number, iterable: AnyIterable<T>, { leading, trailing, clock, signal }?: ThrottleOptions) => AsyncGenerator<T>;
69
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAA+D,MAAM,eAAe,CAAC;AAE9G;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,GAAG,IAAI,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yBAAyB;AACzB,eAAO,MAAM,WAAW,EAAE,KAIzB,CAAC;AA0EF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,IAAI,MAAM,EACV,UAAU,WAAW,CAAC,CAAC,CAAC,EACxB,oBAAiC,WAAgB,KAChD,cAAc,CAAC,CAAC,CAgDlB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,IAAI,MAAM,EACV,UAAU,WAAW,CAAC,CAAC,CAAC,EACxB,uCAAkE,eAAoB,KACrF,cAAc,CAAC,CAAC,CAuDlB,CAAC"}