@typed/fx 2.0.0-beta.3 → 2.0.0-beta.5

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 +364 -12
  3. package/dist/Fx/Fx.d.ts.map +1 -1
  4. package/dist/Fx/Fx.js +37 -6
  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 +68 -10
  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 +138 -17
  156. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  157. package/dist/Fx/combinators/provide.js +134 -13
  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 +41 -2
  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 +42 -4
  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 +56 -5
  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 +108 -2
  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 +1219 -94
  341. package/dist/Push/Push.d.ts.map +1 -1
  342. package/dist/Push/Push.js +1015 -86
  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 +1168 -15
  455. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  456. package/dist/RefSubject/RefSubject.js +850 -58
  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 +385 -14
  476. package/dist/Sink/Sink.d.ts.map +1 -1
  477. package/dist/Sink/Sink.js +53 -6
  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 +707 -5
  481. package/dist/Subject/Subject.d.ts +1016 -22
  482. package/dist/Subject/Subject.d.ts.map +1 -1
  483. package/dist/Subject/Subject.js +904 -39
  484. package/dist/Versioned/Versioned.d.ts +426 -9
  485. package/dist/Versioned/Versioned.d.ts.map +1 -1
  486. package/dist/Versioned/Versioned.js +241 -15
  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 +120 -11
  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 -1072
  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 -2644
  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 -441
  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 -597
  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,24 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import type { SpanOptionsNoTrace } from "effect/Tracer";
3
- import { make as makeSink, type Sink } from "../../Sink/Sink.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
-
7
- export const withSpan = <A, E, R>(
8
- fx: Fx<A, E, R>,
9
- name: string,
10
- options?: SpanOptionsNoTrace,
11
- ): Fx<A, E, R> => {
12
- return make<A, E, R>(<RSink>(sink: Sink<A, E, RSink>) =>
13
- Effect.withSpan(
14
- fx.run(
15
- makeSink(
16
- (cause) => Effect.withSpan(sink.onFailure(cause), `onFailure(${name})`, options),
17
- (value) => Effect.withSpan(sink.onSuccess(value), `onSuccess(${name})`, options),
18
- ),
19
- ),
20
- `Fx(${name})`,
21
- options,
22
- ),
23
- );
24
- };
@@ -1,175 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Exit from "effect/Exit";
3
- import * as Fiber from "effect/Fiber";
4
- import { dual } from "effect/Function";
5
- import * as Option from "effect/Option";
6
- import * as Queue from "effect/Queue";
7
- import { make as makeSink } from "../../Sink/Sink.js";
8
- import { make } from "../constructors/make.js";
9
- import type { Fx } from "../Fx.js";
10
- import { map } from "./map.js";
11
- import { tuple } from "./tuple.js";
12
-
13
- /**
14
- * Zips two Fx streams in strict lockstep: emits a pair `[a, b]` only when both
15
- * streams have produced their next value. Emits the i-th pair when both have
16
- * produced at least i values.
17
- *
18
- * **Completion:** The zipped stream completes when the **first** of the two
19
- * streams completes (no further pairs are emitted). The other stream is
20
- * interrupted.
21
- *
22
- * **Errors:** The first failure from either stream fails the zipped stream.
23
- *
24
- * @param that - The second Fx stream.
25
- * @returns An Fx that emits pairs `[A, B]`.
26
- * @since 1.0.0
27
- * @category combinators
28
- */
29
- export const zip: {
30
- <A2, E2, R2>(
31
- that: Fx<A2, E2, R2>,
32
- ): <A, E, R>(self: Fx<A, E, R>) => Fx<readonly [A, A2], E | E2, R | R2>;
33
- <A, E, R, A2, E2, R2>(
34
- self: Fx<A, E, R>,
35
- that: Fx<A2, E2, R2>,
36
- ): Fx<readonly [A, A2], E | E2, R | R2>;
37
- } = dual(
38
- 2,
39
- <A, E, R, A2, E2, R2>(
40
- self: Fx<A, E, R>,
41
- that: Fx<A2, E2, R2>,
42
- ): Fx<readonly [A, A2], E | E2, R | R2> =>
43
- make<readonly [A, A2], E | E2, R | R2>((sink) =>
44
- Effect.gen(function* () {
45
- const leftQueue = yield* Queue.unbounded<Option.Option<A>>();
46
- const rightQueue = yield* Queue.unbounded<Option.Option<A2>>();
47
-
48
- const leftSink = makeSink(sink.onFailure, (a: A) => Queue.offer(leftQueue, Option.some(a)));
49
- const rightSink = makeSink(sink.onFailure, (b: A2) =>
50
- Queue.offer(rightQueue, Option.some(b)),
51
- );
52
-
53
- const runLeft = self
54
- .run(leftSink)
55
- .pipe(Effect.ensuring(Queue.offer(leftQueue, Option.none())));
56
- const runRight = that
57
- .run(rightSink)
58
- .pipe(Effect.ensuring(Queue.offer(rightQueue, Option.none())));
59
-
60
- const consumer = Effect.gen(function* () {
61
- while (true) {
62
- const exitA = yield* Effect.exit(Queue.take(leftQueue));
63
- if (Exit.isFailure(exitA)) return;
64
- if (Option.isNone(exitA.value)) return;
65
- const exitB = yield* Effect.exit(Queue.take(rightQueue));
66
- if (Exit.isFailure(exitB)) return;
67
- if (Option.isNone(exitB.value)) return;
68
- yield* sink.onSuccess([exitA.value.value, exitB.value.value] as const);
69
- }
70
- });
71
-
72
- const leftFiber = yield* Effect.forkChild(runLeft);
73
- const rightFiber = yield* Effect.forkChild(runRight);
74
- yield* consumer.pipe(
75
- Effect.ensuring(Fiber.interrupt(leftFiber)),
76
- Effect.ensuring(Fiber.interrupt(rightFiber)),
77
- );
78
- }),
79
- ),
80
- );
81
-
82
- /**
83
- * Zips two Fx streams in strict lockstep and combines each pair with a function.
84
- * Emits `f(a, b)` when both streams have produced their next value.
85
- *
86
- * **Completion:** Completes when the **first** of the two streams completes.
87
- * **Errors:** The first failure from either stream fails the result.
88
- *
89
- * @param that - The second Fx stream.
90
- * @param f - Function to combine the pair `(a, b)` into a single value.
91
- * @returns An Fx that emits combined values.
92
- * @since 1.0.0
93
- * @category combinators
94
- */
95
- export const zipWith: {
96
- <A, A2, E2, R2, B>(
97
- that: Fx<A2, E2, R2>,
98
- f: (a: A, b: A2) => B,
99
- ): <E, R>(self: Fx<A, E, R>) => Fx<B, E | E2, R | R2>;
100
- <A, E, R, A2, E2, R2, B>(
101
- self: Fx<A, E, R>,
102
- that: Fx<A2, E2, R2>,
103
- f: (a: A, b: A2) => B,
104
- ): Fx<B, E | E2, R | R2>;
105
- } = dual(
106
- 3,
107
- <A, E, R, A2, E2, R2, B>(
108
- self: Fx<A, E, R>,
109
- that: Fx<A2, E2, R2>,
110
- f: (a: A, b: A2) => B,
111
- ): Fx<B, E | E2, R | R2> => map(zip(self, that), (pair) => f(pair[0], pair[1])),
112
- );
113
-
114
- /**
115
- * Zips two Fx streams by latest values: waits for both to emit at least once,
116
- * then emits `[left, right]` whenever **either** stream emits (using the latest
117
- * value from the other). No strict pairing; output count is the sum of
118
- * emissions from both after the first pair.
119
- *
120
- * **Completion:** Completes when **both** streams have completed.
121
- * **Errors:** The first failure from either stream fails the result.
122
- *
123
- * @param that - The second Fx stream.
124
- * @returns An Fx that emits `[AL, AR]` on every update from either stream.
125
- * @since 1.0.0
126
- * @category combinators
127
- */
128
- export const zipLatest: {
129
- <AR, ER, RR>(
130
- that: Fx<AR, ER, RR>,
131
- ): <AL, EL, RL>(self: Fx<AL, EL, RL>) => Fx<readonly [AL, AR], EL | ER, RL | RR>;
132
- <AL, EL, RL, AR, ER, RR>(
133
- self: Fx<AL, EL, RL>,
134
- that: Fx<AR, ER, RR>,
135
- ): Fx<readonly [AL, AR], EL | ER, RL | RR>;
136
- } = dual(
137
- 2,
138
- <AL, EL, RL, AR, ER, RR>(
139
- self: Fx<AL, EL, RL>,
140
- that: Fx<AR, ER, RR>,
141
- ): Fx<readonly [AL, AR], EL | ER, RL | RR> => tuple(self, that),
142
- );
143
-
144
- /**
145
- * Zips two Fx streams by latest values and combines each pair with a function.
146
- * Waits for both to emit at least once, then emits `f(left, right)` whenever
147
- * either stream emits.
148
- *
149
- * **Completion:** Completes when **both** streams have completed.
150
- * **Errors:** The first failure from either stream fails the result.
151
- *
152
- * @param that - The second Fx stream.
153
- * @param f - Function to combine the latest `(left, right)` into a single value.
154
- * @returns An Fx that emits combined values.
155
- * @since 1.0.0
156
- * @category combinators
157
- */
158
- export const zipLatestWith: {
159
- <AL, AR, ER, RR, B>(
160
- that: Fx<AR, ER, RR>,
161
- f: (left: AL, right: AR) => B,
162
- ): <EL, RL>(self: Fx<AL, EL, RL>) => Fx<B, EL | ER, RL | RR>;
163
- <AL, EL, RL, AR, ER, RR, B>(
164
- self: Fx<AL, EL, RL>,
165
- that: Fx<AR, ER, RR>,
166
- f: (left: AL, right: AR) => B,
167
- ): Fx<B, EL | ER, RL | RR>;
168
- } = dual(
169
- 3,
170
- <AL, EL, RL, AR, ER, RR, B>(
171
- self: Fx<AL, EL, RL>,
172
- that: Fx<AR, ER, RR>,
173
- f: (left: AL, right: AR) => B,
174
- ): Fx<B, EL | ER, RL | RR> => map(zipLatest(self, that), (pair) => f(pair[0], pair[1])),
175
- );
@@ -1,23 +0,0 @@
1
- import type * as Duration from "effect/Duration";
2
- import { flatMap, sleep } from "effect/Effect";
3
- import { dual } from "effect/Function";
4
- import type { Fx } from "../Fx.js";
5
- import { make } from "./make.js";
6
-
7
- /**
8
- * Creates an Fx that emits a single value after a specified delay.
9
- *
10
- * @param value - The value to emit.
11
- * @param delay - The duration to wait before emitting.
12
- * @returns An `Fx` that emits the value after the delay.
13
- * @since 1.0.0
14
- * @category constructors
15
- */
16
- export const at: {
17
- (delay: Duration.Input): <A>(value: A) => Fx<A>;
18
- <A>(value: A, delay: Duration.Input): Fx<A>;
19
- } = dual(
20
- 2,
21
- <A>(value: A, delay: Duration.Input): Fx<A> =>
22
- make<A, never, never>((sink) => flatMap(sleep(delay), () => sink.onSuccess(value))),
23
- );
@@ -1,17 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import { flow } from "effect/Function";
3
- import type { Fx } from "../Fx.js";
4
- import { failCause } from "./failCause.js";
5
-
6
- /**
7
- * Creates an Fx that immediately terminates with a defect (unexpected error).
8
- *
9
- * @param defect - The defect value.
10
- * @returns An `Fx` that dies immediately.
11
- * @since 1.0.0
12
- * @category constructors
13
- */
14
- export const die: (defect: unknown) => Fx<never, never, never> = /*#__PURE__*/ flow(
15
- Cause.die,
16
- failCause,
17
- );
@@ -1,10 +0,0 @@
1
- import { void as void_ } from "effect/Effect";
2
- import type { Fx } from "../Fx.js";
3
- import { make } from "./make.js";
4
-
5
- /**
6
- * An Fx that emits no values and completes immediately.
7
- * @since 1.0.0
8
- * @category constructors
9
- */
10
- export const empty: Fx<never, never, never> = make<never, never, never>(() => void_);
@@ -1,14 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import { flow } from "effect/Function";
3
- import type { Fx } from "../Fx.js";
4
- import { failCause } from "./failCause.js";
5
-
6
- /**
7
- * Creates an Fx that immediately fails with the specified error.
8
- *
9
- * @param error - The error to fail with.
10
- * @returns An `Fx` that fails immediately.
11
- * @since 1.0.0
12
- * @category constructors
13
- */
14
- export const fail: <E>(error: E) => Fx<never, E, never> = /*#__PURE__*/ flow(Cause.fail, failCause);
@@ -1,14 +0,0 @@
1
- import type * as Cause from "effect/Cause";
2
- import type { Fx } from "../Fx.js";
3
- import { make } from "./make.js";
4
-
5
- /**
6
- * Creates an Fx that immediately terminates with the specified Cause.
7
- *
8
- * @param cause - The cause of failure.
9
- * @returns An `Fx` that terminates with the given cause.
10
- * @since 1.0.0
11
- * @category constructors
12
- */
13
- export const failCause = <E>(cause: Cause.Cause<E>): Fx<never, E, never> =>
14
- /*#__PURE__*/ make<never, E, never>((sink) => sink.onFailure(cause));
@@ -1,245 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import type { SpanOptionsNoTrace } from "effect/Tracer";
3
- import type { unassigned } from "effect/Types";
4
- import { unwrap } from "../combinators/unwrap.js";
5
- import type { Fx } from "../Fx.js";
6
- import { isFx } from "../TypeId.js";
7
-
8
- /** Extract error type from Yieldable (Effect v4 has no Yieldable.Error) */
9
- type _YieldableError<Y> = Y extends Effect.Yieldable<any, any, infer E, any> ? E : never;
10
- /** Extract services type from Yieldable (Effect v4 has no Yieldable.Services) */
11
- type _YieldableServices<Y> = Y extends Effect.Yieldable<any, any, any, infer R> ? R : never;
12
-
13
- /**
14
- * @since 1.0.0
15
- * @category function
16
- */
17
- export namespace fn {
18
- /**
19
- * @since 1.0.0
20
- * @category models
21
- */
22
- export type Gen = {
23
- <
24
- Eff extends Effect.Yieldable<any, any, any, any>,
25
- ReturnFx extends Fx.Any,
26
- Args extends Array<any>,
27
- >(
28
- body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>,
29
- ): (
30
- ...args: Args
31
- ) => Fx<
32
- Fx.Success<ReturnFx>,
33
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
34
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
35
- >;
36
- <
37
- Self,
38
- Eff extends Effect.Yieldable<any, any, any, any>,
39
- ReturnFx extends Fx.Any,
40
- Args extends Array<any>,
41
- >(
42
- body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>,
43
- ): (
44
- this: Self,
45
- ...args: Args
46
- ) => Fx<
47
- Fx.Success<ReturnFx>,
48
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
49
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
50
- >;
51
-
52
- <
53
- Eff extends Effect.Yieldable<any, any, any, any>,
54
- ReturnFx extends Fx.Any,
55
- Args extends Array<any>,
56
- A,
57
- >(
58
- body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>,
59
- a: (
60
- _: Fx<
61
- Fx.Success<ReturnFx>,
62
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
63
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
64
- >,
65
- ...args: Args
66
- ) => A,
67
- ): (...args: Args) => A;
68
- <
69
- Self,
70
- Eff extends Effect.Yieldable<any, any, any, any>,
71
- ReturnFx extends Fx.Any,
72
- Args extends Array<any>,
73
- A,
74
- >(
75
- body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>,
76
- a: (
77
- _: Fx<
78
- Fx.Success<ReturnFx>,
79
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
80
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
81
- >,
82
- ...args: Args
83
- ) => A,
84
- ): (this: Self, ...args: Args) => A;
85
-
86
- <
87
- Eff extends Effect.Yieldable<any, any, any, any>,
88
- ReturnFx extends Fx.Any,
89
- Args extends Array<any>,
90
- A,
91
- B,
92
- >(
93
- body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>,
94
- a: (
95
- _: Fx<
96
- Fx.Success<ReturnFx>,
97
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
98
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
99
- >,
100
- ...args: Args
101
- ) => A,
102
- b: (_: A, ...args: Args) => B,
103
- ): (...args: Args) => B;
104
- <
105
- Self,
106
- Eff extends Effect.Yieldable<any, any, any, any>,
107
- ReturnFx extends Fx.Any,
108
- Args extends Array<any>,
109
- A,
110
- B,
111
- >(
112
- body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>,
113
- a: (
114
- _: Fx<
115
- Fx.Success<ReturnFx>,
116
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
117
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
118
- >,
119
- ...args: Args
120
- ) => A,
121
- b: (_: A, ...args: Args) => B,
122
- ): (this: Self, ...args: Args) => B;
123
-
124
- <
125
- Eff extends Effect.Yieldable<any, any, any, any>,
126
- ReturnFx extends Fx.Any,
127
- Args extends Array<any>,
128
- A,
129
- B,
130
- C,
131
- >(
132
- body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>,
133
- a: (
134
- _: Fx<
135
- Fx.Success<ReturnFx>,
136
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
137
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
138
- >,
139
- ...args: Args
140
- ) => A,
141
- b: (_: A, ...args: Args) => B,
142
- c: (_: B, ...args: Args) => C,
143
- ): (...args: Args) => C;
144
- <
145
- Self,
146
- Eff extends Effect.Yieldable<any, any, any, any>,
147
- ReturnFx extends Fx.Any,
148
- Args extends Array<any>,
149
- A,
150
- B,
151
- C,
152
- >(
153
- body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>,
154
- a: (
155
- _: Fx<
156
- Fx.Success<ReturnFx>,
157
- Fx.Error<ReturnFx> | _YieldableError<Eff>,
158
- Fx.Services<ReturnFx> | _YieldableServices<Eff>
159
- >,
160
- ...args: Args
161
- ) => A,
162
- b: (_: A, ...args: Args) => B,
163
- c: (_: B, ...args: Args) => C,
164
- ): (this: Self, ...args: Args) => C;
165
- };
166
-
167
- /**
168
- * @since 1.0.0
169
- * @category models
170
- */
171
- export type NonGen = {
172
- <Args extends Array<any>, ReturnFx extends Fx.Any>(
173
- body: (this: unassigned, ...args: Args) => ReturnFx,
174
- ): (...args: Args) => ReturnFx;
175
- <Self, Args extends Array<any>, ReturnFx extends Fx.Any>(
176
- body: (this: Self, ...args: Args) => ReturnFx,
177
- ): (this: Self, ...args: Args) => ReturnFx;
178
-
179
- <Args extends Array<any>, ReturnFx extends Fx.Any, A>(
180
- body: (this: unassigned, ...args: Args) => ReturnFx,
181
- a: (_: ReturnFx, ...args: Args) => A,
182
- ): (...args: Args) => A;
183
- <Self, Args extends Array<any>, ReturnFx extends Fx.Any, A>(
184
- body: (this: Self, ...args: Args) => ReturnFx,
185
- a: (_: ReturnFx, ...args: Args) => A,
186
- ): (this: Self, ...args: Args) => A;
187
-
188
- <Args extends Array<any>, ReturnFx extends Fx.Any, A, B>(
189
- body: (this: unassigned, ...args: Args) => ReturnFx,
190
- a: (_: ReturnFx, ...args: Args) => A,
191
- b: (_: A, ...args: Args) => B,
192
- ): (...args: Args) => B;
193
- <Self, Args extends Array<any>, ReturnFx extends Fx.Any, A, B>(
194
- body: (this: Self, ...args: Args) => ReturnFx,
195
- a: (_: ReturnFx, ...args: Args) => A,
196
- b: (_: A, ...args: Args) => B,
197
- ): (this: Self, ...args: Args) => B;
198
-
199
- <Args extends Array<any>, ReturnFx extends Fx.Any, A, B, C>(
200
- body: (this: unassigned, ...args: Args) => ReturnFx,
201
- a: (_: ReturnFx, ...args: Args) => A,
202
- b: (_: A, ...args: Args) => B,
203
- c: (_: B, ...args: Args) => C,
204
- ): (...args: Args) => C;
205
- <Self, Args extends Array<any>, ReturnFx extends Fx.Any, A, B, C>(
206
- body: (this: Self, ...args: Args) => ReturnFx,
207
- a: (_: ReturnFx, ...args: Args) => A,
208
- b: (_: A, ...args: Args) => B,
209
- c: (_: B, ...args: Args) => C,
210
- ): (this: Self, ...args: Args) => C;
211
- };
212
- }
213
-
214
- export const fn: fn.Gen &
215
- fn.NonGen & {
216
- (name: string, options?: SpanOptionsNoTrace): fn.Gen & fn.NonGen;
217
- } = function (...args: Array<any>): any {
218
- const [first, ...rest] = args;
219
-
220
- if (typeof first === "string") {
221
- const fn_ = Effect.fn(first, ...rest);
222
- return (body: any, ...pipeables: Array<Function>) =>
223
- fn_(
224
- unwrapApply(body),
225
- unwrap,
226
- // @ts-expect-error - It's fine to be variadic
227
- ...pipeables,
228
- );
229
- }
230
-
231
- return Effect.fn(
232
- unwrapApply(first),
233
- unwrap,
234
- // @ts-expect-error - It's fine to be variadic
235
- ...rest,
236
- );
237
- };
238
-
239
- function unwrapApply(fn: Function) {
240
- return function (this: any, ...args: Array<any>) {
241
- const x = fn.apply(this, args);
242
- if (isFx(x)) return Effect.succeed(x);
243
- return x;
244
- };
245
- }
@@ -1,24 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import type { Fx } from "../Fx.js";
3
- import { make } from "./make.js";
4
-
5
- /**
6
- * Creates an Fx from an Effect.
7
- *
8
- * If the Effect succeeds, the Fx emits the value and completes.
9
- * If the Effect fails, the Fx fails with the same error.
10
- *
11
- * @param effect - The effect to convert.
12
- * @returns An `Fx` representing the execution of the effect.
13
- * @since 1.0.0
14
- * @category constructors
15
- */
16
- export const fromEffect = <A, E = never, R = never>(effect: Effect.Effect<A, E, R>): Fx<A, E, R> =>
17
- /*#__PURE__*/ make<A, E, R>((sink) => Effect.matchCauseEffect(effect, sink));
18
-
19
- /**
20
- * An Fx that runs forever without emitting any values.
21
- * @since 1.0.0
22
- * @category constructors
23
- */
24
- export const never: Fx<never, never, never> = make<never, never, never>(() => Effect.never);
@@ -1,19 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import { flow } from "effect/Function";
3
- import { failCause } from "./failCause.js";
4
-
5
- const fromFailuresCause = <E>(failures: Iterable<E>): Cause.Cause<E> =>
6
- Array.from(failures).reduce(
7
- (acc, e) => Cause.combine(acc, Cause.fail(e)),
8
- Cause.empty as Cause.Cause<E>,
9
- );
10
-
11
- /**
12
- * Creates an Fx from a collection of failures (errors).
13
- *
14
- * @param failures - An iterable of failures.
15
- * @returns An `Fx` that fails with the combined failures.
16
- * @since 1.0.0
17
- * @category constructors
18
- */
19
- export const fromFailures = /*#__PURE__*/ flow(fromFailuresCause, failCause);
@@ -1,15 +0,0 @@
1
- import { forEach } from "effect/Effect";
2
- import type { Fx } from "../Fx.js";
3
- import { make } from "./make.js";
4
-
5
- /**
6
- * Creates an Fx from an Iterable.
7
- * Emits each value from the iterable in order and then completes.
8
- *
9
- * @param iterable - The iterable to emit values from.
10
- * @returns An `Fx` that emits the values from the iterable.
11
- * @since 1.0.0
12
- * @category constructors
13
- */
14
- export const fromIterable = <A>(iterable: Iterable<A>): Fx<A> =>
15
- make<A>((sink) => forEach(iterable, sink.onSuccess, { discard: true }));
@@ -1,18 +0,0 @@
1
- import { schedule as schedule_Effect } from "effect/Effect";
2
- import type { Schedule } from "effect/Schedule";
3
- import type { Fx } from "../Fx.js";
4
- import { make } from "./make.js";
5
-
6
- /**
7
- * Creates an Fx that emits values according to a Schedule.
8
- * The Fx emits `void` each time the schedule fires.
9
- *
10
- * @param schedule - The schedule to follow.
11
- * @returns An `Fx` that emits periodically according to the schedule.
12
- * @since 1.0.0
13
- * @category constructors
14
- */
15
- export const fromSchedule = <Error, Env>(
16
- schedule: Schedule<unknown, unknown, Error, Env>,
17
- ): Fx<void, Error, Env> =>
18
- /*#__PURE__*/ make<void, Error, Env>((sink) => schedule_Effect(sink.onSuccess(), schedule));
@@ -1,17 +0,0 @@
1
- import type { Yieldable } from "effect/Effect";
2
- import { matchCauseEffect } from "effect/Effect";
3
- import type { Fx } from "../Fx.js";
4
- import { make } from "./make.js";
5
-
6
- /**
7
- * Creates an Fx from any Yieldable value (e.g., Effect, Promise, etc.).
8
- *
9
- * @param yieldable - The yieldable value to convert.
10
- * @returns An `Fx` that emits the result of the yieldable.
11
- * @since 1.0.0
12
- * @category constructors
13
- */
14
- export const fromYieldable = <A, E = never, R = never>(
15
- yieldable: Yieldable<any, A, E, R>,
16
- ): Fx<A, E, R> =>
17
- /*#__PURE__*/ make<A, E, R>((sink) => matchCauseEffect(yieldable.asEffect(), sink));
@@ -1,15 +0,0 @@
1
- export * from "./at.js";
2
- export * from "./die.js";
3
- export * from "./empty.js";
4
- export * from "./fail.js";
5
- export * from "./failCause.js";
6
- export * from "./fn.js";
7
- export * from "./fromEffect.js";
8
- export * from "./fromFailures.js";
9
- export * from "./fromIterable.js";
10
- export * from "./fromSchedule.js";
11
- export * from "./fromYieldable.js";
12
- export * from "./interrupt.js";
13
- export * from "./make.js";
14
- export * from "./periodic.js";
15
- export * from "./succeed.js";
@@ -1,13 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import { flow } from "effect/Function";
3
- import { failCause } from "./failCause.js";
4
-
5
- /**
6
- * Creates an Fx that immediately interrupts.
7
- *
8
- * @param id - The FiberId responsible for the interruption.
9
- * @returns An `Fx` that is interrupted.
10
- * @since 1.0.0
11
- * @category constructors
12
- */
13
- export const interrupt = /*#__PURE__*/ flow(Cause.interrupt, failCause);