@typed/fx 1.11.9 → 1.12.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 (146) hide show
  1. package/dist/RefSubject.d.ts.map +1 -1
  2. package/dist/RefSubject.js +19 -9
  3. package/dist/RefSubject.js.map +1 -1
  4. package/dist/_internal.d.ts +7 -2
  5. package/dist/_internal.d.ts.map +1 -1
  6. package/dist/_internal.js +34 -3
  7. package/dist/_internal.js.map +1 -1
  8. package/dist/catchAllCause.d.ts.map +1 -1
  9. package/dist/catchAllCause.js +3 -22
  10. package/dist/catchAllCause.js.map +1 -1
  11. package/dist/cjs/RefSubject.d.ts.map +1 -1
  12. package/dist/cjs/RefSubject.js +19 -9
  13. package/dist/cjs/RefSubject.js.map +1 -1
  14. package/dist/cjs/catchAllCause.d.ts.map +1 -1
  15. package/dist/cjs/catchAllCause.js +2 -21
  16. package/dist/cjs/catchAllCause.js.map +1 -1
  17. package/dist/cjs/combineAll.d.ts.map +1 -1
  18. package/dist/cjs/combineAll.js +1 -3
  19. package/dist/cjs/combineAll.js.map +1 -1
  20. package/dist/cjs/data-first.d.ts +1 -0
  21. package/dist/cjs/data-first.d.ts.map +1 -1
  22. package/dist/cjs/data-first.js +1 -0
  23. package/dist/cjs/data-first.js.map +1 -1
  24. package/dist/cjs/exhaustMap.d.ts.map +1 -1
  25. package/dist/cjs/exhaustMap.js +2 -21
  26. package/dist/cjs/exhaustMap.js.map +1 -1
  27. package/dist/cjs/exhaustMapCause.d.ts.map +1 -1
  28. package/dist/cjs/exhaustMapCause.js +2 -19
  29. package/dist/cjs/exhaustMapCause.js.map +1 -1
  30. package/dist/cjs/exhaustMapLatest.d.ts.map +1 -1
  31. package/dist/cjs/exhaustMapLatest.js +2 -71
  32. package/dist/cjs/exhaustMapLatest.js.map +1 -1
  33. package/dist/cjs/exhaustMapLatestCause.d.ts.map +1 -1
  34. package/dist/cjs/exhaustMapLatestCause.js +2 -69
  35. package/dist/cjs/exhaustMapLatestCause.js.map +1 -1
  36. package/dist/cjs/flatMap.d.ts.map +1 -1
  37. package/dist/cjs/flatMap.js +2 -20
  38. package/dist/cjs/flatMap.js.map +1 -1
  39. package/dist/cjs/helpers.d.ts +10 -0
  40. package/dist/cjs/helpers.d.ts.map +1 -0
  41. package/dist/cjs/helpers.js +103 -0
  42. package/dist/cjs/helpers.js.map +1 -0
  43. package/dist/cjs/index.d.ts +4 -0
  44. package/dist/cjs/index.d.ts.map +1 -1
  45. package/dist/cjs/index.js +2 -1
  46. package/dist/cjs/index.js.map +1 -1
  47. package/dist/cjs/keyed.d.ts +4 -0
  48. package/dist/cjs/keyed.d.ts.map +1 -0
  49. package/dist/cjs/keyed.js +144 -0
  50. package/dist/cjs/keyed.js.map +1 -0
  51. package/dist/cjs/multicast.d.ts +1 -1
  52. package/dist/cjs/multicast.d.ts.map +1 -1
  53. package/dist/cjs/multicast.js +14 -6
  54. package/dist/cjs/multicast.js.map +1 -1
  55. package/dist/cjs/switchMap.d.ts.map +1 -1
  56. package/dist/cjs/switchMap.js +2 -17
  57. package/dist/cjs/switchMap.js.map +1 -1
  58. package/dist/cjs/switchMapCause.d.ts.map +1 -1
  59. package/dist/cjs/switchMapCause.js +2 -12
  60. package/dist/cjs/switchMapCause.js.map +1 -1
  61. package/dist/cjs/switchMatch.d.ts.map +1 -1
  62. package/dist/cjs/switchMatch.js +2 -12
  63. package/dist/cjs/switchMatch.js.map +1 -1
  64. package/dist/cjs/throttle.d.ts.map +1 -1
  65. package/dist/cjs/throttle.js +2 -19
  66. package/dist/cjs/throttle.js.map +1 -1
  67. package/dist/cjs/toReadonlyArray.d.ts.map +1 -1
  68. package/dist/cjs/toReadonlyArray.js +2 -7
  69. package/dist/cjs/toReadonlyArray.js.map +1 -1
  70. package/dist/combineAll.d.ts.map +1 -1
  71. package/dist/combineAll.js +1 -3
  72. package/dist/combineAll.js.map +1 -1
  73. package/dist/data-first.d.ts +1 -0
  74. package/dist/data-first.d.ts.map +1 -1
  75. package/dist/data-first.js +1 -0
  76. package/dist/data-first.js.map +1 -1
  77. package/dist/exhaustMap.d.ts.map +1 -1
  78. package/dist/exhaustMap.js +2 -21
  79. package/dist/exhaustMap.js.map +1 -1
  80. package/dist/exhaustMapCause.d.ts.map +1 -1
  81. package/dist/exhaustMapCause.js +3 -20
  82. package/dist/exhaustMapCause.js.map +1 -1
  83. package/dist/exhaustMapLatest.d.ts.map +1 -1
  84. package/dist/exhaustMapLatest.js +2 -48
  85. package/dist/exhaustMapLatest.js.map +1 -1
  86. package/dist/exhaustMapLatestCause.d.ts.map +1 -1
  87. package/dist/exhaustMapLatestCause.js +3 -47
  88. package/dist/exhaustMapLatestCause.js.map +1 -1
  89. package/dist/flatMap.d.ts.map +1 -1
  90. package/dist/flatMap.js +2 -20
  91. package/dist/flatMap.js.map +1 -1
  92. package/dist/helpers.d.ts +10 -0
  93. package/dist/helpers.d.ts.map +1 -0
  94. package/dist/helpers.js +95 -0
  95. package/dist/helpers.js.map +1 -0
  96. package/dist/index.d.ts +4 -0
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +1 -0
  99. package/dist/index.js.map +1 -1
  100. package/dist/keyed.d.ts +4 -0
  101. package/dist/keyed.d.ts.map +1 -0
  102. package/dist/keyed.js +114 -0
  103. package/dist/keyed.js.map +1 -0
  104. package/dist/multicast.d.ts +1 -1
  105. package/dist/multicast.d.ts.map +1 -1
  106. package/dist/multicast.js +14 -6
  107. package/dist/multicast.js.map +1 -1
  108. package/dist/switchMap.d.ts.map +1 -1
  109. package/dist/switchMap.js +2 -17
  110. package/dist/switchMap.js.map +1 -1
  111. package/dist/switchMapCause.d.ts.map +1 -1
  112. package/dist/switchMapCause.js +3 -13
  113. package/dist/switchMapCause.js.map +1 -1
  114. package/dist/switchMatch.d.ts.map +1 -1
  115. package/dist/switchMatch.js +3 -13
  116. package/dist/switchMatch.js.map +1 -1
  117. package/dist/throttle.d.ts.map +1 -1
  118. package/dist/throttle.js +3 -20
  119. package/dist/throttle.js.map +1 -1
  120. package/dist/toReadonlyArray.d.ts.map +1 -1
  121. package/dist/toReadonlyArray.js +2 -7
  122. package/dist/toReadonlyArray.js.map +1 -1
  123. package/dist/tsconfig.cjs.build.tsbuildinfo +1 -1
  124. package/package.json +5 -4
  125. package/src/RefSubject.test.ts +3 -1
  126. package/src/RefSubject.ts +38 -23
  127. package/src/catchAllCause.ts +5 -44
  128. package/src/combineAll.ts +1 -3
  129. package/src/data-first.ts +1 -0
  130. package/src/exhaustMap.ts +3 -41
  131. package/src/exhaustMapCause.ts +3 -39
  132. package/src/exhaustMapLatest.ts +3 -72
  133. package/src/exhaustMapLatestCause.ts +3 -70
  134. package/src/flatMap.ts +3 -46
  135. package/src/helpers.ts +171 -0
  136. package/src/index.ts +21 -0
  137. package/src/keyed.test.ts +43 -0
  138. package/src/keyed.ts +212 -0
  139. package/src/multicast.test.ts +25 -0
  140. package/src/multicast.ts +21 -14
  141. package/src/switchMap.ts +3 -37
  142. package/src/switchMapCause.ts +4 -38
  143. package/src/switchMatch.ts +10 -43
  144. package/src/throttle.ts +5 -33
  145. package/src/toReadonlyArray.ts +2 -8
  146. package/tsconfig.build.tsbuildinfo +1 -1
@@ -38,6 +38,7 @@ __exportStar(require("./fromIterable.js"), exports);
38
38
  __exportStar(require("./Fx.js"), exports);
39
39
  __exportStar(require("./gen.js"), exports);
40
40
  __exportStar(require("./hold.js"), exports);
41
+ __exportStar(require("./keyed.js"), exports);
41
42
  __exportStar(require("./map.js"), exports);
42
43
  __exportStar(require("./mergeAll.js"), exports);
43
44
  __exportStar(require("./multicast.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"data-first.js","sourceRoot":"","sources":["../../src/data-first.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,qDAAkC;AAClC,kDAA+B;AAC/B,yDAAsC;AACtC,oDAAiC;AACjC,gDAA6B;AAC7B,6CAA0B;AAC1B,6CAA0B;AAC1B,kDAA+B;AAC/B,uDAAoC;AACpC,wDAAqC;AACrC,6DAA0C;AAC1C,iDAA8B;AAC9B,8CAA2B;AAC3B,iDAA8B;AAC9B,+CAA4B;AAC5B,iDAA8B;AAC9B,kDAA+B;AAC/B,mDAAgC;AAChC,oDAAiC;AACjC,oDAAiC;AACjC,0CAAuB;AACvB,2CAAwB;AACxB,4CAAyB;AACzB,2CAAwB;AACxB,gDAA6B;AAC7B,iDAA8B;AAC9B,6CAA0B;AAC1B,+CAA4B;AAC5B,mDAAgC;AAChC,+CAA4B;AAC5B,+CAA4B;AAC5B,8CAA2B;AAC3B,kDAA+B;AAC/B,4CAAyB;AACzB,8CAA2B;AAC3B,mDAAgC;AAChC,iDAA8B;AAC9B,6CAA0B;AAC1B,sDAAmC;AACnC,+CAA4B;AAC5B,+CAA4B;AAC5B,+CAA4B;AAC5B,iDAA8B;AAC9B,sDAAmC;AACnC,mDAAgC;AAChC,iDAA8B;AAC9B,2CAAwB;AACxB,gDAA6B;AAC7B,gDAA6B;AAC7B,+CAA4B;AAC5B,+CAA4B;AAC5B,uDAAoC"}
1
+ {"version":3,"file":"data-first.js","sourceRoot":"","sources":["../../src/data-first.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,qDAAkC;AAClC,kDAA+B;AAC/B,yDAAsC;AACtC,oDAAiC;AACjC,gDAA6B;AAC7B,6CAA0B;AAC1B,6CAA0B;AAC1B,kDAA+B;AAC/B,uDAAoC;AACpC,wDAAqC;AACrC,6DAA0C;AAC1C,iDAA8B;AAC9B,8CAA2B;AAC3B,iDAA8B;AAC9B,+CAA4B;AAC5B,iDAA8B;AAC9B,kDAA+B;AAC/B,mDAAgC;AAChC,oDAAiC;AACjC,oDAAiC;AACjC,0CAAuB;AACvB,2CAAwB;AACxB,4CAAyB;AACzB,6CAA0B;AAC1B,2CAAwB;AACxB,gDAA6B;AAC7B,iDAA8B;AAC9B,6CAA0B;AAC1B,+CAA4B;AAC5B,mDAAgC;AAChC,+CAA4B;AAC5B,+CAA4B;AAC5B,8CAA2B;AAC3B,kDAA+B;AAC/B,4CAAyB;AACzB,8CAA2B;AAC3B,mDAAgC;AAChC,iDAA8B;AAC9B,6CAA0B;AAC1B,sDAAmC;AACnC,+CAA4B;AAC5B,+CAA4B;AAC5B,+CAA4B;AAC5B,iDAA8B;AAC9B,sDAAmC;AACnC,mDAAgC;AAChC,iDAA8B;AAC9B,2CAAwB;AACxB,gDAA6B;AAC7B,gDAA6B;AAC7B,+CAA4B;AAC5B,+CAA4B;AAC5B,uDAAoC"}
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMap.d.ts","sourceRoot":"","sources":["../../src/exhaustMap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAS,MAAM,EAAuB,MAAM,gBAAgB,CAAA;AAGnE,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAyCvB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACjD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAE3F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GACrC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB"}
1
+ {"version":3,"file":"exhaustMap.d.ts","sourceRoot":"","sources":["../../src/exhaustMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIvC,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAIvB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACjD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAE3F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GACrC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB"}
@@ -1,30 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.exhaustEffect = exports.exhaust = exports.exhaustMapEffect = exports.exhaustMap = void 0;
4
- const Function_1 = require("@effect/data/Function");
5
4
  const Fx_js_1 = require("./Fx.js");
6
- const externals_js_1 = require("./externals.js");
7
5
  const fromEffect_js_1 = require("./fromEffect.js");
6
+ const helpers_js_1 = require("./helpers.js");
8
7
  function exhaustMap(fx, f) {
9
- return (0, Fx_js_1.Fx)((sink) => externals_js_1.Effect.gen(function* ($) {
10
- const runFork = externals_js_1.Runtime.runFork(yield* $(externals_js_1.Effect.runtime()));
11
- const ref = yield* $(externals_js_1.Ref.make(void 0));
12
- const reset = externals_js_1.Ref.set(ref, void 0);
13
- const exhaustMapEvent = (a) => externals_js_1.Effect.gen(function* ($) {
14
- const currentFiber = yield* $(externals_js_1.Ref.get(ref));
15
- if (currentFiber) {
16
- return;
17
- }
18
- const fiber = (0, Function_1.pipe)(f(a).run((0, Fx_js_1.Sink)(sink.event, (cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause))), externals_js_1.Effect.zipLeft(reset), externals_js_1.Effect.catchAllCause((cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause)), runFork);
19
- yield* $(externals_js_1.Ref.set(ref, fiber));
20
- });
21
- yield* $(fx.run((0, Fx_js_1.Sink)(exhaustMapEvent, sink.error)));
22
- // Wait for the last fiber to finish
23
- const fiber = yield* $(externals_js_1.Ref.get(ref));
24
- if (fiber) {
25
- yield* $(externals_js_1.Fiber.join(fiber));
26
- }
27
- }));
8
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withExhaust)((fork) => fx.run((0, Fx_js_1.Sink)((a) => fork(f(a).run(sink)), sink.error))));
28
9
  }
29
10
  exports.exhaustMap = exhaustMap;
30
11
  function exhaustMapEffect(fx, f) {
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMap.js","sourceRoot":"","sources":["../../src/exhaustMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exhaustMap.js","sourceRoot":"","sources":["../../src/exhaustMap.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAElC,mDAA4C;AAC5C,6CAA0C;AAE1C,SAAgB,UAAU,CACxB,EAAe,EACf,CAA0B;IAE1B,OAAO,IAAA,UAAE,EAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,IAAA,wBAAW,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAC7E,CAAA;AACH,CAAC;AAPD,gCAOC;AAED,SAAgB,gBAAgB,CAC9B,EAAe,EACf,CAAqC;IAErC,OAAO,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC;AALD,4CAKC;AAED,SAAgB,OAAO,CAAkB,EAA2B;IAClE,OAAO,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAFD,0BAEC;AAED,SAAgB,aAAa,CAC3B,EAAsC;IAEtC,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC;AAJD,sCAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMapCause.d.ts","sourceRoot":"","sources":["../../src/exhaustMapCause.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAA+B,MAAM,gBAAgB,CAAA;AAI3E,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAC1C,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAyCvB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACrD,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAE3B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAIvB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACxC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAEvB"}
1
+ {"version":3,"file":"exhaustMapCause.d.ts","sourceRoot":"","sources":["../../src/exhaustMapCause.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,gBAAgB,CAAA;AAKtD,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAC1C,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAIvB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACrD,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAE3B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAIvB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACxC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAEvB"}
@@ -6,26 +6,9 @@ const Fx_js_1 = require("./Fx.js");
6
6
  const externals_js_1 = require("./externals.js");
7
7
  const failCause_js_1 = require("./failCause.js");
8
8
  const fromEffect_js_1 = require("./fromEffect.js");
9
+ const helpers_js_1 = require("./helpers.js");
9
10
  function exhaustMapCause(fx, f) {
10
- return (0, Fx_js_1.Fx)((sink) => externals_js_1.Effect.gen(function* ($) {
11
- const runFork = externals_js_1.Runtime.runFork(yield* $(externals_js_1.Effect.runtime()));
12
- const ref = yield* $(externals_js_1.Ref.make(void 0));
13
- const reset = externals_js_1.Ref.set(ref, void 0);
14
- const exhaustMapError = (cause) => externals_js_1.Effect.gen(function* ($) {
15
- const currentFiber = yield* $(externals_js_1.Ref.get(ref));
16
- if (currentFiber) {
17
- return;
18
- }
19
- const fiber = (0, Function_1.pipe)(f(cause).run((0, Fx_js_1.Sink)(sink.event, (cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause))), externals_js_1.Effect.zipLeft(reset), externals_js_1.Effect.catchAllCause((cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause)), runFork);
20
- yield* $(externals_js_1.Ref.set(ref, fiber));
21
- });
22
- yield* $(fx.run((0, Fx_js_1.Sink)(sink.event, exhaustMapError)));
23
- // Wait for the last fiber to finish
24
- const fiber = yield* $(externals_js_1.Ref.get(ref));
25
- if (fiber) {
26
- yield* $(externals_js_1.Fiber.join(fiber));
27
- }
28
- }));
11
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withExhaust)((fork) => fx.run((0, Fx_js_1.Sink)(sink.event, (cause) => fork(f(cause).run(sink))))));
29
12
  }
30
13
  exports.exhaustMapCause = exhaustMapCause;
31
14
  function exhaustMapCauseEffect(fx, f) {
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMapCause.js","sourceRoot":"","sources":["../../src/exhaustMapCause.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exhaustMapCause.js","sourceRoot":"","sources":["../../src/exhaustMapCause.ts"],"names":[],"mappings":";;;AAAA,oDAA4C;AAE5C,mCAAkC;AAClC,iDAAsD;AACtD,iDAA0C;AAC1C,mDAA4C;AAC5C,6CAA0C;AAE1C,SAAgB,eAAe,CAC7B,EAAe,EACf,CAA2C;IAE3C,OAAO,IAAA,UAAE,EAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,IAAA,wBAAW,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACrF,CAAA;AACH,CAAC;AAPD,0CAOC;AAED,SAAgB,qBAAqB,CACnC,EAAe,EACf,CAAsD;IAEtD,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC;AALD,sDAKC;AAED,SAAgB,eAAe,CAC7B,EAAe,EACf,CAA0B;IAE1B,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CACnC,IAAA,eAAI,EAAC,KAAK,EAAE,oBAAK,CAAC,cAAc,EAAE,qBAAM,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAS,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC;AAPD,0CAOC;AAED,SAAgB,qBAAqB,CACnC,EAAe,EACf,CAAyC;IAEzC,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC;AALD,sDAKC"}
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMapLatest.d.ts","sourceRoot":"","sources":["../../src/exhaustMapLatest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAS,MAAM,EAAuB,MAAM,gBAAgB,CAAA;AAGnE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACjD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAuEvB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACvD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEjG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACjD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GACrC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB"}
1
+ {"version":3,"file":"exhaustMapLatest.d.ts","sourceRoot":"","sources":["../../src/exhaustMapLatest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIvC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACjD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAIvB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACvD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEjG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACjD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GACrC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB"}
@@ -1,80 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.exhaustLatestEffect = exports.exhaustLatest = exports.exhaustMapLatestEffect = exports.exhaustMapLatest = void 0;
27
- const Function_1 = require("@effect/data/Function");
28
- const Option = __importStar(require("@effect/data/Option"));
29
4
  const Fx_js_1 = require("./Fx.js");
30
- const externals_js_1 = require("./externals.js");
31
5
  const fromEffect_js_1 = require("./fromEffect.js");
6
+ const helpers_js_1 = require("./helpers.js");
32
7
  function exhaustMapLatest(fx, f) {
33
- return (0, Fx_js_1.Fx)((sink) => externals_js_1.Effect.gen(function* ($) {
34
- const runFork = externals_js_1.Runtime.runFork(yield* $(externals_js_1.Effect.runtime()));
35
- const ref = yield* $(externals_js_1.Ref.make(void 0));
36
- const nextValue = yield* $(externals_js_1.Ref.make(Option.none()));
37
- const reset = externals_js_1.Ref.set(ref, void 0);
38
- // Wait for the current fiber to finish
39
- const awaitNext = externals_js_1.Effect.gen(function* ($) {
40
- // Wait for the last fiber to finish
41
- const fiber = yield* $(externals_js_1.Ref.get(ref));
42
- if (fiber) {
43
- // Wait for the fiber to end to check to see if we need to run another
44
- yield* $(externals_js_1.Fiber.join(fiber));
45
- }
46
- });
47
- // Run the next value that's be saved for replay if it exists
48
- const runNext = externals_js_1.Effect.gen(function* ($) {
49
- const next = yield* $(externals_js_1.Ref.get(nextValue));
50
- if (Option.isSome(next)) {
51
- // Clear the next A to be replayed
52
- yield* $(externals_js_1.Ref.set(nextValue, Option.none()));
53
- // Replay the next A
54
- yield* $(exhaustMapLatestEvent(next.value));
55
- // Ensure we don't close the scope until the last fiber completes
56
- yield* $(awaitNext);
57
- }
58
- });
59
- const exhaustMapLatestEvent = (a) => externals_js_1.Effect.gen(function* ($) {
60
- const currentFiber = yield* $(externals_js_1.Ref.get(ref));
61
- // Always allow the current fiber to continue
62
- if (currentFiber) {
63
- // Track the latest A to be replayed layer
64
- return yield* $(externals_js_1.Ref.set(nextValue, Option.some(a)));
65
- }
66
- // Run our Fx with the current value
67
- const fiber = (0, Function_1.pipe)(f(a).run((0, Fx_js_1.Sink)(sink.event, (cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause))),
68
- // Clear the current fiber when finished
69
- externals_js_1.Effect.zipRight(reset),
70
- // See if there's another value to replay
71
- externals_js_1.Effect.zipRight(runNext), externals_js_1.Effect.catchAllCause((cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause)), runFork);
72
- yield* $(externals_js_1.Ref.set(ref, fiber));
73
- });
74
- yield* $(fx.run((0, Fx_js_1.Sink)(exhaustMapLatestEvent, sink.error)));
75
- // Wait for the last fiber to finish
76
- yield* $(awaitNext);
77
- }));
8
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withExhaustLatest)((fork) => fx.run((0, Fx_js_1.Sink)((a) => fork(f(a).run(sink)), sink.error))));
78
9
  }
79
10
  exports.exhaustMapLatest = exhaustMapLatest;
80
11
  function exhaustMapLatestEffect(fx, f) {
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMapLatest.js","sourceRoot":"","sources":["../../src/exhaustMapLatest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4C;AAC5C,4DAA6C;AAE7C,mCAAkC;AAClC,iDAAmE;AACnE,mDAA4C;AAE5C,SAAgB,gBAAgB,CAC9B,EAAe,EACf,CAA0B;IAE1B,OAAO,IAAA,UAAE,EAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,qBAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,sBAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAM,CAAC,OAAO,EAAe,CAAC,CAAC,CAAA;QACxE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,IAAI,CAAyC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,IAAI,CAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACrE,MAAM,KAAK,GAAG,kBAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAElC,uCAAuC;QACvC,MAAM,SAAS,GAAG,qBAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,oCAAoC;YACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,KAAK,EAAE;gBACT,sEAAsE;gBACtE,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;aAC5B;QACH,CAAC,CAAC,CAAA;QAEF,6DAA6D;QAC7D,MAAM,OAAO,GAAwC,qBAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;YAEzC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACvB,kCAAkC;gBAClC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;gBAE3C,oBAAoB;gBACpB,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;gBAE3C,iEAAiE;gBACjE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;aACpB;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,qBAAqB,GAAG,CAAC,CAAI,EAAE,EAAE,CACrC,qBAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAE3C,6CAA6C;YAC7C,IAAI,YAAY,EAAE;gBAChB,0CAA0C;gBAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aACpD;YAED,oCAAoC;YACpC,MAAM,KAAK,GAAG,IAAA,eAAI,EAChB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CACN,IAAA,YAAI,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACzB,oBAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CACnE,CACF;YACD,wCAAwC;YACxC,qBAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB,yCAAyC;YACzC,qBAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EACxB,qBAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,oBAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CACnE,EACD,OAAO,CACR,CAAA;YAED,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEJ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEzD,oCAAoC;QACpC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACrB,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AA1ED,4CA0EC;AAED,SAAgB,sBAAsB,CACpC,EAAe,EACf,CAAqC;IAErC,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AALD,wDAKC;AAED,SAAgB,aAAa,CAAkB,EAA2B;IACxE,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC;AAFD,sCAEC;AAED,SAAgB,mBAAmB,CACjC,EAAsC;IAEtC,OAAO,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAJD,kDAIC"}
1
+ {"version":3,"file":"exhaustMapLatest.js","sourceRoot":"","sources":["../../src/exhaustMapLatest.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAElC,mDAA4C;AAC5C,6CAAgD;AAEhD,SAAgB,gBAAgB,CAC9B,EAAe,EACf,CAA0B;IAE1B,OAAO,IAAA,UAAE,EAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,IAAA,8BAAiB,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACnF,CAAA;AACH,CAAC;AAPD,4CAOC;AAED,SAAgB,sBAAsB,CACpC,EAAe,EACf,CAAqC;IAErC,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AALD,wDAKC;AAED,SAAgB,aAAa,CAAkB,EAA2B;IACxE,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC;AAFD,sCAEC;AAED,SAAgB,mBAAmB,CACjC,EAAsC;IAEtC,OAAO,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAJD,kDAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMapLatestCause.d.ts","sourceRoot":"","sources":["../../src/exhaustMapLatestCause.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAA+B,MAAM,gBAAgB,CAAA;AAI3E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAC1C,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAuEvB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC5D,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACrD,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAE3B;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAIvB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC5D,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACxC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAEvB"}
1
+ {"version":3,"file":"exhaustMapLatestCause.d.ts","sourceRoot":"","sources":["../../src/exhaustMapLatestCause.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,gBAAgB,CAAA;AAKtD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAC1C,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAIvB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC5D,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACrD,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAE3B;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAIvB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC5D,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACxC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAEvB"}
@@ -1,81 +1,14 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.exhaustMapLatestErrorEffect = exports.exhaustMapLatestError = exports.exhaustMapLatestCauseEffect = exports.exhaustMapLatestCause = void 0;
27
4
  const Function_1 = require("@effect/data/Function");
28
- const Option = __importStar(require("@effect/data/Option"));
29
5
  const Fx_js_1 = require("./Fx.js");
30
6
  const externals_js_1 = require("./externals.js");
31
7
  const failCause_js_1 = require("./failCause.js");
32
8
  const fromEffect_js_1 = require("./fromEffect.js");
9
+ const helpers_js_1 = require("./helpers.js");
33
10
  function exhaustMapLatestCause(fx, f) {
34
- return (0, Fx_js_1.Fx)((sink) => externals_js_1.Effect.gen(function* ($) {
35
- const runFork = externals_js_1.Runtime.runFork(yield* $(externals_js_1.Effect.runtime()));
36
- const ref = yield* $(externals_js_1.Ref.make(void 0));
37
- const nextValue = yield* $(externals_js_1.Ref.make(Option.none()));
38
- const reset = externals_js_1.Ref.set(ref, void 0);
39
- // Wait for the current fiber to finish
40
- const awaitNext = externals_js_1.Effect.gen(function* ($) {
41
- // Wait for the last fiber to finish
42
- const fiber = yield* $(externals_js_1.Ref.get(ref));
43
- if (fiber) {
44
- // Wait for the fiber to end to check to see if we need to run another
45
- yield* $(externals_js_1.Fiber.join(fiber));
46
- }
47
- });
48
- // Run the next value that's be saved for replay if it exists
49
- const runNext = externals_js_1.Effect.gen(function* ($) {
50
- const next = yield* $(externals_js_1.Ref.get(nextValue));
51
- if (Option.isSome(next)) {
52
- // Clear the next A to be replayed
53
- yield* $(externals_js_1.Ref.set(nextValue, Option.none()));
54
- // Replay the next A
55
- yield* $(exhaustMapLatestError(next.value));
56
- // Ensure we don't close the scope until the last fiber completes
57
- yield* $(awaitNext);
58
- }
59
- });
60
- const exhaustMapLatestError = (cause) => externals_js_1.Effect.gen(function* ($) {
61
- const currentFiber = yield* $(externals_js_1.Ref.get(ref));
62
- // Always allow the current fiber to continue
63
- if (currentFiber) {
64
- // Track the latest A to be replayed layer
65
- return yield* $(externals_js_1.Ref.set(nextValue, Option.some(cause)));
66
- }
67
- // Run our Fx with the current value
68
- const fiber = (0, Function_1.pipe)(f(cause).run((0, Fx_js_1.Sink)(sink.event, (cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause))),
69
- // Clear the current fiber when finished
70
- externals_js_1.Effect.zipRight(reset),
71
- // See if there's another value to replay
72
- externals_js_1.Effect.zipRight(runNext), externals_js_1.Effect.catchAllCause((cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause)), runFork);
73
- yield* $(externals_js_1.Ref.set(ref, fiber));
74
- });
75
- yield* $(fx.run((0, Fx_js_1.Sink)(sink.event, exhaustMapLatestError)));
76
- // Wait for the last fiber to finish
77
- yield* $(awaitNext);
78
- }));
11
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withExhaustLatest)((fork) => fx.run((0, Fx_js_1.Sink)(sink.event, (cause) => fork(f(cause).run(sink))))));
79
12
  }
80
13
  exports.exhaustMapLatestCause = exhaustMapLatestCause;
81
14
  function exhaustMapLatestCauseEffect(fx, f) {
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMapLatestCause.js","sourceRoot":"","sources":["../../src/exhaustMapLatestCause.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exhaustMapLatestCause.js","sourceRoot":"","sources":["../../src/exhaustMapLatestCause.ts"],"names":[],"mappings":";;;AAAA,oDAA4C;AAE5C,mCAAkC;AAClC,iDAAsD;AACtD,iDAA0C;AAC1C,mDAA4C;AAC5C,6CAAgD;AAEhD,SAAgB,qBAAqB,CACnC,EAAe,EACf,CAA2C;IAE3C,OAAO,IAAA,UAAE,EAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,IAAA,8BAAiB,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3F,CAAA;AACH,CAAC;AAPD,sDAOC;AAED,SAAgB,2BAA2B,CACzC,EAAe,EACf,CAAsD;IAEtD,OAAO,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AALD,kEAKC;AAED,SAAgB,qBAAqB,CACnC,EAAe,EACf,CAA0B;IAE1B,OAAO,qBAAqB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CACzC,IAAA,eAAI,EAAC,KAAK,EAAE,oBAAK,CAAC,cAAc,EAAE,qBAAM,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAS,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC;AAPD,sDAOC;AAED,SAAgB,2BAA2B,CACzC,EAAe,EACf,CAAyC;IAEzC,OAAO,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AALD,kEAKC"}
@@ -1 +1 @@
1
- {"version":3,"file":"flatMap.d.ts","sourceRoot":"","sources":["../../src/flatMap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAS,MAAM,EAAuB,MAAM,gBAAgB,CAAA;AAGnE,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CA8CvB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC9C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAE3F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GACrC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB"}
1
+ {"version":3,"file":"flatMap.d.ts","sourceRoot":"","sources":["../../src/flatMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIvC,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACxC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAIvB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC9C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAE3F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GACrC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAEvB"}
@@ -1,29 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.flattenEffect = exports.flatten = exports.flatMapEffect = exports.flatMap = void 0;
4
- const Function_1 = require("@effect/data/Function");
5
4
  const Fx_js_1 = require("./Fx.js");
6
- const externals_js_1 = require("./externals.js");
7
5
  const fromEffect_js_1 = require("./fromEffect.js");
6
+ const helpers_js_1 = require("./helpers.js");
8
7
  function flatMap(fx, f) {
9
- return (0, Fx_js_1.Fx)((sink) => externals_js_1.Effect.gen(function* ($) {
10
- const runFork = externals_js_1.Runtime.runFork(yield* $(externals_js_1.Effect.runtime()));
11
- const ref = yield* $(externals_js_1.Ref.make(new Set()));
12
- yield* $(fx.run((0, Fx_js_1.Sink)((a) => externals_js_1.Effect.gen(function* ($) {
13
- const fiber = runFork(f(a).run((0, Fx_js_1.Sink)(sink.event, (cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause))));
14
- // Add Fiber to fibers
15
- yield* $(externals_js_1.Ref.update(ref, (fs) => fs.add(fiber)));
16
- // When the fiber ends, we need to remove it from the list of fibers
17
- (0, Function_1.pipe)(externals_js_1.Fiber.join(fiber), externals_js_1.Effect.flatMap(() => externals_js_1.Ref.update(ref, (fs) => (fs.delete(fiber), fs))), externals_js_1.Effect.catchAllCause((cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause)),
18
- // but don't allow this to be blocking
19
- runFork);
20
- }), sink.error)));
21
- // Wait for the last fibers to finish
22
- const fibers = yield* $(externals_js_1.Ref.get(ref));
23
- if (fibers.size > 0) {
24
- yield* $(externals_js_1.Fiber.joinAll(fibers));
25
- }
26
- }));
8
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withUnboundedConcurrency)((fork) => fx.run((0, Fx_js_1.Sink)((a) => fork(f(a).run(sink)), sink.error))));
27
9
  }
28
10
  exports.flatMap = flatMap;
29
11
  function flatMapEffect(fx, f) {
@@ -1 +1 @@
1
- {"version":3,"file":"flatMap.js","sourceRoot":"","sources":["../../src/flatMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flatMap.js","sourceRoot":"","sources":["../../src/flatMap.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAElC,mDAA4C;AAC5C,6CAAuD;AAEvD,SAAgB,OAAO,CACrB,EAAe,EACf,CAA0B;IAE1B,OAAO,IAAA,UAAE,EAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,IAAA,qCAAwB,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1F,CAAA;AACH,CAAC;AAPD,0BAOC;AAED,SAAgB,aAAa,CAC3B,EAAe,EACf,CAAqC;IAErC,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AALD,sCAKC;AAED,SAAgB,OAAO,CAAkB,EAA2B;IAClE,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC9B,CAAC;AAFD,0BAEC;AAED,SAAgB,aAAa,CAC3B,EAAsC;IAEtC,OAAO,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAJD,sCAIC"}
@@ -0,0 +1,10 @@
1
+ import { Effect, Fiber } from './externals.js';
2
+ export type ScopedFork = <R2, E2, B>(effect: Effect.Effect<R2, E2, B>) => Effect.Effect<R2, never, Fiber.RuntimeFiber<E2, B>>;
3
+ export declare function withScopedFork<R, E, A>(f: (fork: ScopedFork) => Effect.Effect<R, E, A>): Effect.Effect<R, E, A>;
4
+ export type ForkFxFiber = <R2>(effect: Effect.Effect<R2, never, void>) => Effect.Effect<R2, never, Fiber.RuntimeFiber<never, void>>;
5
+ export declare function withUnboundedConcurrency<R, E, A>(f: (fork: ForkFxFiber) => Effect.Effect<R, E, A>): Effect.Effect<R, E, void>;
6
+ export type ForkFx = <R2>(eff: Effect.Effect<R2, never, void>) => Effect.Effect<R2, never, void>;
7
+ export declare function withSwitch<R, E, A>(f: (switchFork: ForkFx) => Effect.Effect<R, E, A>): Effect.Effect<R, E, void>;
8
+ export declare function withExhaust<R, E, A>(f: (exhaustFork: ForkFx) => Effect.Effect<R, E, A>): Effect.Effect<R, E, void>;
9
+ export declare function withExhaustLatest<R, E, A>(f: (exhaustLatestFork: ForkFx) => Effect.Effect<R, E, A>): Effect.Effect<R, E, void>;
10
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAA4B,MAAM,gBAAgB,CAAA;AAExE,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAExD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,0BAMtF;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,EAAE,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KACnC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;AAE9D,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9C,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,6BAgCjD;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AAEhG,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,6BAuBpF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,6BA6BtF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACvC,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,6BAwDzD"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withExhaustLatest = exports.withExhaust = exports.withSwitch = exports.withUnboundedConcurrency = exports.withScopedFork = void 0;
4
+ const Function_1 = require("@effect/data/Function");
5
+ const externals_js_1 = require("./externals.js");
6
+ function withScopedFork(f) {
7
+ return externals_js_1.Effect.acquireUseRelease(externals_js_1.Scope.make(), (scope) => f(externals_js_1.Effect.forkIn(scope)), (scope, exit) => externals_js_1.Scope.close(scope, exit));
8
+ }
9
+ exports.withScopedFork = withScopedFork;
10
+ function withUnboundedConcurrency(f) {
11
+ return withScopedFork((fork) => externals_js_1.Effect.gen(function* ($) {
12
+ const fibers = new Set();
13
+ yield* $(f((effect) => externals_js_1.Effect.gen(function* ($) {
14
+ const fiber = yield* $(fork(effect));
15
+ fibers.add(fiber);
16
+ // Ensure that the fiber is removed from the set when it finishes
17
+ yield* $(externals_js_1.Fiber.join(fiber), externals_js_1.Effect.ensuring(externals_js_1.Effect.sync(() => fibers.delete(fiber))),
18
+ // but don't allow this to be blocking
19
+ fork);
20
+ return fiber;
21
+ })));
22
+ // Wait for all fibers to complete
23
+ if (fibers.size > 0) {
24
+ yield* $(externals_js_1.Fiber.joinAll(fibers));
25
+ }
26
+ }));
27
+ }
28
+ exports.withUnboundedConcurrency = withUnboundedConcurrency;
29
+ function withSwitch(f) {
30
+ return withScopedFork((fork) => externals_js_1.Effect.gen(function* ($) {
31
+ const ref = yield* $(externals_js_1.RefS.make(externals_js_1.Fiber.unit()));
32
+ const switchFork = (eff) => externals_js_1.RefS.updateEffect(ref, (currentFiber) => (0, Function_1.pipe)(externals_js_1.Fiber.interruptFork(currentFiber), externals_js_1.Effect.flatMap(() => fork(eff))));
33
+ yield* $(f(switchFork));
34
+ const fiber = yield* $(externals_js_1.RefS.get(ref));
35
+ // Wait for last fiber to complete
36
+ if (fiber) {
37
+ yield* $(externals_js_1.Fiber.join(fiber));
38
+ }
39
+ }));
40
+ }
41
+ exports.withSwitch = withSwitch;
42
+ function withExhaust(f) {
43
+ return withScopedFork((fork) => externals_js_1.Effect.gen(function* ($) {
44
+ const ref = yield* $(externals_js_1.Ref.make(undefined));
45
+ const reset = externals_js_1.Ref.set(ref, undefined);
46
+ const exhaustFork = (eff) => externals_js_1.Effect.gen(function* ($) {
47
+ const currentFiber = yield* $(externals_js_1.Ref.get(ref));
48
+ if (currentFiber) {
49
+ return;
50
+ }
51
+ const fiber = yield* $(eff, externals_js_1.Effect.ensuring(reset), fork);
52
+ yield* $(externals_js_1.Ref.set(ref, fiber));
53
+ });
54
+ yield* $(f(exhaustFork));
55
+ const fiber = yield* $(externals_js_1.Ref.get(ref));
56
+ // Wait for last fiber to complete
57
+ if (fiber) {
58
+ yield* $(externals_js_1.Fiber.join(fiber));
59
+ }
60
+ }));
61
+ }
62
+ exports.withExhaust = withExhaust;
63
+ function withExhaustLatest(f) {
64
+ return withScopedFork((fork) => externals_js_1.Effect.gen(function* ($) {
65
+ const ref = yield* $(externals_js_1.Ref.make(undefined));
66
+ const nextEffect = yield* $(externals_js_1.Ref.make(externals_js_1.Option.none()));
67
+ const reset = externals_js_1.Ref.set(ref, undefined);
68
+ // Wait for the current fiber to finish
69
+ const awaitNext = externals_js_1.Effect.gen(function* ($) {
70
+ // Wait for the last fiber to finish
71
+ const fiber = yield* $(externals_js_1.Ref.get(ref));
72
+ if (fiber) {
73
+ // Wait for the fiber to end to check to see if we need to run another
74
+ yield* $(externals_js_1.Fiber.join(fiber));
75
+ }
76
+ });
77
+ // Run the next value that's be saved for replay if it exists
78
+ const runNext = externals_js_1.Effect.gen(function* ($) {
79
+ const next = yield* $(externals_js_1.Ref.get(nextEffect));
80
+ if (externals_js_1.Option.isSome(next)) {
81
+ // Clear the next A to be replayed
82
+ yield* $(externals_js_1.Ref.set(nextEffect, externals_js_1.Option.none()));
83
+ // Replay the next A
84
+ yield* $(exhaustLatestFork(next.value));
85
+ // Ensure we don't close the scope until the last fiber completes
86
+ yield* $(awaitNext);
87
+ }
88
+ });
89
+ const exhaustLatestFork = (eff) => externals_js_1.Effect.gen(function* ($) {
90
+ const currentFiber = yield* $(externals_js_1.Ref.get(ref));
91
+ if (currentFiber) {
92
+ return yield* $(externals_js_1.Ref.set(nextEffect, externals_js_1.Option.some(eff)));
93
+ }
94
+ const fiber = yield* $(eff, externals_js_1.Effect.ensuring(externals_js_1.Effect.zip(reset, runNext)), fork);
95
+ yield* $(externals_js_1.RefS.set(ref, fiber));
96
+ });
97
+ yield* $(f(exhaustLatestFork));
98
+ // Wait for last fibers to complete
99
+ yield* $(awaitNext);
100
+ }));
101
+ }
102
+ exports.withExhaustLatest = withExhaustLatest;
103
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -337,6 +337,10 @@ export declare const throttle: {
337
337
  export declare const toArray: <R, E, A>(fx: Fx<R, E, A>) => Effect.Effect<R | Scope.Scope, E, Array<A>>;
338
338
  export declare const toChunk: <R, E, A>(fx: Fx<R, E, A>) => Effect.Effect<R | Scope.Scope, E, Chunk.Chunk<A>>;
339
339
  export declare const toReadonlyArray: <R, E, A>(fx: Fx<R, E, A>) => Effect.Effect<R | Scope.Scope, E, ReadonlyArray<A>>;
340
+ export declare const keyed: {
341
+ <A, R2, E2, B>(f: (value: Fx<never, never, A>) => Fx<R2, E2, B>, eq?: Equivalence<A>): <R, E>(fx: Fx<R, E, readonly A[]>) => Fx<R2, E2, readonly B[]>;
342
+ <R, E, A, R2, E2, B>(fx: Fx<R, E, readonly A[]>, f: (value: Fx<never, never, A>) => Fx<R2, E2, B>, eq?: Equivalence<A>): Fx<R | R2, E | E2, readonly B[]>;
343
+ };
340
344
  export * from './RefSubject.js';
341
345
  export * from './Subject.js';
342
346
  //# sourceMappingURL=index.d.ts.map