@typed/fx 2.0.0-beta.4 → 2.0.0-beta.6

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 (663) hide show
  1. package/README.md +34 -20
  2. package/dist/Fx/Fx.d.ts +362 -10
  3. package/dist/Fx/Fx.d.ts.map +1 -1
  4. package/dist/Fx/Fx.js +32 -1
  5. package/dist/Fx/TypeId.d.ts +49 -3
  6. package/dist/Fx/TypeId.d.ts.map +1 -1
  7. package/dist/Fx/TypeId.js +39 -2
  8. package/dist/Fx/combinators/additive.d.ts +156 -5
  9. package/dist/Fx/combinators/additive.d.ts.map +1 -1
  10. package/dist/Fx/combinators/additive.js +156 -5
  11. package/dist/Fx/combinators/catch.d.ts +195 -22
  12. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  13. package/dist/Fx/combinators/catch.js +186 -16
  14. package/dist/Fx/combinators/causes.d.ts +24 -1
  15. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  16. package/dist/Fx/combinators/causes.js +24 -1
  17. package/dist/Fx/combinators/changesWithEffect.d.ts +20 -0
  18. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
  19. package/dist/Fx/combinators/changesWithEffect.js +20 -0
  20. package/dist/Fx/combinators/compact.d.ts +17 -0
  21. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  22. package/dist/Fx/combinators/compact.js +17 -0
  23. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  24. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  25. package/dist/Fx/combinators/concatMap.js +86 -0
  26. package/dist/Fx/combinators/continueWith.d.ts +109 -1
  27. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  28. package/dist/Fx/combinators/continueWith.js +109 -1
  29. package/dist/Fx/combinators/debounce.d.ts +34 -0
  30. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  31. package/dist/Fx/combinators/debounce.js +35 -0
  32. package/dist/Fx/combinators/delay.d.ts +34 -0
  33. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  34. package/dist/Fx/combinators/delay.js +31 -0
  35. package/dist/Fx/combinators/dropUntil.d.ts +42 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
  37. package/dist/Fx/combinators/dropUntil.js +42 -0
  38. package/dist/Fx/combinators/during.d.ts +38 -0
  39. package/dist/Fx/combinators/during.d.ts.map +1 -0
  40. package/dist/Fx/combinators/during.js +85 -0
  41. package/dist/Fx/combinators/ensuring.d.ts +33 -3
  42. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  43. package/dist/Fx/combinators/ensuring.js +33 -3
  44. package/dist/Fx/combinators/exhaustLatestMap.d.ts +40 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  46. package/dist/Fx/combinators/exhaustLatestMap.js +40 -4
  47. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +39 -3
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.js +39 -3
  50. package/dist/Fx/combinators/exhaustMap.d.ts +37 -0
  51. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  52. package/dist/Fx/combinators/exhaustMap.js +37 -0
  53. package/dist/Fx/combinators/exhaustMapEffect.d.ts +32 -0
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.js +32 -0
  56. package/dist/Fx/combinators/exit.d.ts +22 -1
  57. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  58. package/dist/Fx/combinators/exit.js +22 -1
  59. package/dist/Fx/combinators/filter.d.ts +16 -0
  60. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  61. package/dist/Fx/combinators/filter.js +16 -0
  62. package/dist/Fx/combinators/filterEffect.d.ts +21 -0
  63. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  64. package/dist/Fx/combinators/filterEffect.js +21 -0
  65. package/dist/Fx/combinators/filterMap.d.ts +19 -0
  66. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  67. package/dist/Fx/combinators/filterMap.js +19 -0
  68. package/dist/Fx/combinators/filterMapEffect.d.ts +20 -0
  69. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  70. package/dist/Fx/combinators/filterMapEffect.js +20 -0
  71. package/dist/Fx/combinators/filterMapLoop.d.ts +19 -0
  72. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  73. package/dist/Fx/combinators/filterMapLoop.js +19 -0
  74. package/dist/Fx/combinators/filterMapLoopCause.d.ts +20 -0
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.js +20 -0
  77. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +20 -0
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +20 -0
  80. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +20 -0
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.js +20 -0
  83. package/dist/Fx/combinators/flatMap.d.ts +48 -3
  84. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  85. package/dist/Fx/combinators/flatMap.js +35 -2
  86. package/dist/Fx/combinators/flatMapConcurrently.d.ts +50 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  88. package/dist/Fx/combinators/flatMapConcurrently.js +47 -1
  89. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +47 -3
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +39 -1
  92. package/dist/Fx/combinators/flatMapEffect.d.ts +44 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  94. package/dist/Fx/combinators/flatMapEffect.js +31 -1
  95. package/dist/Fx/combinators/flip.d.ts +33 -1
  96. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  97. package/dist/Fx/combinators/flip.js +33 -1
  98. package/dist/Fx/combinators/gen.d.ts +28 -9
  99. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  100. package/dist/Fx/combinators/gen.js +27 -3
  101. package/dist/Fx/combinators/genScoped.d.ts +32 -9
  102. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  103. package/dist/Fx/combinators/genScoped.js +30 -2
  104. package/dist/Fx/combinators/grouped.d.ts +89 -0
  105. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  106. package/dist/Fx/combinators/grouped.js +146 -0
  107. package/dist/Fx/combinators/index.d.ts +35 -0
  108. package/dist/Fx/combinators/index.d.ts.map +1 -1
  109. package/dist/Fx/combinators/index.js +35 -0
  110. package/dist/Fx/combinators/keyed.d.ts +121 -7
  111. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  112. package/dist/Fx/combinators/keyed.js +64 -6
  113. package/dist/Fx/combinators/loop.d.ts +16 -0
  114. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  115. package/dist/Fx/combinators/loop.js +16 -0
  116. package/dist/Fx/combinators/loopCause.d.ts +17 -0
  117. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  118. package/dist/Fx/combinators/loopCause.js +17 -0
  119. package/dist/Fx/combinators/loopCauseEffect.d.ts +18 -0
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  121. package/dist/Fx/combinators/loopCauseEffect.js +18 -0
  122. package/dist/Fx/combinators/loopEffect.d.ts +23 -0
  123. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  124. package/dist/Fx/combinators/loopEffect.js +23 -0
  125. package/dist/Fx/combinators/map.d.ts +45 -0
  126. package/dist/Fx/combinators/map.d.ts.map +1 -1
  127. package/dist/Fx/combinators/map.js +42 -0
  128. package/dist/Fx/combinators/mapBoth.d.ts +19 -0
  129. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
  130. package/dist/Fx/combinators/mapBoth.js +19 -0
  131. package/dist/Fx/combinators/mapEffect.d.ts +24 -0
  132. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  133. package/dist/Fx/combinators/mapEffect.js +24 -0
  134. package/dist/Fx/combinators/mapError.d.ts +20 -4
  135. package/dist/Fx/combinators/mapError.d.ts.map +1 -1
  136. package/dist/Fx/combinators/mapError.js +20 -4
  137. package/dist/Fx/combinators/mergeAll.d.ts +34 -0
  138. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  139. package/dist/Fx/combinators/mergeAll.js +34 -0
  140. package/dist/Fx/combinators/mergeOrdered.d.ts +35 -3
  141. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  142. package/dist/Fx/combinators/mergeOrdered.js +35 -3
  143. package/dist/Fx/combinators/onError.d.ts +33 -3
  144. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  145. package/dist/Fx/combinators/onError.js +33 -3
  146. package/dist/Fx/combinators/onExit.d.ts +28 -2
  147. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  148. package/dist/Fx/combinators/onExit.js +28 -2
  149. package/dist/Fx/combinators/onInterrupt.d.ts +48 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  151. package/dist/Fx/combinators/onInterrupt.js +48 -3
  152. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  153. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  154. package/dist/Fx/combinators/pairwise.js +31 -0
  155. package/dist/Fx/combinators/provide.d.ts +130 -9
  156. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  157. package/dist/Fx/combinators/provide.js +130 -9
  158. package/dist/Fx/combinators/race.d.ts +92 -0
  159. package/dist/Fx/combinators/race.d.ts.map +1 -0
  160. package/dist/Fx/combinators/race.js +149 -0
  161. package/dist/Fx/combinators/repeat.d.ts +41 -0
  162. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  163. package/dist/Fx/combinators/repeat.js +57 -0
  164. package/dist/Fx/combinators/result.d.ts +22 -0
  165. package/dist/Fx/combinators/result.d.ts.map +1 -1
  166. package/dist/Fx/combinators/result.js +26 -12
  167. package/dist/Fx/combinators/retry.d.ts +53 -0
  168. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  169. package/dist/Fx/combinators/retry.js +71 -0
  170. package/dist/Fx/combinators/sample.d.ts +31 -0
  171. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  172. package/dist/Fx/combinators/sample.js +42 -0
  173. package/dist/Fx/combinators/scan.d.ts +39 -0
  174. package/dist/Fx/combinators/scan.d.ts.map +1 -1
  175. package/dist/Fx/combinators/scan.js +39 -0
  176. package/dist/Fx/combinators/since.d.ts +30 -0
  177. package/dist/Fx/combinators/since.d.ts.map +1 -0
  178. package/dist/Fx/combinators/since.js +39 -0
  179. package/dist/Fx/combinators/skip.d.ts +31 -0
  180. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  181. package/dist/Fx/combinators/skip.js +31 -0
  182. package/dist/Fx/combinators/skipRepeats.d.ts +16 -0
  183. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  184. package/dist/Fx/combinators/skipRepeats.js +16 -0
  185. package/dist/Fx/combinators/skipRepeatsWith.d.ts +17 -0
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.js +17 -0
  188. package/dist/Fx/combinators/skipWhile.d.ts +68 -0
  189. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
  190. package/dist/Fx/combinators/skipWhile.js +68 -0
  191. package/dist/Fx/combinators/slice.d.ts +82 -0
  192. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  193. package/dist/Fx/combinators/slice.js +33 -0
  194. package/dist/Fx/combinators/switchMap.d.ts +38 -0
  195. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  196. package/dist/Fx/combinators/switchMap.js +38 -0
  197. package/dist/Fx/combinators/switchMapEffect.d.ts +37 -0
  198. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  199. package/dist/Fx/combinators/switchMapEffect.js +37 -0
  200. package/dist/Fx/combinators/take.d.ts +32 -0
  201. package/dist/Fx/combinators/take.d.ts.map +1 -1
  202. package/dist/Fx/combinators/take.js +32 -0
  203. package/dist/Fx/combinators/takeUntil.d.ts +46 -0
  204. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  205. package/dist/Fx/combinators/takeUntil.js +46 -0
  206. package/dist/Fx/combinators/takeWhile.d.ts +31 -0
  207. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
  208. package/dist/Fx/combinators/takeWhile.js +31 -0
  209. package/dist/Fx/combinators/tapEffect.d.ts +16 -0
  210. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  211. package/dist/Fx/combinators/tapEffect.js +16 -0
  212. package/dist/Fx/combinators/throttle.d.ts +79 -0
  213. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  214. package/dist/Fx/combinators/throttle.js +99 -0
  215. package/dist/Fx/combinators/timeout.d.ts +76 -0
  216. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  217. package/dist/Fx/combinators/timeout.js +110 -0
  218. package/dist/Fx/combinators/tuple.d.ts +30 -0
  219. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  220. package/dist/Fx/combinators/tuple.js +34 -3
  221. package/dist/Fx/combinators/until.d.ts +27 -0
  222. package/dist/Fx/combinators/until.d.ts.map +1 -0
  223. package/dist/Fx/combinators/until.js +56 -0
  224. package/dist/Fx/combinators/unwrap.d.ts +29 -0
  225. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  226. package/dist/Fx/combinators/unwrap.js +29 -0
  227. package/dist/Fx/combinators/unwrapScoped.d.ts +33 -0
  228. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  229. package/dist/Fx/combinators/unwrapScoped.js +33 -0
  230. package/dist/Fx/combinators/when.d.ts +35 -0
  231. package/dist/Fx/combinators/when.d.ts.map +1 -1
  232. package/dist/Fx/combinators/when.js +36 -1
  233. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  234. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  235. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  236. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  237. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  238. package/dist/Fx/combinators/withSpan.js +34 -3
  239. package/dist/Fx/combinators/zip.d.ts +60 -0
  240. package/dist/Fx/combinators/zip.d.ts.map +1 -1
  241. package/dist/Fx/combinators/zip.js +60 -0
  242. package/dist/Fx/constructors/at.d.ts +20 -0
  243. package/dist/Fx/constructors/at.d.ts.map +1 -1
  244. package/dist/Fx/constructors/at.js +20 -0
  245. package/dist/Fx/constructors/die.d.ts +21 -0
  246. package/dist/Fx/constructors/die.d.ts.map +1 -1
  247. package/dist/Fx/constructors/die.js +21 -0
  248. package/dist/Fx/constructors/empty.d.ts +18 -0
  249. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  250. package/dist/Fx/constructors/empty.js +18 -0
  251. package/dist/Fx/constructors/fail.d.ts +21 -0
  252. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  253. package/dist/Fx/constructors/fail.js +21 -0
  254. package/dist/Fx/constructors/failCause.d.ts +22 -0
  255. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  256. package/dist/Fx/constructors/failCause.js +22 -0
  257. package/dist/Fx/constructors/fn.d.ts +113 -13
  258. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  259. package/dist/Fx/constructors/fn.js +36 -0
  260. package/dist/Fx/constructors/fromEffect.d.ts +43 -1
  261. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  262. package/dist/Fx/constructors/fromEffect.js +43 -1
  263. package/dist/Fx/constructors/fromFailures.d.ts +24 -0
  264. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  265. package/dist/Fx/constructors/fromFailures.js +24 -0
  266. package/dist/Fx/constructors/fromIterable.d.ts +22 -0
  267. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  268. package/dist/Fx/constructors/fromIterable.js +22 -0
  269. package/dist/Fx/constructors/fromSchedule.d.ts +23 -0
  270. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  271. package/dist/Fx/constructors/fromSchedule.js +25 -2
  272. package/dist/Fx/constructors/index.d.ts +2 -1
  273. package/dist/Fx/constructors/index.d.ts.map +1 -1
  274. package/dist/Fx/constructors/index.js +2 -1
  275. package/dist/Fx/constructors/interrupt.d.ts +21 -1
  276. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  277. package/dist/Fx/constructors/interrupt.js +21 -1
  278. package/dist/Fx/constructors/make.d.ts +146 -1
  279. package/dist/Fx/constructors/make.d.ts.map +1 -1
  280. package/dist/Fx/constructors/make.js +54 -3
  281. package/dist/Fx/constructors/periodic.d.ts +29 -0
  282. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  283. package/dist/Fx/constructors/periodic.js +29 -0
  284. package/dist/Fx/constructors/succeed.d.ts +75 -3
  285. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  286. package/dist/Fx/constructors/succeed.js +75 -3
  287. package/dist/Fx/constructors/suspend.d.ts +28 -0
  288. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  289. package/dist/Fx/constructors/suspend.js +28 -0
  290. package/dist/Fx/constructors/sync.d.ts +32 -0
  291. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  292. package/dist/Fx/constructors/sync.js +32 -0
  293. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  294. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  295. package/dist/Fx/internal/DeferredRef.js +260 -9
  296. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  297. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  298. package/dist/Fx/internal/diff.d.ts +586 -0
  299. package/dist/Fx/internal/diff.d.ts.map +1 -1
  300. package/dist/Fx/internal/diff.js +120 -9
  301. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  304. package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  306. package/dist/Fx/internal/effectableWithOverride.js +46 -0
  307. package/dist/Fx/internal/equivalence.d.ts +29 -0
  308. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  309. package/dist/Fx/internal/equivalence.js +29 -0
  310. package/dist/Fx/internal/multicast.d.ts +145 -2
  311. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  312. package/dist/Fx/internal/multicast.js +146 -4
  313. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  314. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  315. package/dist/Fx/internal/ring-buffer.js +155 -0
  316. package/dist/Fx/internal/scope.d.ts +184 -0
  317. package/dist/Fx/internal/scope.d.ts.map +1 -1
  318. package/dist/Fx/internal/scope.js +150 -0
  319. package/dist/Fx/internal/yieldable.d.ts +117 -2
  320. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  321. package/dist/Fx/internal/yieldable.js +86 -3
  322. package/dist/Fx/run/collect.d.ts +89 -0
  323. package/dist/Fx/run/collect.d.ts.map +1 -1
  324. package/dist/Fx/run/collect.js +90 -1
  325. package/dist/Fx/run/first.d.ts +22 -0
  326. package/dist/Fx/run/first.d.ts.map +1 -1
  327. package/dist/Fx/run/first.js +22 -0
  328. package/dist/Fx/run/fork.d.ts +50 -0
  329. package/dist/Fx/run/fork.d.ts.map +1 -1
  330. package/dist/Fx/run/fork.js +50 -0
  331. package/dist/Fx/run/observe.d.ts +106 -0
  332. package/dist/Fx/run/observe.d.ts.map +1 -1
  333. package/dist/Fx/run/observe.js +106 -0
  334. package/dist/Fx/run/runPromise.d.ts +43 -0
  335. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  336. package/dist/Fx/run/runPromise.js +43 -0
  337. package/dist/Fx/stream.d.ts +92 -0
  338. package/dist/Fx/stream.d.ts.map +1 -1
  339. package/dist/Fx/stream.js +60 -1
  340. package/dist/Push/Push.d.ts +1216 -91
  341. package/dist/Push/Push.d.ts.map +1 -1
  342. package/dist/Push/Push.js +1012 -83
  343. package/dist/RefArray.d.ts +2 -0
  344. package/dist/RefArray.d.ts.map +1 -0
  345. package/dist/RefArray.js +1 -0
  346. package/dist/RefBigDecimal.d.ts +2 -0
  347. package/dist/RefBigDecimal.d.ts.map +1 -0
  348. package/dist/RefBigDecimal.js +1 -0
  349. package/dist/RefBigInt.d.ts +2 -0
  350. package/dist/RefBigInt.d.ts.map +1 -0
  351. package/dist/RefBigInt.js +1 -0
  352. package/dist/RefBoolean.d.ts +2 -0
  353. package/dist/RefBoolean.d.ts.map +1 -0
  354. package/dist/RefBoolean.js +1 -0
  355. package/dist/RefCause.d.ts +2 -0
  356. package/dist/RefCause.d.ts.map +1 -0
  357. package/dist/RefCause.js +1 -0
  358. package/dist/RefChunk.d.ts +2 -0
  359. package/dist/RefChunk.d.ts.map +1 -0
  360. package/dist/RefChunk.js +1 -0
  361. package/dist/RefDateTime.d.ts +2 -0
  362. package/dist/RefDateTime.d.ts.map +1 -0
  363. package/dist/RefDateTime.js +1 -0
  364. package/dist/RefDuration.d.ts +2 -0
  365. package/dist/RefDuration.d.ts.map +1 -0
  366. package/dist/RefDuration.js +1 -0
  367. package/dist/RefGraph.d.ts +2 -0
  368. package/dist/RefGraph.d.ts.map +1 -0
  369. package/dist/RefGraph.js +1 -0
  370. package/dist/RefHashMap.d.ts +2 -0
  371. package/dist/RefHashMap.d.ts.map +1 -0
  372. package/dist/RefHashMap.js +1 -0
  373. package/dist/RefHashRing.d.ts +2 -0
  374. package/dist/RefHashRing.d.ts.map +1 -0
  375. package/dist/RefHashRing.js +1 -0
  376. package/dist/RefHashSet.d.ts +2 -0
  377. package/dist/RefHashSet.d.ts.map +1 -0
  378. package/dist/RefHashSet.js +1 -0
  379. package/dist/RefIterable.d.ts +2 -0
  380. package/dist/RefIterable.d.ts.map +1 -0
  381. package/dist/RefIterable.js +1 -0
  382. package/dist/RefOption.d.ts +2 -0
  383. package/dist/RefOption.d.ts.map +1 -0
  384. package/dist/RefOption.js +1 -0
  385. package/dist/RefRecord.d.ts +2 -0
  386. package/dist/RefRecord.d.ts.map +1 -0
  387. package/dist/RefRecord.js +1 -0
  388. package/dist/RefResult.d.ts +2 -0
  389. package/dist/RefResult.d.ts.map +1 -0
  390. package/dist/RefResult.js +1 -0
  391. package/dist/RefString.d.ts +2 -0
  392. package/dist/RefString.d.ts.map +1 -0
  393. package/dist/RefString.js +1 -0
  394. package/dist/RefStruct.d.ts +2 -0
  395. package/dist/RefStruct.d.ts.map +1 -0
  396. package/dist/RefStruct.js +1 -0
  397. package/dist/RefSubject/Hydration.d.ts +504 -0
  398. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  399. package/dist/RefSubject/Hydration.js +300 -0
  400. package/dist/RefSubject/RefArray.d.ts +351 -4
  401. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  402. package/dist/RefSubject/RefArray.js +339 -3
  403. package/dist/RefSubject/RefBigDecimal.d.ts +221 -1
  404. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  405. package/dist/RefSubject/RefBigDecimal.js +210 -1
  406. package/dist/RefSubject/RefBigInt.d.ts +166 -1
  407. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  408. package/dist/RefSubject/RefBigInt.js +155 -1
  409. package/dist/RefSubject/RefBoolean.d.ts +166 -1
  410. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  411. package/dist/RefSubject/RefBoolean.js +155 -1
  412. package/dist/RefSubject/RefCause.d.ts +122 -1
  413. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  414. package/dist/RefSubject/RefCause.js +111 -1
  415. package/dist/RefSubject/RefChunk.d.ts +406 -1
  416. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  417. package/dist/RefSubject/RefChunk.js +394 -0
  418. package/dist/RefSubject/RefDateTime.d.ts +122 -1
  419. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  420. package/dist/RefSubject/RefDateTime.js +111 -1
  421. package/dist/RefSubject/RefDuration.d.ts +155 -1
  422. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  423. package/dist/RefSubject/RefDuration.js +144 -1
  424. package/dist/RefSubject/RefGraph.d.ts +320 -6
  425. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  426. package/dist/RefSubject/RefGraph.js +303 -0
  427. package/dist/RefSubject/RefHashMap.d.ts +296 -1
  428. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  429. package/dist/RefSubject/RefHashMap.js +284 -0
  430. package/dist/RefSubject/RefHashRing.d.ts +146 -2
  431. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  432. package/dist/RefSubject/RefHashRing.js +133 -0
  433. package/dist/RefSubject/RefHashSet.d.ts +230 -1
  434. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  435. package/dist/RefSubject/RefHashSet.js +218 -0
  436. package/dist/RefSubject/RefIterable.d.ts +327 -1
  437. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  438. package/dist/RefSubject/RefIterable.js +315 -0
  439. package/dist/RefSubject/RefOption.d.ts +144 -1
  440. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  441. package/dist/RefSubject/RefOption.js +133 -1
  442. package/dist/RefSubject/RefRecord.d.ts +339 -1
  443. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  444. package/dist/RefSubject/RefRecord.js +327 -0
  445. package/dist/RefSubject/RefResult.d.ts +155 -23
  446. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  447. package/dist/RefSubject/RefResult.js +122 -1
  448. package/dist/RefSubject/RefString.d.ts +188 -1
  449. package/dist/RefSubject/RefString.d.ts.map +1 -1
  450. package/dist/RefSubject/RefString.js +177 -1
  451. package/dist/RefSubject/RefStruct.d.ts +156 -1
  452. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  453. package/dist/RefSubject/RefStruct.js +145 -1
  454. package/dist/RefSubject/RefSubject.d.ts +1166 -13
  455. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  456. package/dist/RefSubject/RefSubject.js +843 -51
  457. package/dist/RefSubject/RefTrie.d.ts +290 -4
  458. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  459. package/dist/RefSubject/RefTrie.js +278 -3
  460. package/dist/RefSubject/RefTuple.d.ts +117 -1
  461. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  462. package/dist/RefSubject/RefTuple.js +106 -1
  463. package/dist/RefSubject/index.d.ts +1 -0
  464. package/dist/RefSubject/index.d.ts.map +1 -1
  465. package/dist/RefSubject/index.js +1 -0
  466. package/dist/RefSubject.d.ts +2 -1
  467. package/dist/RefSubject.d.ts.map +1 -1
  468. package/dist/RefSubject.js +2 -1
  469. package/dist/RefTrie.d.ts +2 -0
  470. package/dist/RefTrie.d.ts.map +1 -0
  471. package/dist/RefTrie.js +1 -0
  472. package/dist/RefTuple.d.ts +2 -0
  473. package/dist/RefTuple.d.ts.map +1 -0
  474. package/dist/RefTuple.js +1 -0
  475. package/dist/Sink/Sink.d.ts +381 -10
  476. package/dist/Sink/Sink.d.ts.map +1 -1
  477. package/dist/Sink/Sink.js +49 -2
  478. package/dist/Sink/combinators.d.ts +731 -2
  479. package/dist/Sink/combinators.d.ts.map +1 -1
  480. package/dist/Sink/combinators.js +706 -4
  481. package/dist/Subject/Subject.d.ts +1013 -19
  482. package/dist/Subject/Subject.d.ts.map +1 -1
  483. package/dist/Subject/Subject.js +901 -36
  484. package/dist/Versioned/Versioned.d.ts +424 -7
  485. package/dist/Versioned/Versioned.d.ts.map +1 -1
  486. package/dist/Versioned/Versioned.js +238 -12
  487. package/dist/index.d.ts +22 -3
  488. package/dist/index.d.ts.map +1 -1
  489. package/dist/index.js +22 -3
  490. package/package.json +123 -14
  491. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  492. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  493. package/dist/Fx/constructors/fromYieldable.js +0 -12
  494. package/src/Fx/Fx.ts +0 -164
  495. package/src/Fx/TypeId.ts +0 -25
  496. package/src/Fx/combinators/additive.ts +0 -142
  497. package/src/Fx/combinators/catch.ts +0 -416
  498. package/src/Fx/combinators/causes.ts +0 -23
  499. package/src/Fx/combinators/changesWithEffect.ts +0 -66
  500. package/src/Fx/combinators/compact.ts +0 -15
  501. package/src/Fx/combinators/continueWith.ts +0 -78
  502. package/src/Fx/combinators/dropUntil.ts +0 -47
  503. package/src/Fx/combinators/ensuring.ts +0 -23
  504. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  505. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  506. package/src/Fx/combinators/exhaustMap.ts +0 -36
  507. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  508. package/src/Fx/combinators/exit.ts +0 -15
  509. package/src/Fx/combinators/filter.ts +0 -22
  510. package/src/Fx/combinators/filterEffect.ts +0 -31
  511. package/src/Fx/combinators/filterMap.ts +0 -23
  512. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  513. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  514. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  515. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  516. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  517. package/src/Fx/combinators/flatMap.ts +0 -51
  518. package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
  519. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  520. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  521. package/src/Fx/combinators/flip.ts +0 -14
  522. package/src/Fx/combinators/gen.ts +0 -24
  523. package/src/Fx/combinators/genScoped.ts +0 -24
  524. package/src/Fx/combinators/index.ts +0 -61
  525. package/src/Fx/combinators/keyed.ts +0 -369
  526. package/src/Fx/combinators/loop.ts +0 -27
  527. package/src/Fx/combinators/loopCause.ts +0 -34
  528. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  529. package/src/Fx/combinators/loopEffect.ts +0 -34
  530. package/src/Fx/combinators/map.ts +0 -22
  531. package/src/Fx/combinators/mapBoth.ts +0 -40
  532. package/src/Fx/combinators/mapEffect.ts +0 -32
  533. package/src/Fx/combinators/mapError.ts +0 -28
  534. package/src/Fx/combinators/mergeAll.ts +0 -22
  535. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  536. package/src/Fx/combinators/onError.ts +0 -40
  537. package/src/Fx/combinators/onExit.ts +0 -82
  538. package/src/Fx/combinators/onInterrupt.ts +0 -87
  539. package/src/Fx/combinators/provide.ts +0 -124
  540. package/src/Fx/combinators/result.ts +0 -39
  541. package/src/Fx/combinators/scan.ts +0 -82
  542. package/src/Fx/combinators/skip.ts +0 -41
  543. package/src/Fx/combinators/skipRepeats.ts +0 -15
  544. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  545. package/src/Fx/combinators/skipWhile.ts +0 -100
  546. package/src/Fx/combinators/slice.ts +0 -55
  547. package/src/Fx/combinators/switchMap.ts +0 -55
  548. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  549. package/src/Fx/combinators/take.ts +0 -38
  550. package/src/Fx/combinators/takeUntil.ts +0 -88
  551. package/src/Fx/combinators/takeWhile.ts +0 -47
  552. package/src/Fx/combinators/tapEffect.ts +0 -39
  553. package/src/Fx/combinators/tuple.ts +0 -79
  554. package/src/Fx/combinators/unwrap.ts +0 -21
  555. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  556. package/src/Fx/combinators/when.ts +0 -64
  557. package/src/Fx/combinators/withSpan.ts +0 -24
  558. package/src/Fx/combinators/zip.ts +0 -175
  559. package/src/Fx/constructors/at.ts +0 -23
  560. package/src/Fx/constructors/die.ts +0 -17
  561. package/src/Fx/constructors/empty.ts +0 -10
  562. package/src/Fx/constructors/fail.ts +0 -14
  563. package/src/Fx/constructors/failCause.ts +0 -14
  564. package/src/Fx/constructors/fn.ts +0 -245
  565. package/src/Fx/constructors/fromEffect.ts +0 -24
  566. package/src/Fx/constructors/fromFailures.ts +0 -19
  567. package/src/Fx/constructors/fromIterable.ts +0 -15
  568. package/src/Fx/constructors/fromSchedule.ts +0 -18
  569. package/src/Fx/constructors/fromYieldable.ts +0 -17
  570. package/src/Fx/constructors/index.ts +0 -15
  571. package/src/Fx/constructors/interrupt.ts +0 -13
  572. package/src/Fx/constructors/make.ts +0 -103
  573. package/src/Fx/constructors/periodic.ts +0 -15
  574. package/src/Fx/constructors/succeed.ts +0 -37
  575. package/src/Fx/constructors/suspend.ts +0 -6
  576. package/src/Fx/index.ts +0 -6
  577. package/src/Fx/internal/DeferredRef.ts +0 -87
  578. package/src/Fx/internal/UnionToTuple.ts +0 -12
  579. package/src/Fx/internal/diff.ts +0 -191
  580. package/src/Fx/internal/equivalence.ts +0 -12
  581. package/src/Fx/internal/multicast.ts +0 -51
  582. package/src/Fx/internal/ring-buffer.ts +0 -60
  583. package/src/Fx/internal/scope.ts +0 -58
  584. package/src/Fx/internal/yieldable.ts +0 -31
  585. package/src/Fx/run/collect.ts +0 -79
  586. package/src/Fx/run/first.ts +0 -20
  587. package/src/Fx/run/fork.ts +0 -40
  588. package/src/Fx/run/index.ts +0 -5
  589. package/src/Fx/run/observe.ts +0 -114
  590. package/src/Fx/run/runPromise.ts +0 -32
  591. package/src/Fx/stream.ts +0 -42
  592. package/src/Fx.additive-combinators.test.ts +0 -126
  593. package/src/Fx.catch-additive.test.ts +0 -206
  594. package/src/Fx.catch.test.ts +0 -60
  595. package/src/Fx.dropUntil.test.ts +0 -61
  596. package/src/Fx.fn.test.ts +0 -51
  597. package/src/Fx.lifecycle.test.ts +0 -79
  598. package/src/Fx.mapError-mapBoth.test.ts +0 -101
  599. package/src/Fx.provide-combinators.test.ts +0 -94
  600. package/src/Fx.result-changesWithEffect.test.ts +0 -112
  601. package/src/Fx.scan.test.ts +0 -73
  602. package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
  603. package/src/Fx.test.ts +0 -71
  604. package/src/Fx.ts +0 -1
  605. package/src/Fx.zip-merge-additive.test.ts +0 -171
  606. package/src/Fx.zip.test.ts +0 -133
  607. package/src/Push/Push.ts +0 -1093
  608. package/src/Push/index.ts +0 -1
  609. package/src/Push.additive.test.ts +0 -256
  610. package/src/Push.test.ts +0 -26
  611. package/src/Push.ts +0 -1
  612. package/src/RefSubject/RefArray.ts +0 -516
  613. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  614. package/src/RefSubject/RefBigDecimal.ts +0 -295
  615. package/src/RefSubject/RefBigInt.test.ts +0 -56
  616. package/src/RefSubject/RefBigInt.ts +0 -189
  617. package/src/RefSubject/RefBoolean.test.ts +0 -57
  618. package/src/RefSubject/RefBoolean.ts +0 -185
  619. package/src/RefSubject/RefCause.test.ts +0 -53
  620. package/src/RefSubject/RefCause.ts +0 -146
  621. package/src/RefSubject/RefChunk.ts +0 -516
  622. package/src/RefSubject/RefDateTime.test.ts +0 -43
  623. package/src/RefSubject/RefDateTime.ts +0 -261
  624. package/src/RefSubject/RefDuration.test.ts +0 -49
  625. package/src/RefSubject/RefDuration.ts +0 -188
  626. package/src/RefSubject/RefGraph.ts +0 -649
  627. package/src/RefSubject/RefHashMap.ts +0 -474
  628. package/src/RefSubject/RefHashRing.ts +0 -262
  629. package/src/RefSubject/RefHashSet.ts +0 -308
  630. package/src/RefSubject/RefIterable.ts +0 -454
  631. package/src/RefSubject/RefOption.test.ts +0 -67
  632. package/src/RefSubject/RefOption.ts +0 -193
  633. package/src/RefSubject/RefRecord.ts +0 -621
  634. package/src/RefSubject/RefResult.test.ts +0 -63
  635. package/src/RefSubject/RefResult.ts +0 -209
  636. package/src/RefSubject/RefString.test.ts +0 -61
  637. package/src/RefSubject/RefString.ts +0 -256
  638. package/src/RefSubject/RefStruct.test.ts +0 -60
  639. package/src/RefSubject/RefStruct.ts +0 -253
  640. package/src/RefSubject/RefSubject.ts +0 -2642
  641. package/src/RefSubject/RefTrie.ts +0 -365
  642. package/src/RefSubject/RefTuple.test.ts +0 -60
  643. package/src/RefSubject/RefTuple.ts +0 -231
  644. package/src/RefSubject/index.ts +0 -21
  645. package/src/RefSubject.additive-parity.test.ts +0 -101
  646. package/src/RefSubject.test.ts +0 -65
  647. package/src/RefSubject.ts +0 -1
  648. package/src/Sink/Sink.ts +0 -159
  649. package/src/Sink/combinators.ts +0 -1115
  650. package/src/Sink/index.ts +0 -2
  651. package/src/Sink.combinators.test.ts +0 -88
  652. package/src/Sink.reduce-collect-head-last.test.ts +0 -107
  653. package/src/Sink.ts +0 -1
  654. package/src/Subject/Subject.ts +0 -440
  655. package/src/Subject/index.ts +0 -1
  656. package/src/Subject.test.ts +0 -47
  657. package/src/Subject.ts +0 -1
  658. package/src/Versioned/Versioned.ts +0 -595
  659. package/src/Versioned/index.ts +0 -1
  660. package/src/Versioned.filterMap.test.ts +0 -91
  661. package/src/Versioned.test.ts +0 -23
  662. package/src/Versioned.ts +0 -1
  663. package/src/index.ts +0 -7
@@ -1,74 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Fiber from "effect/Fiber";
3
- import { dual } from "effect/Function";
4
- import type * as Scope from "effect/Scope";
5
- import { make as makeSink, type Sink } from "../../Sink/Sink.js";
6
- import { make } from "../constructors/make.js";
7
- import type { Fx } from "../Fx.js";
8
- import { extendScope } from "../internal/scope.js";
9
- import type { FlatMapLike } from "./flatMap.js";
10
-
11
- /**
12
- * Maps each element of an Fx to a new Fx, but only runs one inner Fx at a time.
13
- * If a new element arrives while an inner Fx is running, the new element is buffered (overwriting any previously buffered value).
14
- * When the current inner Fx completes, the latest buffered Fx is run.
15
- *
16
- * This is useful for scenarios where you want to ignore intermediate values but ensure the latest value is eventually processed.
17
- *
18
- * @param f - A function that maps an element `A` to a new `Fx<B>`.
19
- * @returns An `Fx` that emits values from the inner streams.
20
- * @since 1.0.0
21
- * @category combinators
22
- */
23
- export const exhaustLatestMap: FlatMapLike = dual(
24
- 2,
25
- <A, E, R, B, E2, R2>(
26
- self: Fx<A, E, R>,
27
- f: (a: A) => Fx<B, E2, R2>,
28
- ): Fx<B, E | E2, R | R2 | Scope.Scope> => {
29
- return make<B, E | E2, R | R2 | Scope.Scope>(
30
- Effect.fn(function* <RSink>(sink: Sink<B, E | E2, RSink>) {
31
- let runningFiber: Fiber.Fiber<unknown, never> | undefined = undefined;
32
- let nextEffectToFork: Effect.Effect<unknown, never, R2 | RSink> | undefined = undefined;
33
-
34
- const scope = yield* Effect.scope;
35
-
36
- const fork = (
37
- effect: Effect.Effect<unknown, never, R2 | RSink>,
38
- ): Effect.Effect<Fiber.Fiber<unknown, never>, never, RSink | R2> =>
39
- Effect.forkIn(
40
- effect.pipe(Effect.ensuring(Effect.zip(resetRunningFiber, runNext))),
41
- scope,
42
- );
43
-
44
- const resetRunningFiber: Effect.Effect<void, never, never> = Effect.sync(
45
- () => (runningFiber = undefined),
46
- );
47
-
48
- const runNext: Effect.Effect<void, never, R2 | RSink> = Effect.gen(function* () {
49
- if (nextEffectToFork !== undefined) {
50
- const eff = nextEffectToFork;
51
- nextEffectToFork = undefined;
52
- yield* exhaustLatestFork(eff);
53
- // Ensure we don't close the scope until the last fiber completes
54
- if (runningFiber !== undefined) yield* Fiber.join(runningFiber);
55
- }
56
- });
57
-
58
- const exhaustLatestFork = Effect.fn(function* (
59
- eff: Effect.Effect<void, never, R2 | RSink>,
60
- ) {
61
- if (runningFiber === undefined) {
62
- runningFiber = yield* fork(eff);
63
- } else {
64
- nextEffectToFork = eff;
65
- }
66
- });
67
-
68
- yield* self.run(makeSink(sink.onFailure, (a) => exhaustLatestFork(f(a).run(sink))));
69
-
70
- if (runningFiber !== undefined) yield* Fiber.join(runningFiber as Fiber.Fiber<void, never>);
71
- }, extendScope),
72
- );
73
- },
74
- );
@@ -1,25 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import { dual, flow } from "effect/Function";
3
- import type * as Scope from "effect/Scope";
4
- import { fromEffect } from "../constructors/fromEffect.js";
5
- import type { Fx } from "../Fx.js";
6
- import { exhaustLatestMap } from "./exhaustLatestMap.js";
7
- import type { FlatMapEffectLike } from "./flatMapEffect.js";
8
-
9
- /**
10
- * Maps each element of an Fx to an Effect, but only runs one effect at a time.
11
- * If a new element arrives while an effect is running, the new element is buffered (overwriting any previously buffered value).
12
- * When the current effect completes, the latest buffered effect is run.
13
- *
14
- * @param f - A function that maps an element `A` to an `Effect<B>`.
15
- * @returns An `Fx` that emits the results of the effects.
16
- * @since 1.0.0
17
- * @category combinators
18
- */
19
- export const exhaustLatestMapEffect: FlatMapEffectLike = dual(
20
- 2,
21
- <A, E, R, B, E2, R2>(
22
- self: Fx<A, E, R>,
23
- f: (a: A) => Effect.Effect<B, E2, R2>,
24
- ): Fx<B, E | E2, R | R2 | Scope.Scope> => exhaustLatestMap(self, flow(f, fromEffect)),
25
- );
@@ -1,36 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FiberHandle from "effect/FiberHandle";
3
- import { dual } from "effect/Function";
4
- import type * as Scope from "effect/Scope";
5
- import { make as makeSink } from "../../Sink/Sink.js";
6
- import { make } from "../constructors/make.js";
7
- import type { Fx } from "../Fx.js";
8
- import { extendScope } from "../internal/scope.js";
9
- import type { FlatMapLike } from "./flatMap.js";
10
-
11
- /**
12
- * Maps each element of an Fx to a new Fx, ignoring new elements until the current inner Fx completes.
13
- *
14
- * @param f - A function that maps an element `A` to a new `Fx<B>`.
15
- * @returns An `Fx` that emits values from the active inner stream.
16
- * @since 1.0.0
17
- * @category combinators
18
- */
19
- export const exhaustMap: FlatMapLike = dual(
20
- 2,
21
- <A, E, R, B, E2, R2>(
22
- self: Fx<A, E, R>,
23
- f: (a: A) => Fx<B, E2, R2>,
24
- ): Fx<B, E | E2, R | R2 | Scope.Scope> =>
25
- make<B, E | E2, R | R2 | Scope.Scope>(
26
- Effect.fn(function* (sink) {
27
- const handle = yield* FiberHandle.make<void, never>();
28
- yield* self.run(
29
- makeSink(sink.onFailure, (a) =>
30
- FiberHandle.run(handle, f(a).run(sink), { onlyIfMissing: true }),
31
- ),
32
- );
33
- yield* FiberHandle.awaitEmpty(handle);
34
- }, extendScope),
35
- ),
36
- );
@@ -1,23 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import { dual, flow } from "effect/Function";
3
- import type * as Scope from "effect/Scope";
4
- import { fromEffect } from "../constructors/fromEffect.js";
5
- import type { Fx } from "../Fx.js";
6
- import { exhaustMap } from "./exhaustMap.js";
7
- import type { FlatMapEffectLike } from "./flatMapEffect.js";
8
-
9
- /**
10
- * Maps each element of an Fx to an Effect, ignoring new elements until the current effect completes.
11
- *
12
- * @param f - A function that maps an element `A` to an `Effect<B>`.
13
- * @returns An `Fx` that emits the results of the active effect.
14
- * @since 1.0.0
15
- * @category combinators
16
- */
17
- export const exhaustMapEffect: FlatMapEffectLike = dual(
18
- 2,
19
- <A, E, R, B, E2, R2>(
20
- self: Fx<A, E, R>,
21
- f: (a: A) => Effect.Effect<B, E2, R2>,
22
- ): Fx<B, E | E2, R | R2 | Scope.Scope> => exhaustMap(self, flow(f, fromEffect)),
23
- );
@@ -1,15 +0,0 @@
1
- import type * as Exit from "effect/Exit";
2
- import * as sinkCore from "../../Sink/combinators.js";
3
- import { make } from "../constructors/make.js";
4
- import type { Fx } from "../Fx.js";
5
-
6
- /**
7
- * Materializes the success and failure of an Fx into `Exit` values.
8
- *
9
- * @param fx - The `Fx` stream.
10
- * @returns An `Fx` emitting `Exit<A, E>`.
11
- * @since 1.0.0
12
- * @category combinators
13
- */
14
- export const exit = <A, E, R>(fx: Fx<A, E, R>): Fx<Exit.Exit<A, E>, never, R> =>
15
- make<Exit.Exit<A, E>, never, R>((sink) => fx.run(sinkCore.exit(sink)));
@@ -1,22 +0,0 @@
1
- import { dual } from "effect/Function";
2
- import * as sinkCore from "../../Sink/combinators.js";
3
- import { make } from "../constructors/make.js";
4
- import type { Fx } from "../Fx.js";
5
-
6
- /**
7
- * Filters elements of an Fx using a predicate function.
8
- *
9
- * @param f - A predicate function.
10
- * @returns An `Fx` that emits only the elements for which `f` returns `true`.
11
- * @since 1.0.0
12
- * @category combinators
13
- */
14
- export const filter: {
15
- <A>(f: (a: A) => boolean): <E, R>(self: Fx<A, E, R>) => Fx<A, E, R>;
16
-
17
- <A, E, R>(self: Fx<A, E, R>, f: (a: A) => boolean): Fx<A, E, R>;
18
- } = dual(
19
- 2,
20
- <A, E, R>(self: Fx<A, E, R>, f: (a: A) => boolean): Fx<A, E, R> =>
21
- make<A, E, R>((sink) => self.run(sinkCore.filter(sink, f))),
22
- );
@@ -1,31 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import { dual } from "effect/Function";
3
- import * as sinkCore from "../../Sink/combinators.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
-
7
- /**
8
- * Filters elements of an Fx using an effectful predicate function.
9
- *
10
- * @param f - An effectful predicate function.
11
- * @returns An `Fx` that emits only the elements for which `f` returns `true`.
12
- * @since 1.0.0
13
- * @category combinators
14
- */
15
- export const filterEffect: {
16
- <A, E2, R2>(
17
- f: (a: A) => Effect.Effect<boolean, E2, R2>,
18
- ): <E, R>(self: Fx<A, E | E2, R>) => Fx<A, E | E2, R | R2>;
19
-
20
- <A, E, R, E2, R2>(
21
- self: Fx<A, E | E2, R>,
22
- f: (a: A) => Effect.Effect<boolean, E2, R2>,
23
- ): Fx<A, E | E2, R | R2>;
24
- } = dual(
25
- 2,
26
- <A, E, R, E2, R2>(
27
- self: Fx<A, E, R>,
28
- f: (a: A) => Effect.Effect<boolean, E2, R2>,
29
- ): Fx<A, E | E2, R | R2> =>
30
- make<A, E | E2, R | R2>((sink) => self.run(sinkCore.filterEffect(f)(sink))),
31
- );
@@ -1,23 +0,0 @@
1
- import { dual } from "effect/Function";
2
- import type * as Option from "effect/Option";
3
- import * as sinkCore from "../../Sink/combinators.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
-
7
- /**
8
- * Maps and filters elements of an Fx in a single operation.
9
- *
10
- * @param f - A function that returns an `Option` for each element.
11
- * @returns An `Fx` that emits values for which `f` returns `Some`.
12
- * @since 1.0.0
13
- * @category combinators
14
- */
15
- export const filterMap: {
16
- <A, B>(f: (a: A) => Option.Option<B>): <E, R>(self: Fx<A, E, R>) => Fx<B, E, R>;
17
-
18
- <A, E, R, B>(self: Fx<A, E, R>, f: (a: A) => Option.Option<B>): Fx<B, E, R>;
19
- } = dual(
20
- 2,
21
- <A, E, R, B>(self: Fx<A, E, R>, f: (a: A) => Option.Option<B>): Fx<B, E, R> =>
22
- make<B, E, R>((sink) => self.run(sinkCore.filterMap(sink, f))),
23
- );
@@ -1,32 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import { dual } from "effect/Function";
3
- import type * as Option from "effect/Option";
4
- import * as sinkCore from "../../Sink/combinators.js";
5
- import { make } from "../constructors/make.js";
6
- import type { Fx } from "../Fx.js";
7
-
8
- /**
9
- * Maps and filters elements of an Fx using an effectful function.
10
- *
11
- * @param f - An effectful function that returns an `Option` for each element.
12
- * @returns An `Fx` that emits values for which `f` returns `Some`.
13
- * @since 1.0.0
14
- * @category combinators
15
- */
16
- export const filterMapEffect: {
17
- <A, B, E2, R2>(
18
- f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>,
19
- ): <E, R>(self: Fx<A, E | E2, R>) => Fx<B, E | E2, R | R2>;
20
-
21
- <A, E, R, B, E2, R2>(
22
- self: Fx<A, E | E2, R>,
23
- f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>,
24
- ): Fx<B, E | E2, R | R2>;
25
- } = dual(
26
- 2,
27
- <A, E, R, B, E2, R2>(
28
- self: Fx<A, E, R>,
29
- f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>,
30
- ): Fx<B, E | E2, R | R2> =>
31
- make<B, E | E2, R | R2>((sink) => self.run(sinkCore.filterMapEffect(f)(sink))),
32
- );
@@ -1,35 +0,0 @@
1
- import { dual } from "effect/Function";
2
- import type * as Option from "effect/Option";
3
- import * as sinkCore from "../../Sink/combinators.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
-
7
- /**
8
- * Loops over an Fx with an accumulator, producing an optional new value for each element.
9
- * If the function returns `None`, the element is filtered out.
10
- *
11
- * @param seed - The initial state.
12
- * @param f - The loop function returning `Option<C>` and the new state.
13
- * @returns An `Fx` emitting the transformed values.
14
- * @since 1.0.0
15
- * @category combinators
16
- */
17
- export const filterMapLoop: {
18
- <B, A, C>(
19
- seed: B,
20
- f: (acc: B, a: A) => readonly [Option.Option<C>, B],
21
- ): <E, R>(self: Fx<A, E, R>) => Fx<C, E, R>;
22
-
23
- <A, E, R, B, C>(
24
- self: Fx<A, E, R>,
25
- seed: B,
26
- f: (acc: B, a: A) => readonly [Option.Option<C>, B],
27
- ): Fx<C, E, R>;
28
- } = dual(
29
- 3,
30
- <A, E, R, B, C>(
31
- self: Fx<A, E, R>,
32
- seed: B,
33
- f: (acc: B, a: A) => readonly [Option.Option<C>, B],
34
- ): Fx<C, E, R> => make<C, E, R>((sink) => self.run(sinkCore.filterMapLoop(sink, seed, f))),
35
- );
@@ -1,36 +0,0 @@
1
- import type * as Cause from "effect/Cause";
2
- import { dual } from "effect/Function";
3
- import type * as Option from "effect/Option";
4
- import * as sinkCore from "../../Sink/combinators.js";
5
- import { make } from "../constructors/make.js";
6
- import type { Fx } from "../Fx.js";
7
-
8
- /**
9
- * Loops over the failure causes of an Fx with an accumulator, potentially transforming or filtering them.
10
- * This allows for complex error handling logic that maintains state across failures.
11
- *
12
- * @param seed - The initial state.
13
- * @param f - The loop function for causes.
14
- * @returns An `Fx` with transformed errors.
15
- * @since 1.0.0
16
- * @category combinators
17
- */
18
- export const filterMapLoopCause: {
19
- <B, A, C>(
20
- seed: B,
21
- f: (acc: B, a: Cause.Cause<A>) => readonly [Option.Option<Cause.Cause<C>>, B],
22
- ): <E, R>(self: Fx<A, E, R>) => Fx<A, C, R>;
23
-
24
- <A, E, R, B, C>(
25
- self: Fx<A, E, R>,
26
- seed: B,
27
- f: (acc: B, a: Cause.Cause<E>) => readonly [Option.Option<Cause.Cause<C>>, B],
28
- ): Fx<A, C, R>;
29
- } = dual(
30
- 3,
31
- <A, E, R, B, C>(
32
- self: Fx<A, E, R>,
33
- seed: B,
34
- f: (acc: B, a: Cause.Cause<E>) => readonly [Option.Option<Cause.Cause<C>>, B],
35
- ): Fx<A, C, R> => make<A, C, R>((sink) => self.run(sinkCore.filterMapLoopCause(sink, seed, f))),
36
- );
@@ -1,46 +0,0 @@
1
- import type * as Cause from "effect/Cause";
2
- import type * as Effect from "effect/Effect";
3
- import { dual } from "effect/Function";
4
- import type * as Option from "effect/Option";
5
- import * as sinkCore from "../../Sink/combinators.js";
6
- import { make } from "../constructors/make.js";
7
- import type { Fx } from "../Fx.js";
8
-
9
- /**
10
- * Effectfully loops over the failure causes of an Fx with an accumulator.
11
- *
12
- * @param seed - The initial state.
13
- * @param f - The effectful loop function for causes.
14
- * @returns An `Fx` with transformed errors.
15
- * @since 1.0.0
16
- * @category combinators
17
- */
18
- export const filterMapLoopCauseEffect: {
19
- <B, A, E2, R2, C>(
20
- seed: B,
21
- f: (
22
- acc: B,
23
- a: Cause.Cause<A>,
24
- ) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], E2, R2>,
25
- ): <E, R>(self: Fx<A, E | E2, R>) => Fx<A, C | E2, R | R2>;
26
-
27
- <A, E, R, B, R2, C>(
28
- self: Fx<A, E, R>,
29
- seed: B,
30
- f: (
31
- acc: B,
32
- a: Cause.Cause<E>,
33
- ) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], C, R2>,
34
- ): Fx<A, C, R | R2>;
35
- } = dual(
36
- 3,
37
- <A, E, R, B, R2, C>(
38
- self: Fx<A, E, R>,
39
- seed: B,
40
- f: (
41
- acc: B,
42
- a: Cause.Cause<E>,
43
- ) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], C, R2>,
44
- ): Fx<A, C, R | R2> =>
45
- make<A, C, R | R2>((sink) => self.run(sinkCore.filterMapLoopCauseEffect(sink, seed, f))),
46
- );
@@ -1,36 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import { dual } from "effect/Function";
3
- import type * as Option from "effect/Option";
4
- import * as sinkCore from "../../Sink/combinators.js";
5
- import { make } from "../constructors/make.js";
6
- import type { Fx } from "../Fx.js";
7
-
8
- /**
9
- * Effectfully loops over an Fx with an accumulator, producing an optional new value.
10
- *
11
- * @param seed - The initial state.
12
- * @param f - The effectful loop function.
13
- * @returns An `Fx` emitting the transformed values.
14
- * @since 1.0.0
15
- * @category combinators
16
- */
17
- export const filterMapLoopEffect: {
18
- <B, A, E2, R2, C>(
19
- seed: B,
20
- f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>,
21
- ): <E, R>(self: Fx<A, E | E2, R>) => Fx<C, E | E2, R | R2>;
22
-
23
- <A, E, R, B, R2, C>(
24
- self: Fx<A, E, R>,
25
- seed: B,
26
- f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E, R2>,
27
- ): Fx<C, E, R | R2>;
28
- } = dual(
29
- 3,
30
- <A, E, R, B, R2, C>(
31
- self: Fx<A, E, R>,
32
- seed: B,
33
- f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E, R2>,
34
- ): Fx<C, E, R | R2> =>
35
- make<C, E, R | R2>((sink) => self.run(sinkCore.filterMapLoopEffect(sink, seed, f))),
36
- );
@@ -1,51 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FiberSet from "effect/FiberSet";
3
- import { dual } from "effect/Function";
4
- import type * as Scope from "effect/Scope";
5
- import { make as makeSink } from "../../Sink/Sink.js";
6
- import { make } from "../constructors/make.js";
7
- import type { Fx } from "../Fx.js";
8
- import { extendScope } from "../internal/scope.js";
9
-
10
- /**
11
- * Type definition for flatMap functions to support variable arguments.
12
- * @since 1.0.0
13
- * @category types
14
- */
15
- export type FlatMapLike<Args extends ReadonlyArray<any> = []> = {
16
- <A, B, E2, R2>(
17
- f: (a: A) => Fx<B, E2, R2>,
18
- ...args: Args
19
- ): <E, R>(self: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>;
20
-
21
- <A, E, R, B, E2, R2>(
22
- self: Fx<A, E, R>,
23
- f: (a: A) => Fx<B, E2, R2>,
24
- ...args: Args
25
- ): Fx<B, E | E2, R | R2 | Scope.Scope>;
26
- };
27
-
28
- /**
29
- * Maps each element of an Fx to a new Fx, and merges the results.
30
- *
31
- * The inner Fx streams are run concurrently. This is equivalent to `mergeMap` in RxJS.
32
- *
33
- * @param f - A function that maps an element `A` to a new `Fx<B>`.
34
- * @returns An `Fx` that emits values from all inner streams.
35
- * @since 1.0.0
36
- * @category combinators
37
- */
38
- export const flatMap: FlatMapLike = dual(
39
- 2,
40
- <A, E, R, B, E2, R2>(
41
- self: Fx<A, E, R>,
42
- f: (a: A) => Fx<B, E2, R2>,
43
- ): Fx<B, E | E2, R | R2 | Scope.Scope> =>
44
- make<B, E | E2, R | R2 | Scope.Scope>(
45
- Effect.fn(function* (sink) {
46
- const set = yield* FiberSet.make<void, never>();
47
- yield* self.run(makeSink(sink.onFailure, (a) => FiberSet.run(set, f(a).run(sink))));
48
- yield* FiberSet.awaitEmpty(set);
49
- }, extendScope),
50
- ),
51
- );
@@ -1,39 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FiberSet from "effect/FiberSet";
3
- import * as Semaphore from "effect/Semaphore";
4
- import { dual } from "effect/Function";
5
- import type * as Scope from "effect/Scope";
6
- import { make as makeSink } from "../../Sink/Sink.js";
7
- import { make } from "../constructors/make.js";
8
- import type { Fx } from "../Fx.js";
9
- import { extendScope } from "../internal/scope.js";
10
- import type { FlatMapLike } from "./flatMap.js";
11
-
12
- /**
13
- * Maps each element of an Fx to a new Fx, running them concurrently with a limit.
14
- *
15
- * @param f - A function that maps an element `A` to a new `Fx<B>`.
16
- * @param concurrency - The maximum number of concurrent inner streams.
17
- * @returns An `Fx` that emits values from the inner streams.
18
- * @since 1.0.0
19
- * @category combinators
20
- */
21
- export const flatMapConcurrently: FlatMapLike<[concurrency: number]> = dual(
22
- 3,
23
- <A, E, R, B, E2, R2>(
24
- self: Fx<A, E, R>,
25
- f: (a: A) => Fx<B, E2, R2>,
26
- concurrency: number,
27
- ): Fx<B, E | E2, R | R2 | Scope.Scope> =>
28
- make<B, E | E2, R | R2 | Scope.Scope>(
29
- Effect.fn(function* (sink) {
30
- const semaphore = yield* Semaphore.make(concurrency);
31
- const lock = semaphore.withPermits(1);
32
- const set = yield* FiberSet.make<void, never>();
33
- yield* self.run(
34
- makeSink(sink.onFailure, (a) => FiberSet.run(set, lock(Effect.asVoid(f(a).run(sink))))),
35
- );
36
- yield* FiberSet.awaitEmpty(set);
37
- }, extendScope),
38
- ),
39
- );
@@ -1,26 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import { dual, flow } from "effect/Function";
3
- import type * as Scope from "effect/Scope";
4
- import { fromEffect } from "../constructors/fromEffect.js";
5
- import type { Fx } from "../Fx.js";
6
- import { flatMapConcurrently } from "./flatMapConcurrently.js";
7
- import type { FlatMapEffectLike } from "./flatMapEffect.js";
8
-
9
- /**
10
- * Maps each element of an Fx to an Effect, running them concurrently with a limit.
11
- *
12
- * @param f - A function that maps an element `A` to an `Effect<B>`.
13
- * @param concurrency - The maximum number of concurrent effects.
14
- * @returns An `Fx` that emits the results of the effects.
15
- * @since 1.0.0
16
- * @category combinators
17
- */
18
- export const flatMapConcurrentlyEffect: FlatMapEffectLike<[concurrency: number]> = dual(
19
- 3,
20
- <A, E, R, B, E2, R2>(
21
- self: Fx<A, E, R>,
22
- f: (a: A) => Effect.Effect<B, E2, R2>,
23
- concurrency: number,
24
- ): Fx<B, E | E2, R | R2 | Scope.Scope> =>
25
- flatMapConcurrently(self, flow(f, fromEffect), concurrency),
26
- );
@@ -1,42 +0,0 @@
1
- import type * as Effect from "effect/Effect";
2
- import { dual, flow } from "effect/Function";
3
- import type * as Scope from "effect/Scope";
4
- import { fromEffect } from "../constructors/fromEffect.js";
5
- import type { Fx } from "../Fx.js";
6
- import { flatMap } from "./flatMap.js";
7
-
8
- /**
9
- * Type definition for flatMapEffect functions to support variable arguments.
10
- * @since 1.0.0
11
- * @category types
12
- */
13
- export type FlatMapEffectLike<Args extends ReadonlyArray<any> = []> = {
14
- <A, B, E2, R2>(
15
- f: (a: A) => Effect.Effect<B, E2, R2>,
16
- ...args: Args
17
- ): <E, R>(self: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>;
18
-
19
- <A, E, R, B, E2, R2>(
20
- self: Fx<A, E, R>,
21
- f: (a: A) => Effect.Effect<B, E2, R2>,
22
- ...args: Args
23
- ): Fx<B, E | E2, R | R2 | Scope.Scope>;
24
- };
25
-
26
- /**
27
- * Maps each element of an Fx to an Effect, and merges the results.
28
- *
29
- * The effects are run concurrently.
30
- *
31
- * @param f - A function that maps an element `A` to an `Effect<B>`.
32
- * @returns An `Fx` that emits the results of the effects.
33
- * @since 1.0.0
34
- * @category combinators
35
- */
36
- export const flatMapEffect: FlatMapEffectLike = dual(
37
- 2,
38
- <A, E, R, B, E2, R2>(
39
- self: Fx<A, E, R>,
40
- f: (a: A) => Effect.Effect<B, E2, R2>,
41
- ): Fx<B, E | E2, R | R2 | Scope.Scope> => flatMap(self, flow(f, fromEffect)),
42
- );
@@ -1,14 +0,0 @@
1
- import * as sinkCore from "../../Sink/combinators.js";
2
- import { make } from "../constructors/make.js";
3
- import type { Fx } from "../Fx.js";
4
-
5
- /**
6
- * Flips the error and success channels of an Fx.
7
- *
8
- * @param fx - The `Fx` stream.
9
- * @returns An `Fx` where errors are successes and successes are errors.
10
- * @since 1.0.0
11
- * @category combinators
12
- */
13
- export const flip = <A, E, R>(fx: Fx<A, E, R>): Fx<E, A, R> =>
14
- make<E, A, R>((sink) => fx.run(sinkCore.flip(sink)));
@@ -1,24 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import type { Fx } from "../Fx.js";
3
- import { unwrap } from "./unwrap.js";
4
-
5
- /** Extract error type from Yieldable (Effect v4) */
6
- type _YE<Y> = Y extends Effect.Yieldable<any, any, infer E, any> ? E : never;
7
- /** Extract services type from Yieldable (Effect v4) */
8
- type _YS<Y> = Y extends Effect.Yieldable<any, any, any, infer R> ? R : never;
9
-
10
- /**
11
- * Creates an Fx using a generator function (Effect.gen style).
12
- *
13
- * This allows writing Fx code in a synchronous-looking style, using `yield*` to composition.
14
- * Note: The generator yields Effects, and the result is an Fx.
15
- *
16
- * @param f - The generator function.
17
- * @returns An `Fx` representing the result of the generator.
18
- * @since 1.0.0
19
- * @category combinators
20
- */
21
- export const gen = <Yield extends Effect.Yieldable<any, any, any, any>, Return extends Fx.Any>(
22
- f: () => Generator<Yield, Return, any>,
23
- ): Fx<Fx.Success<Return>, Fx.Error<Return> | _YE<Yield>, Fx.Services<Return> | _YS<Yield>> =>
24
- unwrap(Effect.gen(f)) as any;