@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,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);