@typed/fx 2.0.0-beta.1 → 2.0.0-beta.11

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 (664) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -21
  3. package/dist/Fx/Fx.d.ts +371 -19
  4. package/dist/Fx/Fx.d.ts.map +1 -1
  5. package/dist/Fx/Fx.js +37 -6
  6. package/dist/Fx/TypeId.d.ts +52 -6
  7. package/dist/Fx/TypeId.d.ts.map +1 -1
  8. package/dist/Fx/TypeId.js +41 -4
  9. package/dist/Fx/combinators/additive.d.ts +162 -11
  10. package/dist/Fx/combinators/additive.d.ts.map +1 -1
  11. package/dist/Fx/combinators/additive.js +162 -11
  12. package/dist/Fx/combinators/catch.d.ts +202 -29
  13. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  14. package/dist/Fx/combinators/catch.js +193 -23
  15. package/dist/Fx/combinators/causes.d.ts +25 -2
  16. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  17. package/dist/Fx/combinators/causes.js +25 -2
  18. package/dist/Fx/combinators/changesWithEffect.d.ts +21 -1
  19. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
  20. package/dist/Fx/combinators/changesWithEffect.js +21 -1
  21. package/dist/Fx/combinators/compact.d.ts +18 -1
  22. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  23. package/dist/Fx/combinators/compact.js +18 -1
  24. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  25. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  26. package/dist/Fx/combinators/concatMap.js +86 -0
  27. package/dist/Fx/combinators/continueWith.d.ts +113 -5
  28. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  29. package/dist/Fx/combinators/continueWith.js +113 -5
  30. package/dist/Fx/combinators/debounce.d.ts +34 -0
  31. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  32. package/dist/Fx/combinators/debounce.js +35 -0
  33. package/dist/Fx/combinators/delay.d.ts +36 -0
  34. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  35. package/dist/Fx/combinators/delay.js +33 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts +44 -2
  37. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
  38. package/dist/Fx/combinators/dropUntil.js +44 -2
  39. package/dist/Fx/combinators/during.d.ts +38 -0
  40. package/dist/Fx/combinators/during.d.ts.map +1 -0
  41. package/dist/Fx/combinators/during.js +85 -0
  42. package/dist/Fx/combinators/ensuring.d.ts +34 -4
  43. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  44. package/dist/Fx/combinators/ensuring.js +34 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
  46. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  47. package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  50. package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
  51. package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
  52. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  53. package/dist/Fx/combinators/exhaustMap.js +38 -1
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  56. package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
  57. package/dist/Fx/combinators/exit.d.ts +23 -2
  58. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  59. package/dist/Fx/combinators/exit.js +23 -2
  60. package/dist/Fx/combinators/filter.d.ts +17 -1
  61. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  62. package/dist/Fx/combinators/filter.js +17 -1
  63. package/dist/Fx/combinators/filterEffect.d.ts +22 -1
  64. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  65. package/dist/Fx/combinators/filterEffect.js +22 -1
  66. package/dist/Fx/combinators/filterMap.d.ts +20 -1
  67. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  68. package/dist/Fx/combinators/filterMap.js +20 -1
  69. package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
  70. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  71. package/dist/Fx/combinators/filterMapEffect.js +21 -1
  72. package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
  73. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  74. package/dist/Fx/combinators/filterMapLoop.js +20 -1
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  77. package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  80. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  83. package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
  84. package/dist/Fx/combinators/flatMap.d.ts +50 -5
  85. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  86. package/dist/Fx/combinators/flatMap.js +36 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
  88. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  89. package/dist/Fx/combinators/flatMapConcurrently.js +48 -2
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  92. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
  94. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  95. package/dist/Fx/combinators/flatMapEffect.js +32 -2
  96. package/dist/Fx/combinators/flip.d.ts +34 -2
  97. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  98. package/dist/Fx/combinators/flip.js +34 -2
  99. package/dist/Fx/combinators/gen.d.ts +29 -10
  100. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  101. package/dist/Fx/combinators/gen.js +28 -4
  102. package/dist/Fx/combinators/genScoped.d.ts +33 -10
  103. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  104. package/dist/Fx/combinators/genScoped.js +31 -3
  105. package/dist/Fx/combinators/grouped.d.ts +89 -0
  106. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  107. package/dist/Fx/combinators/grouped.js +146 -0
  108. package/dist/Fx/combinators/index.d.ts +35 -0
  109. package/dist/Fx/combinators/index.d.ts.map +1 -1
  110. package/dist/Fx/combinators/index.js +35 -0
  111. package/dist/Fx/combinators/keyed.d.ts +123 -9
  112. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  113. package/dist/Fx/combinators/keyed.js +69 -11
  114. package/dist/Fx/combinators/loop.d.ts +17 -1
  115. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  116. package/dist/Fx/combinators/loop.js +17 -1
  117. package/dist/Fx/combinators/loopCause.d.ts +18 -1
  118. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  119. package/dist/Fx/combinators/loopCause.js +18 -1
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
  121. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  122. package/dist/Fx/combinators/loopCauseEffect.js +19 -1
  123. package/dist/Fx/combinators/loopEffect.d.ts +24 -1
  124. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  125. package/dist/Fx/combinators/loopEffect.js +24 -1
  126. package/dist/Fx/combinators/map.d.ts +46 -1
  127. package/dist/Fx/combinators/map.d.ts.map +1 -1
  128. package/dist/Fx/combinators/map.js +43 -1
  129. package/dist/Fx/combinators/mapBoth.d.ts +20 -1
  130. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
  131. package/dist/Fx/combinators/mapBoth.js +20 -1
  132. package/dist/Fx/combinators/mapEffect.d.ts +25 -1
  133. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  134. package/dist/Fx/combinators/mapEffect.js +25 -1
  135. package/dist/Fx/combinators/mapError.d.ts +21 -5
  136. package/dist/Fx/combinators/mapError.d.ts.map +1 -1
  137. package/dist/Fx/combinators/mapError.js +21 -5
  138. package/dist/Fx/combinators/mergeAll.d.ts +35 -1
  139. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  140. package/dist/Fx/combinators/mergeAll.js +35 -1
  141. package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
  142. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  143. package/dist/Fx/combinators/mergeOrdered.js +68 -14
  144. package/dist/Fx/combinators/onError.d.ts +34 -4
  145. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  146. package/dist/Fx/combinators/onError.js +34 -4
  147. package/dist/Fx/combinators/onExit.d.ts +29 -3
  148. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  149. package/dist/Fx/combinators/onExit.js +29 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
  151. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  152. package/dist/Fx/combinators/onInterrupt.js +49 -4
  153. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  154. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  155. package/dist/Fx/combinators/pairwise.js +31 -0
  156. package/dist/Fx/combinators/provide.d.ts +141 -20
  157. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  158. package/dist/Fx/combinators/provide.js +137 -16
  159. package/dist/Fx/combinators/race.d.ts +92 -0
  160. package/dist/Fx/combinators/race.d.ts.map +1 -0
  161. package/dist/Fx/combinators/race.js +149 -0
  162. package/dist/Fx/combinators/repeat.d.ts +41 -0
  163. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  164. package/dist/Fx/combinators/repeat.js +57 -0
  165. package/dist/Fx/combinators/result.d.ts +23 -1
  166. package/dist/Fx/combinators/result.d.ts.map +1 -1
  167. package/dist/Fx/combinators/result.js +27 -13
  168. package/dist/Fx/combinators/retry.d.ts +53 -0
  169. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  170. package/dist/Fx/combinators/retry.js +71 -0
  171. package/dist/Fx/combinators/sample.d.ts +31 -0
  172. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  173. package/dist/Fx/combinators/sample.js +42 -0
  174. package/dist/Fx/combinators/scan.d.ts +41 -2
  175. package/dist/Fx/combinators/scan.d.ts.map +1 -1
  176. package/dist/Fx/combinators/scan.js +43 -4
  177. package/dist/Fx/combinators/since.d.ts +30 -0
  178. package/dist/Fx/combinators/since.d.ts.map +1 -0
  179. package/dist/Fx/combinators/since.js +39 -0
  180. package/dist/Fx/combinators/skip.d.ts +33 -2
  181. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  182. package/dist/Fx/combinators/skip.js +33 -2
  183. package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
  184. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  185. package/dist/Fx/combinators/skipRepeats.js +17 -1
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  188. package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
  189. package/dist/Fx/combinators/skipWhile.d.ts +72 -4
  190. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
  191. package/dist/Fx/combinators/skipWhile.js +72 -4
  192. package/dist/Fx/combinators/slice.d.ts +85 -3
  193. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  194. package/dist/Fx/combinators/slice.js +35 -2
  195. package/dist/Fx/combinators/switchMap.d.ts +39 -1
  196. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  197. package/dist/Fx/combinators/switchMap.js +43 -5
  198. package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
  199. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  200. package/dist/Fx/combinators/switchMapEffect.js +38 -1
  201. package/dist/Fx/combinators/take.d.ts +34 -2
  202. package/dist/Fx/combinators/take.d.ts.map +1 -1
  203. package/dist/Fx/combinators/take.js +34 -2
  204. package/dist/Fx/combinators/takeUntil.d.ts +49 -3
  205. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  206. package/dist/Fx/combinators/takeUntil.js +49 -3
  207. package/dist/Fx/combinators/takeWhile.d.ts +33 -2
  208. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
  209. package/dist/Fx/combinators/takeWhile.js +33 -2
  210. package/dist/Fx/combinators/tapEffect.d.ts +17 -1
  211. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  212. package/dist/Fx/combinators/tapEffect.js +17 -1
  213. package/dist/Fx/combinators/throttle.d.ts +79 -0
  214. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  215. package/dist/Fx/combinators/throttle.js +99 -0
  216. package/dist/Fx/combinators/timeout.d.ts +76 -0
  217. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  218. package/dist/Fx/combinators/timeout.js +110 -0
  219. package/dist/Fx/combinators/tuple.d.ts +32 -2
  220. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  221. package/dist/Fx/combinators/tuple.js +36 -5
  222. package/dist/Fx/combinators/until.d.ts +27 -0
  223. package/dist/Fx/combinators/until.d.ts.map +1 -0
  224. package/dist/Fx/combinators/until.js +56 -0
  225. package/dist/Fx/combinators/unwrap.d.ts +31 -2
  226. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  227. package/dist/Fx/combinators/unwrap.js +30 -1
  228. package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
  229. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  230. package/dist/Fx/combinators/unwrapScoped.js +34 -1
  231. package/dist/Fx/combinators/when.d.ts +37 -2
  232. package/dist/Fx/combinators/when.d.ts.map +1 -1
  233. package/dist/Fx/combinators/when.js +38 -3
  234. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  235. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  236. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  237. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  238. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  239. package/dist/Fx/combinators/withSpan.js +34 -3
  240. package/dist/Fx/combinators/zip.d.ts +64 -4
  241. package/dist/Fx/combinators/zip.d.ts.map +1 -1
  242. package/dist/Fx/combinators/zip.js +64 -4
  243. package/dist/Fx/constructors/at.d.ts +21 -1
  244. package/dist/Fx/constructors/at.d.ts.map +1 -1
  245. package/dist/Fx/constructors/at.js +21 -1
  246. package/dist/Fx/constructors/die.d.ts +22 -1
  247. package/dist/Fx/constructors/die.d.ts.map +1 -1
  248. package/dist/Fx/constructors/die.js +22 -1
  249. package/dist/Fx/constructors/empty.d.ts +19 -1
  250. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  251. package/dist/Fx/constructors/empty.js +19 -1
  252. package/dist/Fx/constructors/fail.d.ts +22 -1
  253. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  254. package/dist/Fx/constructors/fail.js +22 -1
  255. package/dist/Fx/constructors/failCause.d.ts +23 -1
  256. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  257. package/dist/Fx/constructors/failCause.js +23 -1
  258. package/dist/Fx/constructors/fn.d.ts +116 -16
  259. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  260. package/dist/Fx/constructors/fn.js +36 -0
  261. package/dist/Fx/constructors/fromEffect.d.ts +45 -3
  262. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  263. package/dist/Fx/constructors/fromEffect.js +45 -3
  264. package/dist/Fx/constructors/fromFailures.d.ts +25 -1
  265. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  266. package/dist/Fx/constructors/fromFailures.js +25 -1
  267. package/dist/Fx/constructors/fromIterable.d.ts +23 -1
  268. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  269. package/dist/Fx/constructors/fromIterable.js +23 -1
  270. package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
  271. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  272. package/dist/Fx/constructors/fromSchedule.js +28 -3
  273. package/dist/Fx/constructors/index.d.ts +2 -1
  274. package/dist/Fx/constructors/index.d.ts.map +1 -1
  275. package/dist/Fx/constructors/index.js +2 -1
  276. package/dist/Fx/constructors/interrupt.d.ts +22 -2
  277. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  278. package/dist/Fx/constructors/interrupt.js +22 -2
  279. package/dist/Fx/constructors/make.d.ts +151 -4
  280. package/dist/Fx/constructors/make.d.ts.map +1 -1
  281. package/dist/Fx/constructors/make.js +60 -7
  282. package/dist/Fx/constructors/periodic.d.ts +30 -1
  283. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  284. package/dist/Fx/constructors/periodic.js +30 -1
  285. package/dist/Fx/constructors/succeed.d.ts +79 -7
  286. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  287. package/dist/Fx/constructors/succeed.js +79 -7
  288. package/dist/Fx/constructors/suspend.d.ts +28 -0
  289. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  290. package/dist/Fx/constructors/suspend.js +28 -0
  291. package/dist/Fx/constructors/sync.d.ts +32 -0
  292. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  293. package/dist/Fx/constructors/sync.js +32 -0
  294. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  295. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  296. package/dist/Fx/internal/DeferredRef.js +260 -9
  297. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  298. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  299. package/dist/Fx/internal/diff.d.ts +586 -0
  300. package/dist/Fx/internal/diff.d.ts.map +1 -1
  301. package/dist/Fx/internal/diff.js +120 -9
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  304. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts +70 -0
  306. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  307. package/dist/Fx/internal/effectableWithOverride.js +54 -0
  308. package/dist/Fx/internal/equivalence.d.ts +29 -0
  309. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  310. package/dist/Fx/internal/equivalence.js +29 -0
  311. package/dist/Fx/internal/multicast.d.ts +145 -2
  312. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  313. package/dist/Fx/internal/multicast.js +146 -4
  314. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  315. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  316. package/dist/Fx/internal/ring-buffer.js +155 -0
  317. package/dist/Fx/internal/scope.d.ts +184 -0
  318. package/dist/Fx/internal/scope.d.ts.map +1 -1
  319. package/dist/Fx/internal/scope.js +150 -0
  320. package/dist/Fx/internal/yieldable.d.ts +117 -2
  321. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  322. package/dist/Fx/internal/yieldable.js +86 -3
  323. package/dist/Fx/run/collect.d.ts +93 -4
  324. package/dist/Fx/run/collect.d.ts.map +1 -1
  325. package/dist/Fx/run/collect.js +94 -5
  326. package/dist/Fx/run/first.d.ts +23 -1
  327. package/dist/Fx/run/first.d.ts.map +1 -1
  328. package/dist/Fx/run/first.js +23 -1
  329. package/dist/Fx/run/fork.d.ts +52 -2
  330. package/dist/Fx/run/fork.d.ts.map +1 -1
  331. package/dist/Fx/run/fork.js +52 -2
  332. package/dist/Fx/run/observe.d.ts +112 -4
  333. package/dist/Fx/run/observe.d.ts.map +1 -1
  334. package/dist/Fx/run/observe.js +137 -16
  335. package/dist/Fx/run/runPromise.d.ts +45 -2
  336. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  337. package/dist/Fx/run/runPromise.js +45 -2
  338. package/dist/Fx/stream.d.ts +92 -0
  339. package/dist/Fx/stream.d.ts.map +1 -1
  340. package/dist/Fx/stream.js +60 -1
  341. package/dist/Push/Push.d.ts +1229 -104
  342. package/dist/Push/Push.d.ts.map +1 -1
  343. package/dist/Push/Push.js +1024 -95
  344. package/dist/RefArray.d.ts +2 -0
  345. package/dist/RefArray.d.ts.map +1 -0
  346. package/dist/RefArray.js +1 -0
  347. package/dist/RefBigDecimal.d.ts +2 -0
  348. package/dist/RefBigDecimal.d.ts.map +1 -0
  349. package/dist/RefBigDecimal.js +1 -0
  350. package/dist/RefBigInt.d.ts +2 -0
  351. package/dist/RefBigInt.d.ts.map +1 -0
  352. package/dist/RefBigInt.js +1 -0
  353. package/dist/RefBoolean.d.ts +2 -0
  354. package/dist/RefBoolean.d.ts.map +1 -0
  355. package/dist/RefBoolean.js +1 -0
  356. package/dist/RefCause.d.ts +2 -0
  357. package/dist/RefCause.d.ts.map +1 -0
  358. package/dist/RefCause.js +1 -0
  359. package/dist/RefChunk.d.ts +2 -0
  360. package/dist/RefChunk.d.ts.map +1 -0
  361. package/dist/RefChunk.js +1 -0
  362. package/dist/RefDateTime.d.ts +2 -0
  363. package/dist/RefDateTime.d.ts.map +1 -0
  364. package/dist/RefDateTime.js +1 -0
  365. package/dist/RefDuration.d.ts +2 -0
  366. package/dist/RefDuration.d.ts.map +1 -0
  367. package/dist/RefDuration.js +1 -0
  368. package/dist/RefGraph.d.ts +2 -0
  369. package/dist/RefGraph.d.ts.map +1 -0
  370. package/dist/RefGraph.js +1 -0
  371. package/dist/RefHashMap.d.ts +2 -0
  372. package/dist/RefHashMap.d.ts.map +1 -0
  373. package/dist/RefHashMap.js +1 -0
  374. package/dist/RefHashRing.d.ts +2 -0
  375. package/dist/RefHashRing.d.ts.map +1 -0
  376. package/dist/RefHashRing.js +1 -0
  377. package/dist/RefHashSet.d.ts +2 -0
  378. package/dist/RefHashSet.d.ts.map +1 -0
  379. package/dist/RefHashSet.js +1 -0
  380. package/dist/RefIterable.d.ts +2 -0
  381. package/dist/RefIterable.d.ts.map +1 -0
  382. package/dist/RefIterable.js +1 -0
  383. package/dist/RefOption.d.ts +2 -0
  384. package/dist/RefOption.d.ts.map +1 -0
  385. package/dist/RefOption.js +1 -0
  386. package/dist/RefRecord.d.ts +2 -0
  387. package/dist/RefRecord.d.ts.map +1 -0
  388. package/dist/RefRecord.js +1 -0
  389. package/dist/RefResult.d.ts +2 -0
  390. package/dist/RefResult.d.ts.map +1 -0
  391. package/dist/RefResult.js +1 -0
  392. package/dist/RefString.d.ts +2 -0
  393. package/dist/RefString.d.ts.map +1 -0
  394. package/dist/RefString.js +1 -0
  395. package/dist/RefStruct.d.ts +2 -0
  396. package/dist/RefStruct.d.ts.map +1 -0
  397. package/dist/RefStruct.js +1 -0
  398. package/dist/RefSubject/Hydration.d.ts +504 -0
  399. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  400. package/dist/RefSubject/Hydration.js +300 -0
  401. package/dist/RefSubject/RefArray.d.ts +382 -35
  402. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  403. package/dist/RefSubject/RefArray.js +374 -40
  404. package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
  405. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  406. package/dist/RefSubject/RefBigDecimal.js +229 -20
  407. package/dist/RefSubject/RefBigInt.d.ts +181 -16
  408. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  409. package/dist/RefSubject/RefBigInt.js +169 -15
  410. package/dist/RefSubject/RefBoolean.d.ts +181 -16
  411. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  412. package/dist/RefSubject/RefBoolean.js +169 -15
  413. package/dist/RefSubject/RefCause.d.ts +133 -12
  414. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  415. package/dist/RefSubject/RefCause.js +121 -11
  416. package/dist/RefSubject/RefChunk.d.ts +481 -76
  417. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  418. package/dist/RefSubject/RefChunk.js +471 -75
  419. package/dist/RefSubject/RefDateTime.d.ts +133 -12
  420. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  421. package/dist/RefSubject/RefDateTime.js +122 -12
  422. package/dist/RefSubject/RefDuration.d.ts +169 -15
  423. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  424. package/dist/RefSubject/RefDuration.js +157 -14
  425. package/dist/RefSubject/RefGraph.d.ts +349 -35
  426. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  427. package/dist/RefSubject/RefGraph.js +334 -32
  428. package/dist/RefSubject/RefHashMap.d.ts +323 -28
  429. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  430. package/dist/RefSubject/RefHashMap.js +317 -29
  431. package/dist/RefSubject/RefHashRing.d.ts +159 -15
  432. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  433. package/dist/RefSubject/RefHashRing.js +145 -12
  434. package/dist/RefSubject/RefHashSet.d.ts +251 -22
  435. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  436. package/dist/RefSubject/RefHashSet.js +238 -20
  437. package/dist/RefSubject/RefIterable.d.ts +358 -32
  438. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  439. package/dist/RefSubject/RefIterable.js +350 -30
  440. package/dist/RefSubject/RefOption.d.ts +157 -14
  441. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  442. package/dist/RefSubject/RefOption.js +145 -13
  443. package/dist/RefSubject/RefRecord.d.ts +402 -64
  444. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  445. package/dist/RefSubject/RefRecord.js +364 -39
  446. package/dist/RefSubject/RefResult.d.ts +167 -35
  447. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  448. package/dist/RefSubject/RefResult.js +133 -12
  449. package/dist/RefSubject/RefString.d.ts +205 -18
  450. package/dist/RefSubject/RefString.d.ts.map +1 -1
  451. package/dist/RefSubject/RefString.js +193 -17
  452. package/dist/RefSubject/RefStruct.d.ts +169 -14
  453. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  454. package/dist/RefSubject/RefStruct.js +157 -13
  455. package/dist/RefSubject/RefSubject.d.ts +1197 -45
  456. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  457. package/dist/RefSubject/RefSubject.js +935 -88
  458. package/dist/RefSubject/RefTrie.d.ts +323 -37
  459. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  460. package/dist/RefSubject/RefTrie.js +311 -31
  461. package/dist/RefSubject/RefTuple.d.ts +127 -11
  462. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  463. package/dist/RefSubject/RefTuple.js +114 -9
  464. package/dist/RefSubject/index.d.ts +1 -0
  465. package/dist/RefSubject/index.d.ts.map +1 -1
  466. package/dist/RefSubject/index.js +1 -0
  467. package/dist/RefSubject.d.ts +2 -1
  468. package/dist/RefSubject.d.ts.map +1 -1
  469. package/dist/RefSubject.js +2 -1
  470. package/dist/RefTrie.d.ts +2 -0
  471. package/dist/RefTrie.d.ts.map +1 -0
  472. package/dist/RefTrie.js +1 -0
  473. package/dist/RefTuple.d.ts +2 -0
  474. package/dist/RefTuple.d.ts.map +1 -0
  475. package/dist/RefTuple.js +1 -0
  476. package/dist/Sink/Sink.d.ts +396 -23
  477. package/dist/Sink/Sink.d.ts.map +1 -1
  478. package/dist/Sink/Sink.js +55 -7
  479. package/dist/Sink/combinators.d.ts +740 -11
  480. package/dist/Sink/combinators.d.ts.map +1 -1
  481. package/dist/Sink/combinators.js +716 -14
  482. package/dist/Subject/Subject.d.ts +1022 -27
  483. package/dist/Subject/Subject.d.ts.map +1 -1
  484. package/dist/Subject/Subject.js +909 -43
  485. package/dist/Versioned/Versioned.d.ts +447 -27
  486. package/dist/Versioned/Versioned.d.ts.map +1 -1
  487. package/dist/Versioned/Versioned.js +282 -48
  488. package/dist/index.d.ts +22 -3
  489. package/dist/index.d.ts.map +1 -1
  490. package/dist/index.js +22 -3
  491. package/package.json +126 -16
  492. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  493. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  494. package/dist/Fx/constructors/fromYieldable.js +0 -12
  495. package/src/Fx/Fx.ts +0 -164
  496. package/src/Fx/TypeId.ts +0 -25
  497. package/src/Fx/combinators/additive.ts +0 -142
  498. package/src/Fx/combinators/catch.ts +0 -421
  499. package/src/Fx/combinators/causes.ts +0 -23
  500. package/src/Fx/combinators/changesWithEffect.ts +0 -66
  501. package/src/Fx/combinators/compact.ts +0 -15
  502. package/src/Fx/combinators/continueWith.ts +0 -78
  503. package/src/Fx/combinators/dropUntil.ts +0 -47
  504. package/src/Fx/combinators/ensuring.ts +0 -23
  505. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  506. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  507. package/src/Fx/combinators/exhaustMap.ts +0 -36
  508. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  509. package/src/Fx/combinators/exit.ts +0 -15
  510. package/src/Fx/combinators/filter.ts +0 -22
  511. package/src/Fx/combinators/filterEffect.ts +0 -31
  512. package/src/Fx/combinators/filterMap.ts +0 -23
  513. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  514. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  515. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  516. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  517. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  518. package/src/Fx/combinators/flatMap.ts +0 -51
  519. package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
  520. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  521. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  522. package/src/Fx/combinators/flip.ts +0 -14
  523. package/src/Fx/combinators/gen.ts +0 -24
  524. package/src/Fx/combinators/genScoped.ts +0 -24
  525. package/src/Fx/combinators/index.ts +0 -61
  526. package/src/Fx/combinators/keyed.ts +0 -369
  527. package/src/Fx/combinators/loop.ts +0 -27
  528. package/src/Fx/combinators/loopCause.ts +0 -34
  529. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  530. package/src/Fx/combinators/loopEffect.ts +0 -34
  531. package/src/Fx/combinators/map.ts +0 -22
  532. package/src/Fx/combinators/mapBoth.ts +0 -40
  533. package/src/Fx/combinators/mapEffect.ts +0 -32
  534. package/src/Fx/combinators/mapError.ts +0 -28
  535. package/src/Fx/combinators/mergeAll.ts +0 -22
  536. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  537. package/src/Fx/combinators/onError.ts +0 -40
  538. package/src/Fx/combinators/onExit.ts +0 -82
  539. package/src/Fx/combinators/onInterrupt.ts +0 -87
  540. package/src/Fx/combinators/provide.ts +0 -124
  541. package/src/Fx/combinators/result.ts +0 -39
  542. package/src/Fx/combinators/scan.ts +0 -82
  543. package/src/Fx/combinators/skip.ts +0 -41
  544. package/src/Fx/combinators/skipRepeats.ts +0 -15
  545. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  546. package/src/Fx/combinators/skipWhile.ts +0 -100
  547. package/src/Fx/combinators/slice.ts +0 -55
  548. package/src/Fx/combinators/switchMap.ts +0 -55
  549. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  550. package/src/Fx/combinators/take.ts +0 -38
  551. package/src/Fx/combinators/takeUntil.ts +0 -88
  552. package/src/Fx/combinators/takeWhile.ts +0 -47
  553. package/src/Fx/combinators/tapEffect.ts +0 -39
  554. package/src/Fx/combinators/tuple.ts +0 -79
  555. package/src/Fx/combinators/unwrap.ts +0 -21
  556. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  557. package/src/Fx/combinators/when.ts +0 -64
  558. package/src/Fx/combinators/withSpan.ts +0 -24
  559. package/src/Fx/combinators/zip.ts +0 -175
  560. package/src/Fx/constructors/at.ts +0 -23
  561. package/src/Fx/constructors/die.ts +0 -17
  562. package/src/Fx/constructors/empty.ts +0 -10
  563. package/src/Fx/constructors/fail.ts +0 -14
  564. package/src/Fx/constructors/failCause.ts +0 -14
  565. package/src/Fx/constructors/fn.ts +0 -245
  566. package/src/Fx/constructors/fromEffect.ts +0 -24
  567. package/src/Fx/constructors/fromFailures.ts +0 -19
  568. package/src/Fx/constructors/fromIterable.ts +0 -15
  569. package/src/Fx/constructors/fromSchedule.ts +0 -18
  570. package/src/Fx/constructors/fromYieldable.ts +0 -17
  571. package/src/Fx/constructors/index.ts +0 -15
  572. package/src/Fx/constructors/interrupt.ts +0 -13
  573. package/src/Fx/constructors/make.ts +0 -103
  574. package/src/Fx/constructors/periodic.ts +0 -15
  575. package/src/Fx/constructors/succeed.ts +0 -37
  576. package/src/Fx/constructors/suspend.ts +0 -6
  577. package/src/Fx/index.ts +0 -6
  578. package/src/Fx/internal/DeferredRef.ts +0 -87
  579. package/src/Fx/internal/UnionToTuple.ts +0 -12
  580. package/src/Fx/internal/diff.ts +0 -191
  581. package/src/Fx/internal/equivalence.ts +0 -12
  582. package/src/Fx/internal/multicast.ts +0 -51
  583. package/src/Fx/internal/ring-buffer.ts +0 -60
  584. package/src/Fx/internal/scope.ts +0 -58
  585. package/src/Fx/internal/yieldable.ts +0 -31
  586. package/src/Fx/run/collect.ts +0 -79
  587. package/src/Fx/run/first.ts +0 -20
  588. package/src/Fx/run/fork.ts +0 -40
  589. package/src/Fx/run/index.ts +0 -5
  590. package/src/Fx/run/observe.ts +0 -114
  591. package/src/Fx/run/runPromise.ts +0 -32
  592. package/src/Fx/stream.ts +0 -42
  593. package/src/Fx.additive-combinators.test.ts +0 -126
  594. package/src/Fx.catch-additive.test.ts +0 -206
  595. package/src/Fx.catch.test.ts +0 -60
  596. package/src/Fx.dropUntil.test.ts +0 -61
  597. package/src/Fx.fn.test.ts +0 -51
  598. package/src/Fx.lifecycle.test.ts +0 -79
  599. package/src/Fx.mapError-mapBoth.test.ts +0 -101
  600. package/src/Fx.provide-combinators.test.ts +0 -94
  601. package/src/Fx.result-changesWithEffect.test.ts +0 -112
  602. package/src/Fx.scan.test.ts +0 -73
  603. package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
  604. package/src/Fx.test.ts +0 -71
  605. package/src/Fx.ts +0 -1
  606. package/src/Fx.zip-merge-additive.test.ts +0 -171
  607. package/src/Fx.zip.test.ts +0 -133
  608. package/src/Push/Push.ts +0 -1072
  609. package/src/Push/index.ts +0 -1
  610. package/src/Push.additive.test.ts +0 -256
  611. package/src/Push.test.ts +0 -26
  612. package/src/Push.ts +0 -1
  613. package/src/RefSubject/RefArray.ts +0 -512
  614. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  615. package/src/RefSubject/RefBigDecimal.ts +0 -295
  616. package/src/RefSubject/RefBigInt.test.ts +0 -56
  617. package/src/RefSubject/RefBigInt.ts +0 -189
  618. package/src/RefSubject/RefBoolean.test.ts +0 -57
  619. package/src/RefSubject/RefBoolean.ts +0 -185
  620. package/src/RefSubject/RefCause.test.ts +0 -53
  621. package/src/RefSubject/RefCause.ts +0 -146
  622. package/src/RefSubject/RefChunk.ts +0 -510
  623. package/src/RefSubject/RefDateTime.test.ts +0 -43
  624. package/src/RefSubject/RefDateTime.ts +0 -264
  625. package/src/RefSubject/RefDuration.test.ts +0 -49
  626. package/src/RefSubject/RefDuration.ts +0 -188
  627. package/src/RefSubject/RefGraph.ts +0 -650
  628. package/src/RefSubject/RefHashMap.ts +0 -465
  629. package/src/RefSubject/RefHashRing.ts +0 -262
  630. package/src/RefSubject/RefHashSet.ts +0 -308
  631. package/src/RefSubject/RefIterable.ts +0 -445
  632. package/src/RefSubject/RefOption.test.ts +0 -67
  633. package/src/RefSubject/RefOption.ts +0 -193
  634. package/src/RefSubject/RefRecord.ts +0 -612
  635. package/src/RefSubject/RefResult.test.ts +0 -63
  636. package/src/RefSubject/RefResult.ts +0 -209
  637. package/src/RefSubject/RefString.test.ts +0 -61
  638. package/src/RefSubject/RefString.ts +0 -256
  639. package/src/RefSubject/RefStruct.test.ts +0 -60
  640. package/src/RefSubject/RefStruct.ts +0 -253
  641. package/src/RefSubject/RefSubject.ts +0 -2646
  642. package/src/RefSubject/RefTrie.ts +0 -356
  643. package/src/RefSubject/RefTuple.test.ts +0 -60
  644. package/src/RefSubject/RefTuple.ts +0 -231
  645. package/src/RefSubject/index.ts +0 -21
  646. package/src/RefSubject.additive-parity.test.ts +0 -101
  647. package/src/RefSubject.test.ts +0 -65
  648. package/src/RefSubject.ts +0 -1
  649. package/src/Sink/Sink.ts +0 -159
  650. package/src/Sink/combinators.ts +0 -1115
  651. package/src/Sink/index.ts +0 -2
  652. package/src/Sink.combinators.test.ts +0 -88
  653. package/src/Sink.reduce-collect-head-last.test.ts +0 -107
  654. package/src/Sink.ts +0 -1
  655. package/src/Subject/Subject.ts +0 -441
  656. package/src/Subject/index.ts +0 -1
  657. package/src/Subject.test.ts +0 -47
  658. package/src/Subject.ts +0 -1
  659. package/src/Versioned/Versioned.ts +0 -597
  660. package/src/Versioned/index.ts +0 -1
  661. package/src/Versioned.filterMap.test.ts +0 -91
  662. package/src/Versioned.test.ts +0 -23
  663. package/src/Versioned.ts +0 -1
  664. 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;