@vielzeug/flux 26.11.11 → 26.11.13

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 (49) hide show
  1. package/dist/_iterator.cjs +1 -1
  2. package/dist/_iterator.cjs.map +1 -1
  3. package/dist/_iterator.d.ts.map +1 -1
  4. package/dist/_iterator.js +4 -1
  5. package/dist/_iterator.js.map +1 -1
  6. package/dist/async.cjs +1 -1
  7. package/dist/async.cjs.map +1 -1
  8. package/dist/channel.cjs +1 -1
  9. package/dist/channel.cjs.map +1 -1
  10. package/dist/channel.js +9 -9
  11. package/dist/channel.js.map +1 -1
  12. package/dist/flux.cjs +1 -1
  13. package/dist/flux.cjs.map +1 -1
  14. package/dist/flux.iife.js +1 -1
  15. package/dist/flux.iife.js.map +1 -1
  16. package/dist/flux.js +121 -123
  17. package/dist/flux.js.map +1 -1
  18. package/dist/operators/creation.cjs +1 -1
  19. package/dist/operators/creation.cjs.map +1 -1
  20. package/dist/operators/creation.d.ts.map +1 -1
  21. package/dist/operators/creation.js +22 -23
  22. package/dist/operators/creation.js.map +1 -1
  23. package/dist/operators/filtering.cjs +1 -1
  24. package/dist/operators/filtering.cjs.map +1 -1
  25. package/dist/operators/filtering.d.ts.map +1 -1
  26. package/dist/operators/filtering.js +25 -23
  27. package/dist/operators/filtering.js.map +1 -1
  28. package/dist/operators/transformation.cjs +1 -1
  29. package/dist/operators/transformation.cjs.map +1 -1
  30. package/dist/operators/transformation.d.ts +8 -2
  31. package/dist/operators/transformation.d.ts.map +1 -1
  32. package/dist/operators/transformation.js +24 -19
  33. package/dist/operators/transformation.js.map +1 -1
  34. package/dist/operators/utility.cjs +1 -1
  35. package/dist/operators/utility.cjs.map +1 -1
  36. package/dist/operators/utility.d.ts.map +1 -1
  37. package/dist/operators/utility.js +48 -51
  38. package/dist/operators/utility.js.map +1 -1
  39. package/package.json +2 -14
  40. package/dist/_dev.d.ts +0 -2
  41. package/dist/_dev.d.ts.map +0 -1
  42. package/dist/_scheduler.cjs +0 -2
  43. package/dist/_scheduler.cjs.map +0 -1
  44. package/dist/_scheduler.d.ts +0 -6
  45. package/dist/_scheduler.d.ts.map +0 -1
  46. package/dist/_scheduler.js +0 -14
  47. package/dist/_scheduler.js.map +0 -1
  48. package/dist/subjects.d.ts +0 -2
  49. package/dist/subjects.d.ts.map +0 -1
package/dist/flux.js CHANGED
@@ -44,7 +44,10 @@ function toIterator(e, t) {
44
44
  value: void 0
45
45
  });
46
46
  }, complete = () => {
47
- i.kind === "open" && (i.kind = "complete", detach(), resolveDone());
47
+ i.kind === "open" && (i = {
48
+ kind: "complete",
49
+ queue: i.queue
50
+ }, detach(), resolveDone());
48
51
  }, fail = (e) => {
49
52
  if (i.kind === "open") for (i = {
50
53
  kind: "error",
@@ -220,7 +223,7 @@ function replayCapacity(e) {
220
223
  function createChannel(e = {}) {
221
224
  let t = replayCapacity(e), n = new AbortController(), r = /* @__PURE__ */ new Set(), i = [];
222
225
  "initial" in e && t > 0 && i.push(e.initial);
223
- let a = stream((e) => {
226
+ let a = !1, o = [], s = stream((e) => {
224
227
  if (n.signal.aborted) e.complete();
225
228
  else {
226
229
  for (let t of i) e.next(t);
@@ -230,18 +233,18 @@ function createChannel(e = {}) {
230
233
  if (!n.signal.aborted) {
231
234
  n.abort();
232
235
  for (let e of [...r]) e.complete();
233
- r.clear(), i.length = 0, s.length = 0;
236
+ r.clear(), i.length = 0, o.length = 0;
234
237
  }
235
- }, o = !1, s = [], flush = () => {
236
- o = !0;
238
+ }, flush = () => {
239
+ a = !0;
237
240
  try {
238
- for (; s.length > 0;) {
239
- let e = s.shift();
241
+ for (; o.length > 0;) {
242
+ let e = o.shift();
240
243
  t > 0 && (i.length === t && i.shift(), i.push(e));
241
244
  for (let t of [...r]) t.next(e);
242
245
  }
243
246
  } finally {
244
- o = !1;
247
+ a = !1;
245
248
  }
246
249
  };
247
250
  return {
@@ -253,9 +256,9 @@ function createChannel(e = {}) {
253
256
  return n.signal.aborted;
254
257
  },
255
258
  send(e) {
256
- n.signal.aborted || (s.push(e), o || flush());
259
+ n.signal.aborted || (o.push(e), a || flush());
257
260
  },
258
- stream: a,
261
+ stream: s,
259
262
  [Symbol.dispose]: dispose
260
263
  };
261
264
  }
@@ -344,17 +347,6 @@ function combineLatest(...e) {
344
347
  });
345
348
  });
346
349
  }
347
- // src/_scheduler.ts
348
- var e = {
349
- delay(e, t) {
350
- let n = setTimeout(e, t);
351
- return () => clearTimeout(n);
352
- },
353
- repeat(e, t) {
354
- let n = setInterval(e, t);
355
- return () => clearInterval(n);
356
- }
357
- };
358
350
  // src/operators/creation.ts
359
351
  function of(...e) {
360
352
  return stream((t) => {
@@ -417,19 +409,19 @@ function fromEvent(e, t) {
417
409
  return e.addEventListener(t, listener), () => e.removeEventListener(t, listener);
418
410
  });
419
411
  }
420
- function interval(t) {
421
- return assertDuration(t, "Interval duration"), stream((n) => {
422
- let r = 0;
423
- return e.repeat(() => n.next(r++), t);
412
+ function interval(e) {
413
+ return assertDuration(e, "Interval duration"), stream((t) => {
414
+ let n = 0, r = setInterval(() => t.next(n++), e);
415
+ return () => clearInterval(r);
424
416
  });
425
417
  }
426
- function timer(t) {
427
- return assertDuration(t.delay, "Timer delay"), t.interval !== void 0 && assertDuration(t.interval, "Timer interval"), stream((n) => {
428
- let r = 0, i, a = e.delay(() => {
429
- n.next(r++), t.interval === void 0 ? n.complete() : i = e.repeat(() => n.next(r++), t.interval);
430
- }, t.delay);
418
+ function timer(e) {
419
+ return assertDuration(e.delay, "Timer delay"), e.interval !== void 0 && assertDuration(e.interval, "Timer interval"), stream((t) => {
420
+ let n = 0, r, i = setTimeout(() => {
421
+ t.next(n++), e.interval === void 0 ? t.complete() : r = setInterval(() => t.next(n++), e.interval);
422
+ }, e.delay);
431
423
  return () => {
432
- a(), i?.();
424
+ clearTimeout(i), r !== void 0 && clearInterval(r);
433
425
  };
434
426
  });
435
427
  }
@@ -477,43 +469,46 @@ function takeUntil(e) {
477
469
  };
478
470
  });
479
471
  }
480
- function debounce(t) {
481
- return assertDuration(t, "Debounce duration"), (n) => stream((r, i) => {
482
- let a, o, s = !1, flush = () => {
483
- a = void 0, s && (s = !1, r.next(o));
484
- }, c = link(n, {
472
+ function debounce(e) {
473
+ return assertDuration(e, "Debounce duration"), (t) => stream((n, r) => {
474
+ let cancel, i, a = !1, flush = () => {
475
+ cancel = void 0, a && (a = !1, n.next(i));
476
+ }, o = link(t, {
485
477
  complete() {
486
- a?.(), flush(), r.complete();
478
+ cancel?.(), flush(), n.complete();
487
479
  },
488
- error: r.error,
489
- next(n) {
490
- o = n, s = !0, a?.(), a = e.delay(flush, t);
480
+ error: n.error,
481
+ next(t) {
482
+ i = t, a = !0, cancel?.();
483
+ let n = setTimeout(flush, e);
484
+ cancel = () => clearTimeout(n);
491
485
  }
492
- }, i);
486
+ }, r);
493
487
  return () => {
494
- a?.(), c.unsubscribe();
488
+ cancel?.(), o.unsubscribe();
495
489
  };
496
490
  });
497
491
  }
498
- function timeout(t) {
499
- return assertDuration(t, "Timeout duration"), (n) => stream((r, i) => {
500
- let a, start = () => {
501
- a = e.delay(() => r.error(new FluxTimeoutError(t)), t);
492
+ function timeout(e) {
493
+ return assertDuration(e, "Timeout duration"), (t) => stream((n, r) => {
494
+ let cancel, start = () => {
495
+ let t = setTimeout(() => n.error(new FluxTimeoutError(e)), e);
496
+ cancel = () => clearTimeout(t);
502
497
  };
503
498
  start();
504
- let o = link(n, {
499
+ let i = link(t, {
505
500
  complete() {
506
- a(), r.complete();
501
+ cancel(), n.complete();
507
502
  },
508
503
  error(e) {
509
- a(), r.error(e);
504
+ cancel(), n.error(e);
510
505
  },
511
506
  next(e) {
512
- a(), start(), r.next(e);
507
+ cancel(), start(), n.next(e);
513
508
  }
514
- }, i);
509
+ }, r);
515
510
  return () => {
516
- a(), o.unsubscribe();
511
+ cancel(), i.unsubscribe();
517
512
  };
518
513
  });
519
514
  }
@@ -587,146 +582,149 @@ function switchMap(e) {
587
582
  };
588
583
  });
589
584
  }
590
- function flatten(e, t) {
591
- let n = t.concurrency === Infinity;
592
- return n || (assertPositiveInteger(t.concurrency, "mergeMap concurrency"), assertPositiveInteger(t.capacity, "mergeMap capacity")), (r) => stream((i, a) => {
593
- let o = [], s = /* @__PURE__ */ new Set(), c = !1, l = {}, finish = () => {
594
- c && s.size === 0 && o.length === 0 && i.complete();
585
+ function flatten(e, t, n) {
586
+ let { capacity: r, concurrency: i } = t, a = i === "unbounded";
587
+ if (!a) {
588
+ if (assertPositiveInteger(i, `${n} concurrency`), r === void 0) throw RangeError(`${n} requires capacity when concurrency is finite; use { concurrency: "unbounded" } to start every value immediately`);
589
+ assertPositiveInteger(r, `${n} capacity`);
590
+ }
591
+ let o = a ? Infinity : i, s = a ? Infinity : r;
592
+ return (t) => stream((r, i) => {
593
+ let a = [], c = /* @__PURE__ */ new Set(), l = !1, u = {}, finish = () => {
594
+ l && c.size === 0 && a.length === 0 && r.complete();
595
595
  }, startInner = (t) => {
596
596
  tryCall(() => {
597
597
  let n = {};
598
598
  n.current = link(e(t), {
599
599
  complete() {
600
- n.current && s.delete(n.current), drain();
600
+ n.current && c.delete(n.current), drain();
601
601
  },
602
- error: i.error,
603
- next: i.next
604
- }, a), n.current.closed ? drain() : s.add(n.current);
605
- }, i.error);
602
+ error: r.error,
603
+ next: r.next
604
+ }, i), n.current.closed ? drain() : c.add(n.current);
605
+ }, r.error);
606
606
  }, drain = () => {
607
- if (!a.aborted) {
608
- for (; o.length > 0 && (n || s.size < t.concurrency);) {
609
- let e = o.shift();
607
+ if (!i.aborted) {
608
+ for (; a.length > 0 && c.size < o;) {
609
+ let e = a.shift();
610
610
  startInner(e);
611
611
  }
612
612
  finish();
613
613
  }
614
614
  };
615
- return l.current = link(r, {
615
+ return u.current = link(t, {
616
616
  complete() {
617
- c = !0, finish();
617
+ l = !0, finish();
618
618
  },
619
- error: i.error,
619
+ error: r.error,
620
620
  next(e) {
621
- !n && o.length >= t.capacity ? (l.current?.unsubscribe(), i.error(new FluxCapacityError(t.capacity, "mergeMap buffer capacity exceeded"))) : (o.push(e), drain());
621
+ a.length >= s ? (u.current?.unsubscribe(), r.error(new FluxCapacityError(s, `${n} buffer capacity exceeded`))) : (a.push(e), drain());
622
622
  }
623
- }, a), () => {
624
- l.current?.unsubscribe();
625
- for (let e of s) e.unsubscribe();
626
- o.length = 0;
623
+ }, i), () => {
624
+ u.current?.unsubscribe();
625
+ for (let e of c) e.unsubscribe();
626
+ a.length = 0;
627
627
  };
628
628
  });
629
629
  }
630
630
  function mergeMap(e, t) {
631
- return flatten(e, t);
631
+ return flatten(e, t, "mergeMap");
632
632
  }
633
633
  function concatMap(e, t) {
634
634
  return flatten(e, {
635
635
  capacity: t.capacity,
636
636
  concurrency: 1
637
- });
637
+ }, "concatMap");
638
638
  }
639
639
  // src/operators/utility.ts
640
- function retry(t) {
641
- return assertNonNegativeInteger(t.times, "retry times"), (n) => stream((r, i) => {
642
- let a = 0, o, s, start = () => {
643
- if (i.aborted) return;
644
- let c = link(n, {
645
- complete: r.complete,
646
- error(n) {
647
- if (a === t.times) {
648
- r.error(n);
640
+ function retry(e) {
641
+ return assertNonNegativeInteger(e.times, "retry times"), (t) => stream((n, r) => {
642
+ let i = 0, a, o, start = () => {
643
+ if (r.aborted) return;
644
+ let s = link(t, {
645
+ complete: n.complete,
646
+ error(t) {
647
+ if (i === e.times) {
648
+ n.error(t);
649
649
  return;
650
650
  }
651
- let o = a++, c;
651
+ let a = i++, s;
652
652
  if (tryCall(() => {
653
- c = typeof t.delay == "function" ? t.delay(o) : t.delay;
654
- }, r.error), !i.aborted) {
655
- if (c !== void 0) try {
656
- assertDuration(c, "Retry delay");
653
+ s = typeof e.delay == "function" ? e.delay(a) : e.delay;
654
+ }, n.error), !r.aborted) {
655
+ if (s !== void 0) try {
656
+ assertDuration(s, "Retry delay");
657
657
  } catch (e) {
658
- r.error(e);
658
+ n.error(e);
659
659
  return;
660
660
  }
661
- c === void 0 || c === 0 ? queueMicrotask(start) : s = e.delay(start, c);
661
+ s === void 0 || s === 0 ? queueMicrotask(start) : o = setTimeout(start, s);
662
662
  }
663
663
  },
664
- next: r.next
665
- }, i);
666
- c.closed || (o = c);
664
+ next: n.next
665
+ }, r);
666
+ s.closed || (a = s);
667
667
  };
668
668
  return start(), () => {
669
- s?.(), o?.unsubscribe();
669
+ o !== void 0 && clearTimeout(o), a?.unsubscribe();
670
670
  };
671
671
  });
672
672
  }
673
+ function watchSignal(e, t, n) {
674
+ if (!e) return () => {};
675
+ let abort = () => {
676
+ t.abort(), n(abortError(e, "Stream consumption aborted"));
677
+ };
678
+ return e.aborted ? (abort(), null) : (e.addEventListener("abort", abort, { once: !0 }), () => e.removeEventListener("abort", abort));
679
+ }
673
680
  function first(e, t) {
674
681
  return new Promise((n, r) => {
675
- let i = new AbortController(), abort = () => {
676
- i.abort(), r(abortError(t?.signal, "Stream consumption aborted"));
677
- };
678
- t?.signal?.aborted ? abort() : (t?.signal?.addEventListener("abort", abort, { once: !0 }), link(e, {
682
+ let i = new AbortController(), a = watchSignal(t?.signal, i, r);
683
+ a && link(e, {
679
684
  complete() {
680
- t?.signal?.removeEventListener("abort", abort), "defaultValue" in (t ?? {}) ? n(t.defaultValue) : r(new FluxEmptyError());
685
+ a(), "defaultValue" in (t ?? {}) ? n(t.defaultValue) : r(new FluxEmptyError());
681
686
  },
682
687
  error(e) {
683
- t?.signal?.removeEventListener("abort", abort), r(e);
688
+ a(), r(e);
684
689
  },
685
690
  next(e) {
686
- t?.signal?.removeEventListener("abort", abort), i.abort(), n(e);
691
+ a(), i.abort(), n(e);
687
692
  }
688
- }, i.signal));
693
+ }, i.signal);
689
694
  });
690
695
  }
691
696
  function last(e, t) {
692
697
  return new Promise((n, r) => {
693
- let i = new AbortController(), abort = () => {
694
- i.abort(), r(abortError(t?.signal, "Stream consumption aborted"));
695
- };
696
- if (t?.signal?.aborted) {
697
- abort();
698
- return;
699
- }
700
- let a = !1, o;
701
- t?.signal?.addEventListener("abort", abort, { once: !0 }), link(e, {
698
+ let i = new AbortController(), a = watchSignal(t?.signal, i, r);
699
+ if (!a) return;
700
+ let o = !1, s;
701
+ link(e, {
702
702
  complete() {
703
- t?.signal?.removeEventListener("abort", abort), a ? n(o) : "defaultValue" in (t ?? {}) ? n(t.defaultValue) : r(new FluxEmptyError());
703
+ a(), o ? n(s) : "defaultValue" in (t ?? {}) ? n(t.defaultValue) : r(new FluxEmptyError());
704
704
  },
705
705
  error(e) {
706
- t?.signal?.removeEventListener("abort", abort), r(e);
706
+ a(), r(e);
707
707
  },
708
708
  next(e) {
709
- a = !0, o = e;
709
+ o = !0, s = e;
710
710
  }
711
711
  }, i.signal);
712
712
  });
713
713
  }
714
714
  function toArray(e, t) {
715
715
  return assertNonNegativeInteger(t.maxItems, "toArray maxItems"), new Promise((n, r) => {
716
- let i = new AbortController(), a = [], abort = () => {
717
- i.abort(), r(abortError(t?.signal, "Stream consumption aborted"));
718
- };
719
- t.signal?.aborted ? abort() : (t.signal?.addEventListener("abort", abort, { once: !0 }), link(e, {
716
+ let i = new AbortController(), a = [], o = watchSignal(t.signal, i, r);
717
+ o && link(e, {
720
718
  complete() {
721
- t.signal?.removeEventListener("abort", abort), n(a);
719
+ o(), n(a);
722
720
  },
723
721
  error(e) {
724
- t.signal?.removeEventListener("abort", abort), r(e);
722
+ o(), r(e);
725
723
  },
726
724
  next(e) {
727
- a.length === t.maxItems ? (t.signal?.removeEventListener("abort", abort), i.abort(), r(new FluxCapacityError(t.maxItems, "toArray maxItems exceeded"))) : a.push(e);
725
+ a.length === t.maxItems ? (o(), i.abort(), r(new FluxCapacityError(t.maxItems, "toArray maxItems exceeded"))) : a.push(e);
728
726
  }
729
- }, i.signal));
727
+ }, i.signal);
730
728
  });
731
729
  }
732
730
  // src/pipe.ts