@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
@@ -1 +1 @@
1
- {"version":3,"file":"switchMap.d.ts","sourceRoot":"","sources":["../../src/switchMap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAS,MAAM,EAAkB,MAAM,gBAAgB,CAAA;AAG9D,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC1C,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,CAmCvB;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,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,YAAY,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,CAEhG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChD,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":"switchMap.d.ts","sourceRoot":"","sources":["../../src/switchMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIvC,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC1C,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,CAEvB;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,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,YAAY,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,CAEhG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChD,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,26 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.switchLatestEffect = exports.switchLatest = exports.switchMapEffect = exports.switchMap = 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 switchMap(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
- let ref;
12
- const switchEvent = (a) => externals_js_1.Effect.gen(function* ($) {
13
- if (ref) {
14
- yield* $(externals_js_1.Fiber.interruptFork(ref));
15
- }
16
- ref = runFork((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(externals_js_1.Effect.sync(() => (ref = undefined))), externals_js_1.Effect.catchAllCause((cause) => externals_js_1.Cause.isInterruptedOnly(cause) ? externals_js_1.Effect.unit() : sink.error(cause))));
17
- });
18
- yield* $(fx.run((0, Fx_js_1.Sink)(switchEvent, sink.error)));
19
- // Wait for the last fiber to finish
20
- if (ref) {
21
- yield* $(externals_js_1.Fiber.join(ref));
22
- }
23
- }));
8
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withSwitch)((fork) => fx.run((0, Fx_js_1.Sink)((a) => fork(f(a).run(sink)), sink.error))));
24
9
  }
25
10
  exports.switchMap = switchMap;
26
11
  function switchMapEffect(fx, f) {
@@ -1 +1 @@
1
- {"version":3,"file":"switchMap.js","sourceRoot":"","sources":["../../src/switchMap.ts"],"names":[],"mappings":";;;AAAA,oDAA4C;AAE5C,mCAAkC;AAClC,iDAA8D;AAC9D,mDAA4C;AAE5C,SAAgB,SAAS,CACvB,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,IAAI,GAAgD,CAAA;QAEpD,MAAM,WAAW,GAAG,CAAC,CAAI,EAAE,EAAE,CAC3B,qBAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG,EAAE;gBACP,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;aACnC;YAED,GAAG,GAAG,OAAO,CACX,IAAA,eAAI,EACF,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,EACD,qBAAM,CAAC,OAAO,CAAC,qBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EACpD,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,CACF,CACF,CAAA;QACH,CAAC,CAAC,CAAA;QAEJ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE/C,oCAAoC;QACpC,IAAI,GAAG,EAAE;YACP,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;SAC1B;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAtCD,8BAsCC;AAED,SAAgB,eAAe,CAC7B,EAAe,EACf,CAAqC;IAErC,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAC;AALD,0CAKC;AAED,SAAgB,YAAY,CAAkB,EAA2B;IACvE,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC;AAFD,oCAEC;AAED,SAAgB,kBAAkB,CAChC,EAAsC;IAEtC,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC;AAJD,gDAIC"}
1
+ {"version":3,"file":"switchMap.js","sourceRoot":"","sources":["../../src/switchMap.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAElC,mDAA4C;AAC5C,6CAAyC;AAEzC,SAAgB,SAAS,CACvB,EAAe,EACf,CAA0B;IAE1B,OAAO,IAAA,UAAE,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,uBAAU,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,CAAC,CAAA;AAClG,CAAC;AALD,8BAKC;AAED,SAAgB,eAAe,CAC7B,EAAe,EACf,CAAqC;IAErC,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAC;AALD,0CAKC;AAED,SAAgB,YAAY,CAAkB,EAA2B;IACvE,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC;AAFD,oCAEC;AAED,SAAgB,kBAAkB,CAChC,EAAsC;IAEtC,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC;AAJD,gDAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"switchMapCause.d.ts","sourceRoot":"","sources":["../../src/switchMapCause.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAgC,MAAM,gBAAgB,CAAA;AAI5E,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC/C,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,CAuCvB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACrD,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,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAEvB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC/C,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,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACrD,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":"switchMapCause.d.ts","sourceRoot":"","sources":["../../src/switchMapCause.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,gBAAgB,CAAA;AAKtD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC/C,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,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACrD,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,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAEvB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC/C,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,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACrD,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,19 +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 switchMapCause(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.RefS.make(null));
13
- const reset = externals_js_1.RefS.set(ref, null);
14
- const switchError = (cause) => externals_js_1.RefS.updateEffect(ref, (currentFiber) => (0, Function_1.pipe)(currentFiber ? externals_js_1.Fiber.interruptFork(currentFiber) : externals_js_1.Effect.unit(), externals_js_1.Effect.map(() => (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))));
15
- yield* $(fx.run((0, Fx_js_1.Sink)(sink.event, switchError)));
16
- // Wait for the last fiber to finish
17
- const fiber = yield* $(externals_js_1.RefS.get(ref));
18
- if (fiber) {
19
- yield* $(externals_js_1.Fiber.join(fiber));
20
- }
21
- }));
11
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withSwitch)((fork) => fx.run((0, Fx_js_1.Sink)(sink.event, (cause) => fork(f(cause).run(sink))))));
22
12
  }
23
13
  exports.switchMapCause = switchMapCause;
24
14
  function switchMapCauseEffect(fx, f) {
@@ -1 +1 @@
1
- {"version":3,"file":"switchMapCause.js","sourceRoot":"","sources":["../../src/switchMapCause.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"switchMapCause.js","sourceRoot":"","sources":["../../src/switchMapCause.ts"],"names":[],"mappings":";;;AAAA,oDAA4C;AAE5C,mCAAkC;AAClC,iDAAsD;AACtD,iDAA0C;AAC1C,mDAA4C;AAC5C,6CAAyC;AAEzC,SAAgB,cAAc,CAC5B,EAAe,EACf,CAA2C;IAE3C,OAAO,IAAA,UAAE,EAAC,CAAC,IAAI,EAAE,EAAE,CACjB,IAAA,uBAAU,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,CACpF,CAAA;AACH,CAAC;AAPD,wCAOC;AAED,SAAgB,oBAAoB,CAClC,EAAe,EACf,CAAsD;IAEtD,OAAO,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AALD,oDAKC;AAED,SAAgB,cAAc,CAC5B,EAAe,EACf,CAA0B;IAE1B,OAAO,cAAc,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAClC,IAAA,eAAI,EAAC,KAAK,EAAE,oBAAK,CAAC,cAAc,EAAE,qBAAM,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAS,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC;AAPD,wCAOC;AAED,SAAgB,oBAAoB,CAClC,EAAe,EACf,CAAyC;IAEzC,OAAO,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AALD,oDAKC"}
@@ -1 +1 @@
1
- {"version":3,"file":"switchMatch.d.ts","sourceRoot":"","sources":["../../src/switchMatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAgC,MAAM,gBAAgB,CAAA;AAI5E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,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,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAC3C,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CA6CjC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACvD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAC9B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAMjC;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAClE,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,EACtD,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAMjC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC7D,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,EACzC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAMjC"}
1
+ {"version":3,"file":"switchMatch.d.ts","sourceRoot":"","sources":["../../src/switchMatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,gBAAgB,CAAA;AAKtD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,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,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAC3C,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAWjC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACvD,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAC9B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzB,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAMjC;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAClE,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,EACtD,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAMjC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC7D,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,EACzC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAMjC"}
@@ -6,19 +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 switchMatchCause(fx, f, g) {
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.RefS.make(null));
13
- const reset = externals_js_1.RefS.set(ref, null);
14
- const switchWith = (f) => externals_js_1.RefS.updateEffect(ref, (currentFiber) => (0, Function_1.pipe)(currentFiber ? externals_js_1.Fiber.interruptFork(currentFiber) : externals_js_1.Effect.unit(), externals_js_1.Effect.map(() => (0, Function_1.pipe)(f().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))));
15
- yield* $(fx.run((0, Fx_js_1.Sink)((a) => switchWith(() => g(a)), (cause) => switchWith(() => f(cause)))));
16
- // Wait for the last fiber to finish
17
- const fiber = yield* $(externals_js_1.RefS.get(ref));
18
- if (fiber) {
19
- yield* $(externals_js_1.Fiber.join(fiber));
20
- }
21
- }));
11
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withSwitch)((fork) => fx.run((0, Fx_js_1.Sink)((a) => fork(g(a).run(sink)), (cause) => fork(f(cause).run(sink))))));
22
12
  }
23
13
  exports.switchMatchCause = switchMatchCause;
24
14
  function switchMatch(fx, f, g) {
@@ -1 +1 @@
1
- {"version":3,"file":"switchMatch.js","sourceRoot":"","sources":["../../src/switchMatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"switchMatch.js","sourceRoot":"","sources":["../../src/switchMatch.ts"],"names":[],"mappings":";;;AAAA,oDAA4C;AAE5C,mCAAkC;AAClC,iDAAsD;AACtD,iDAA0C;AAC1C,mDAA4C;AAC5C,6CAAyC;AAEzC,SAAgB,gBAAgB,CAC9B,EAAe,EACf,CAA2C,EAC3C,CAA0B;IAE1B,OAAO,IAAA,UAAE,EAAC,CAAC,IAAI,EAAE,EAAE,CACjB,IAAA,uBAAU,EAAC,CAAC,IAAI,EAAE,EAAE,CAClB,EAAE,CAAC,GAAG,CACJ,IAAA,YAAI,EACF,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACpC,CACF,CACF,CACF,CAAA;AACH,CAAC;AAfD,4CAeC;AAED,SAAgB,WAAW,CACzB,EAAe,EACf,CAA8B,EAC9B,CAA0B;IAE1B,OAAO,gBAAgB,CACrB,EAAE,EACF,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,eAAI,EAAC,KAAK,EAAE,oBAAK,CAAC,cAAc,EAAE,qBAAM,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAS,CAAC,CAAC,EACxE,CAAC,CACF,CAAA;AACH,CAAC;AAVD,kCAUC;AAED,SAAgB,sBAAsB,CACpC,EAAe,EACf,CAAsD,EACtD,CAAqC;IAErC,OAAO,gBAAgB,CACrB,EAAE,EACF,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAA;AACH,CAAC;AAVD,wDAUC;AAED,SAAgB,iBAAiB,CAC/B,EAAe,EACf,CAAyC,EACzC,CAAqC;IAErC,OAAO,WAAW,CAChB,EAAE,EACF,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAA;AACH,CAAC;AAVD,8CAUC"}
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/throttle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,QAAQ,EAA+B,MAAM,gBAAgB,CAAA;AAEtE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAiC3F"}
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAU,MAAM,gBAAgB,CAAA;AAGjD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAM3F"}
@@ -1,28 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.throttle = void 0;
4
- const Function_1 = require("@effect/data/Function");
5
4
  const Fx_js_1 = require("./Fx.js");
6
5
  const externals_js_1 = require("./externals.js");
6
+ const helpers_js_1 = require("./helpers.js");
7
7
  function throttle(fx, duration) {
8
- return (0, Fx_js_1.Fx)((sink) => externals_js_1.Effect.gen(function* ($) {
9
- const runFork = externals_js_1.Runtime.runFork(yield* $(externals_js_1.Effect.runtime()));
10
- const ref = yield* $(externals_js_1.Ref.make(void 0));
11
- const reset = externals_js_1.Ref.set(ref, void 0);
12
- const throttleEvent = (a) => externals_js_1.Effect.gen(function* ($) {
13
- const currentFiber = yield* $(externals_js_1.Ref.get(ref));
14
- if (currentFiber) {
15
- return;
16
- }
17
- yield* $(externals_js_1.Ref.set(ref, (0, Function_1.pipe)(sink.event(a), externals_js_1.Effect.zipLeft(externals_js_1.Effect.delay(reset, duration)), runFork)));
18
- });
19
- yield* $(fx.run((0, Fx_js_1.Sink)(throttleEvent, sink.error)));
20
- // Wait for the last fiber to finish
21
- const fiber = yield* $(externals_js_1.Ref.get(ref));
22
- if (fiber) {
23
- yield* $(externals_js_1.Fiber.join(fiber));
24
- }
25
- }));
8
+ return (0, Fx_js_1.Fx)((sink) => (0, helpers_js_1.withExhaust)((fork) => fx.run((0, Fx_js_1.Sink)((a) => fork(externals_js_1.Effect.zipLeft(sink.event(a), externals_js_1.Effect.sleep(duration))), sink.error))));
26
9
  }
27
10
  exports.throttle = throttle;
28
11
  //# sourceMappingURL=throttle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/throttle.ts"],"names":[],"mappings":";;;AAAA,oDAA4C;AAE5C,mCAAkC;AAClC,iDAAsE;AAEtE,SAAgB,QAAQ,CAAU,EAAe,EAAE,QAA2B;IAC5E,OAAO,IAAA,UAAE,EAAC,CAAK,IAAoB,EAAE,EAAE,CACrC,qBAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,sBAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAM,CAAC,OAAO,EAAU,CAAC,CAAC,CAAA;QACnE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,IAAI,CAAyC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,kBAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAElC,MAAM,aAAa,GAAG,CAAC,CAAI,EAAE,EAAE,CAC7B,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,IAAI,YAAY,EAAE;gBAChB,OAAM;aACP;YAED,KAAK,CAAC,CAAC,CAAC,CACN,kBAAG,CAAC,GAAG,CACL,GAAG,EACH,IAAA,eAAI,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAM,CAAC,OAAO,CAAC,qBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAC5E,CACF,CAAA;QACH,CAAC,CAAC,CAAA;QAEJ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEjD,oCAAoC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;SAC5B;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAjCD,4BAiCC"}
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/throttle.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,iDAAiD;AACjD,6CAA0C;AAE1C,SAAgB,QAAQ,CAAU,EAAe,EAAE,QAA2B;IAC5E,OAAO,IAAA,UAAE,EAAC,CAAK,IAAoB,EAAE,EAAE,CACrC,IAAA,wBAAW,EAAC,CAAC,IAAI,EAAE,EAAE,CACnB,EAAE,CAAC,GAAG,CAAC,IAAA,YAAI,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAC7F,CACF,CAAA;AACH,CAAC;AAND,4BAMC"}
@@ -1 +1 @@
1
- {"version":3,"file":"toReadonlyArray.d.ts","sourceRoot":"","sources":["../../src/toReadonlyArray.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGvC,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACd,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAQ/C"}
1
+ {"version":3,"file":"toReadonlyArray.d.ts","sourceRoot":"","sources":["../../src/toReadonlyArray.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGvC,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACd,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAE/C"}
@@ -1,14 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toReadonlyArray = void 0;
4
- const externals_js_1 = require("./externals.js");
5
- const observe_js_1 = require("./observe.js");
4
+ const toArray_js_1 = require("./toArray.js");
6
5
  function toReadonlyArray(fx) {
7
- return externals_js_1.Effect.gen(function* ($) {
8
- const array = [];
9
- yield* $((0, observe_js_1.observe)(fx, (a) => externals_js_1.Effect.sync(() => array.push(a))));
10
- return array;
11
- });
6
+ return (0, toArray_js_1.toArray)(fx);
12
7
  }
13
8
  exports.toReadonlyArray = toReadonlyArray;
14
9
  //# sourceMappingURL=toReadonlyArray.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toReadonlyArray.js","sourceRoot":"","sources":["../../src/toReadonlyArray.ts"],"names":[],"mappings":";;;AAGA,iDAAuC;AACvC,6CAAsC;AAEtC,SAAgB,eAAe,CAC7B,EAAe;IAEf,OAAO,qBAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAO,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE9D,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AAVD,0CAUC"}
1
+ {"version":3,"file":"toReadonlyArray.js","sourceRoot":"","sources":["../../src/toReadonlyArray.ts"],"names":[],"mappings":";;;AAIA,6CAAsC;AAEtC,SAAgB,eAAe,CAC7B,EAAe;IAEf,OAAO,IAAA,oBAAO,EAAC,EAAE,CAAC,CAAA;AACpB,CAAC;AAJD,0CAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"combineAll.d.ts","sourceRoot":"","sources":["../src/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAKlC,wBAAgB,UAAU,CAAC,EAAE,SAAS,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACpE,GAAG,EAAE,EAAE,EAAE,GACR,EAAE,CACH,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAC1B,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EACvB;KACG,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACpC,CACF,CA0CA;AAED,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,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACnB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAErC"}
1
+ {"version":3,"file":"combineAll.d.ts","sourceRoot":"","sources":["../src/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,MAAM,SAAS,CAAA;AAKlC,wBAAgB,UAAU,CAAC,EAAE,SAAS,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACpE,GAAG,EAAE,EAAE,EAAE,GACR,EAAE,CACH,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAC1B,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EACvB;KACG,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACpC,CACF,CAwCA;AAED,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,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACnB,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAErC"}
@@ -13,9 +13,7 @@ export function combineAll(...fx) {
13
13
  const length = fx.length;
14
14
  const values = new Map();
15
15
  const emitIfReady = Effect.suspend(() => values.size === length
16
- ? sink.event(Array.from(values)
17
- .sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0))
18
- .map((x) => x[1]))
16
+ ? sink.event(Array.from({ length }, (_, i) => values.get(i)))
19
17
  : Effect.unit());
20
18
  yield* $(Effect.forEachParWithIndex(fx, (f, i) => f.run(Sink((a) => Effect.suspend(() => {
21
19
  values.set(i, a);
@@ -1 +1 @@
1
- {"version":3,"file":"combineAll.js","sourceRoot":"","sources":["../src/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,UAAU,CACxB,GAAG,EAAM;IAQT,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,OAAO,CAAC,EAAE,CAAQ,CAAA;KAC1B;IAED,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAA;KACrC;IAED,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAA;QAErC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,IAAI,KAAK,MAAM;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CACR,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;iBACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAEjB,CACF;YACH,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAClB,CAAA;QAED,KAAK,CAAC,CAAC,CAAC,CACN,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACtC,CAAC,CAAC,GAAG,CACH,IAAI,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAChB,OAAO,WAAW,CAAA;QACpB,CAAC,CAAC,EACJ,IAAI,CAAC,KAAK,CACX,CACF,CACF,CACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,EAAe,EACf,KAAoB;IAEpB,OAAO,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"combineAll.js","sourceRoot":"","sources":["../src/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,UAAU,CACxB,GAAG,EAAM;IAQT,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,OAAO,CAAC,EAAE,CAAQ,CAAA;KAC1B;IAED,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAA;KACrC;IAED,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAA;QAErC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,IAAI,KAAK,MAAM;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CACR,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAE7C,CACF;YACH,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAClB,CAAA;QAED,KAAK,CAAC,CAAC,CAAC,CACN,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACtC,CAAC,CAAC,GAAG,CACH,IAAI,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAChB,OAAO,WAAW,CAAA;QACpB,CAAC,CAAC,EACJ,IAAI,CAAC,KAAK,CACX,CACF,CACF,CACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,EAAe,EACf,KAAoB;IAEpB,OAAO,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC"}
@@ -22,6 +22,7 @@ export * from './fromIterable.js';
22
22
  export * from './Fx.js';
23
23
  export * from './gen.js';
24
24
  export * from './hold.js';
25
+ export * from './keyed.js';
25
26
  export * from './map.js';
26
27
  export * from './mergeAll.js';
27
28
  export * from './multicast.js';
@@ -1 +1 @@
1
- {"version":3,"file":"data-first.d.ts","sourceRoot":"","sources":["../src/data-first.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"data-first.d.ts","sourceRoot":"","sources":["../src/data-first.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
@@ -22,6 +22,7 @@ export * from './fromIterable.js';
22
22
  export * from './Fx.js';
23
23
  export * from './gen.js';
24
24
  export * from './hold.js';
25
+ export * from './keyed.js';
25
26
  export * from './map.js';
26
27
  export * from './mergeAll.js';
27
28
  export * from './multicast.js';
@@ -1 +1 @@
1
- {"version":3,"file":"data-first.js","sourceRoot":"","sources":["../src/data-first.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"data-first.js","sourceRoot":"","sources":["../src/data-first.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
@@ -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,27 +1,8 @@
1
- import { pipe } from '@effect/data/Function';
2
1
  import { Fx, Sink } from './Fx.js';
3
- import { Cause, Effect, Fiber, Ref, Runtime } from './externals.js';
4
2
  import { fromEffect } from './fromEffect.js';
3
+ import { withExhaust } from './helpers.js';
5
4
  export function exhaustMap(fx, f) {
6
- return Fx((sink) => Effect.gen(function* ($) {
7
- const runFork = Runtime.runFork(yield* $(Effect.runtime()));
8
- const ref = yield* $(Ref.make(void 0));
9
- const reset = Ref.set(ref, void 0);
10
- const exhaustMapEvent = (a) => Effect.gen(function* ($) {
11
- const currentFiber = yield* $(Ref.get(ref));
12
- if (currentFiber) {
13
- return;
14
- }
15
- const fiber = pipe(f(a).run(Sink(sink.event, (cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause))), Effect.zipLeft(reset), Effect.catchAllCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause)), runFork);
16
- yield* $(Ref.set(ref, fiber));
17
- });
18
- yield* $(fx.run(Sink(exhaustMapEvent, sink.error)));
19
- // Wait for the last fiber to finish
20
- const fiber = yield* $(Ref.get(ref));
21
- if (fiber) {
22
- yield* $(Fiber.join(fiber));
23
- }
24
- }));
5
+ return Fx((sink) => withExhaust((fork) => fx.run(Sink((a) => fork(f(a).run(sink)), sink.error))));
25
6
  }
26
7
  export function exhaustMapEffect(fx, f) {
27
8
  return exhaustMap(fx, (a) => fromEffect(f(a)));
@@ -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,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,UAAU,UAAU,CACxB,EAAe,EACf,CAA0B;IAE1B,OAAO,EAAE,CAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,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;AAED,MAAM,UAAU,gBAAgB,CAC9B,EAAe,EACf,CAAqC;IAErC,OAAO,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,OAAO,CAAkB,EAA2B;IAClE,OAAO,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,EAAsC;IAEtC,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC"}
@@ -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"}
@@ -1,28 +1,11 @@
1
1
  import { pipe } from '@effect/data/Function';
2
2
  import { Fx, Sink } from './Fx.js';
3
- import { Cause, Effect, Either, Fiber, Ref, Runtime } from './externals.js';
3
+ import { Cause, Either } from './externals.js';
4
4
  import { failCause } from './failCause.js';
5
5
  import { fromEffect } from './fromEffect.js';
6
+ import { withExhaust } from './helpers.js';
6
7
  export function exhaustMapCause(fx, f) {
7
- return Fx((sink) => Effect.gen(function* ($) {
8
- const runFork = Runtime.runFork(yield* $(Effect.runtime()));
9
- const ref = yield* $(Ref.make(void 0));
10
- const reset = Ref.set(ref, void 0);
11
- const exhaustMapError = (cause) => Effect.gen(function* ($) {
12
- const currentFiber = yield* $(Ref.get(ref));
13
- if (currentFiber) {
14
- return;
15
- }
16
- const fiber = pipe(f(cause).run(Sink(sink.event, (cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause))), Effect.zipLeft(reset), Effect.catchAllCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause)), runFork);
17
- yield* $(Ref.set(ref, fiber));
18
- });
19
- yield* $(fx.run(Sink(sink.event, exhaustMapError)));
20
- // Wait for the last fiber to finish
21
- const fiber = yield* $(Ref.get(ref));
22
- if (fiber) {
23
- yield* $(Fiber.join(fiber));
24
- }
25
- }));
8
+ return Fx((sink) => withExhaust((fork) => fx.run(Sink(sink.event, (cause) => fork(f(cause).run(sink))))));
26
9
  }
27
10
  export function exhaustMapCauseEffect(fx, f) {
28
11
  return exhaustMapCause(fx, (a) => fromEffect(f(a)));
@@ -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,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,UAAU,eAAe,CAC7B,EAAe,EACf,CAA2C;IAE3C,OAAO,EAAE,CAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,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;AAED,MAAM,UAAU,qBAAqB,CACnC,EAAe,EACf,CAAsD;IAEtD,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,EAAe,EACf,CAA0B;IAE1B,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CACnC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,EAAe,EACf,CAAyC;IAEzC,OAAO,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC"}
@@ -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,54 +1,8 @@
1
- import { pipe } from '@effect/data/Function';
2
- import * as Option from '@effect/data/Option';
3
1
  import { Fx, Sink } from './Fx.js';
4
- import { Cause, Effect, Fiber, Ref, Runtime } from './externals.js';
5
2
  import { fromEffect } from './fromEffect.js';
3
+ import { withExhaustLatest } from './helpers.js';
6
4
  export function exhaustMapLatest(fx, f) {
7
- return Fx((sink) => Effect.gen(function* ($) {
8
- const runFork = Runtime.runFork(yield* $(Effect.runtime()));
9
- const ref = yield* $(Ref.make(void 0));
10
- const nextValue = yield* $(Ref.make(Option.none()));
11
- const reset = Ref.set(ref, void 0);
12
- // Wait for the current fiber to finish
13
- const awaitNext = Effect.gen(function* ($) {
14
- // Wait for the last fiber to finish
15
- const fiber = yield* $(Ref.get(ref));
16
- if (fiber) {
17
- // Wait for the fiber to end to check to see if we need to run another
18
- yield* $(Fiber.join(fiber));
19
- }
20
- });
21
- // Run the next value that's be saved for replay if it exists
22
- const runNext = Effect.gen(function* ($) {
23
- const next = yield* $(Ref.get(nextValue));
24
- if (Option.isSome(next)) {
25
- // Clear the next A to be replayed
26
- yield* $(Ref.set(nextValue, Option.none()));
27
- // Replay the next A
28
- yield* $(exhaustMapLatestEvent(next.value));
29
- // Ensure we don't close the scope until the last fiber completes
30
- yield* $(awaitNext);
31
- }
32
- });
33
- const exhaustMapLatestEvent = (a) => Effect.gen(function* ($) {
34
- const currentFiber = yield* $(Ref.get(ref));
35
- // Always allow the current fiber to continue
36
- if (currentFiber) {
37
- // Track the latest A to be replayed layer
38
- return yield* $(Ref.set(nextValue, Option.some(a)));
39
- }
40
- // Run our Fx with the current value
41
- const fiber = pipe(f(a).run(Sink(sink.event, (cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause))),
42
- // Clear the current fiber when finished
43
- Effect.zipRight(reset),
44
- // See if there's another value to replay
45
- Effect.zipRight(runNext), Effect.catchAllCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause)), runFork);
46
- yield* $(Ref.set(ref, fiber));
47
- });
48
- yield* $(fx.run(Sink(exhaustMapLatestEvent, sink.error)));
49
- // Wait for the last fiber to finish
50
- yield* $(awaitNext);
51
- }));
5
+ return Fx((sink) => withExhaustLatest((fork) => fx.run(Sink((a) => fork(f(a).run(sink)), sink.error))));
52
6
  }
53
7
  export function exhaustMapLatestEffect(fx, f) {
54
8
  return exhaustMapLatest(fx, (a) => fromEffect(f(a)));
@@ -1 +1 @@
1
- {"version":3,"file":"exhaustMapLatest.js","sourceRoot":"","sources":["../src/exhaustMapLatest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exhaustMapLatest.js","sourceRoot":"","sources":["../src/exhaustMapLatest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,UAAU,gBAAgB,CAC9B,EAAe,EACf,CAA0B;IAE1B,OAAO,EAAE,CAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,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;AAED,MAAM,UAAU,sBAAsB,CACpC,EAAe,EACf,CAAqC;IAErC,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAAkB,EAA2B;IACxE,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,EAAsC;IAEtC,OAAO,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC"}
@@ -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,55 +1,11 @@
1
1
  import { pipe } from '@effect/data/Function';
2
- import * as Option from '@effect/data/Option';
3
2
  import { Fx, Sink } from './Fx.js';
4
- import { Cause, Effect, Either, Fiber, Ref, Runtime } from './externals.js';
3
+ import { Cause, Either } from './externals.js';
5
4
  import { failCause } from './failCause.js';
6
5
  import { fromEffect } from './fromEffect.js';
6
+ import { withExhaustLatest } from './helpers.js';
7
7
  export function exhaustMapLatestCause(fx, f) {
8
- return Fx((sink) => Effect.gen(function* ($) {
9
- const runFork = Runtime.runFork(yield* $(Effect.runtime()));
10
- const ref = yield* $(Ref.make(void 0));
11
- const nextValue = yield* $(Ref.make(Option.none()));
12
- const reset = Ref.set(ref, void 0);
13
- // Wait for the current fiber to finish
14
- const awaitNext = Effect.gen(function* ($) {
15
- // Wait for the last fiber to finish
16
- const fiber = yield* $(Ref.get(ref));
17
- if (fiber) {
18
- // Wait for the fiber to end to check to see if we need to run another
19
- yield* $(Fiber.join(fiber));
20
- }
21
- });
22
- // Run the next value that's be saved for replay if it exists
23
- const runNext = Effect.gen(function* ($) {
24
- const next = yield* $(Ref.get(nextValue));
25
- if (Option.isSome(next)) {
26
- // Clear the next A to be replayed
27
- yield* $(Ref.set(nextValue, Option.none()));
28
- // Replay the next A
29
- yield* $(exhaustMapLatestError(next.value));
30
- // Ensure we don't close the scope until the last fiber completes
31
- yield* $(awaitNext);
32
- }
33
- });
34
- const exhaustMapLatestError = (cause) => Effect.gen(function* ($) {
35
- const currentFiber = yield* $(Ref.get(ref));
36
- // Always allow the current fiber to continue
37
- if (currentFiber) {
38
- // Track the latest A to be replayed layer
39
- return yield* $(Ref.set(nextValue, Option.some(cause)));
40
- }
41
- // Run our Fx with the current value
42
- const fiber = pipe(f(cause).run(Sink(sink.event, (cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause))),
43
- // Clear the current fiber when finished
44
- Effect.zipRight(reset),
45
- // See if there's another value to replay
46
- Effect.zipRight(runNext), Effect.catchAllCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.unit() : sink.error(cause)), runFork);
47
- yield* $(Ref.set(ref, fiber));
48
- });
49
- yield* $(fx.run(Sink(sink.event, exhaustMapLatestError)));
50
- // Wait for the last fiber to finish
51
- yield* $(awaitNext);
52
- }));
8
+ return Fx((sink) => withExhaustLatest((fork) => fx.run(Sink(sink.event, (cause) => fork(f(cause).run(sink))))));
53
9
  }
54
10
  export function exhaustMapLatestCauseEffect(fx, f) {
55
11
  return exhaustMapLatestCause(fx, (a) => fromEffect(f(a)));
@@ -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,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,UAAU,qBAAqB,CACnC,EAAe,EACf,CAA2C;IAE3C,OAAO,EAAE,CAAC,CAAK,IAAyB,EAAE,EAAE,CAC1C,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,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;AAED,MAAM,UAAU,2BAA2B,CACzC,EAAe,EACf,CAAsD;IAEtD,OAAO,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,EAAe,EACf,CAA0B;IAE1B,OAAO,qBAAqB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CACzC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,EAAe,EACf,CAAyC;IAEzC,OAAO,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC"}
@@ -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"}