@typed/fx 2.0.0-beta.0 → 2.0.0-beta.10

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 (640) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -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 +245 -0
  10. package/dist/Fx/combinators/additive.d.ts.map +1 -0
  11. package/dist/Fx/combinators/additive.js +243 -0
  12. package/dist/Fx/combinators/catch.d.ts +246 -12
  13. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  14. package/dist/Fx/combinators/catch.js +236 -12
  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 +40 -0
  19. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -0
  20. package/dist/Fx/combinators/changesWithEffect.js +48 -0
  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 +71 -0
  37. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -0
  38. package/dist/Fx/combinators/dropUntil.js +65 -0
  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 +51 -4
  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 +45 -0
  109. package/dist/Fx/combinators/index.d.ts.map +1 -1
  110. package/dist/Fx/combinators/index.js +45 -0
  111. package/dist/Fx/combinators/keyed.d.ts +124 -10
  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 +40 -0
  130. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -0
  131. package/dist/Fx/combinators/mapBoth.js +33 -0
  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 +33 -0
  136. package/dist/Fx/combinators/mapError.d.ts.map +1 -0
  137. package/dist/Fx/combinators/mapError.js +32 -0
  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 +162 -8
  157. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  158. package/dist/Fx/combinators/provide.js +154 -6
  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 +45 -0
  166. package/dist/Fx/combinators/result.d.ts.map +1 -0
  167. package/dist/Fx/combinators/result.js +46 -0
  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 +72 -0
  175. package/dist/Fx/combinators/scan.d.ts.map +1 -0
  176. package/dist/Fx/combinators/scan.js +77 -0
  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 +45 -1
  181. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  182. package/dist/Fx/combinators/skip.js +43 -1
  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 +117 -0
  190. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -0
  191. package/dist/Fx/combinators/skipWhile.js +134 -0
  192. package/dist/Fx/combinators/slice.d.ts +97 -2
  193. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  194. package/dist/Fx/combinators/slice.js +45 -1
  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 +46 -1
  202. package/dist/Fx/combinators/take.d.ts.map +1 -1
  203. package/dist/Fx/combinators/take.js +44 -1
  204. package/dist/Fx/combinators/takeUntil.d.ts +62 -2
  205. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  206. package/dist/Fx/combinators/takeUntil.js +62 -2
  207. package/dist/Fx/combinators/takeWhile.d.ts +60 -0
  208. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -0
  209. package/dist/Fx/combinators/takeWhile.js +54 -0
  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 +135 -0
  241. package/dist/Fx/combinators/zip.d.ts.map +1 -0
  242. package/dist/Fx/combinators/zip.js +160 -0
  243. package/dist/Fx/constructors/at.d.ts +23 -3
  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 +31 -2
  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 +55 -0
  306. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  307. package/dist/Fx/internal/effectableWithOverride.js +46 -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 +1286 -98
  342. package/dist/Push/Push.d.ts.map +1 -1
  343. package/dist/Push/Push.js +1074 -88
  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 +137 -16
  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 +1242 -43
  456. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  457. package/dist/RefSubject/RefSubject.js +1012 -86
  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 +789 -3
  480. package/dist/Sink/combinators.d.ts.map +1 -1
  481. package/dist/Sink/combinators.js +812 -7
  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 +475 -25
  486. package/dist/Versioned/Versioned.d.ts.map +1 -1
  487. package/dist/Versioned/Versioned.js +298 -46
  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 +125 -11
  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/catch.ts +0 -165
  498. package/src/Fx/combinators/causes.ts +0 -23
  499. package/src/Fx/combinators/compact.ts +0 -15
  500. package/src/Fx/combinators/continueWith.ts +0 -78
  501. package/src/Fx/combinators/ensuring.ts +0 -23
  502. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  503. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  504. package/src/Fx/combinators/exhaustMap.ts +0 -36
  505. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  506. package/src/Fx/combinators/exit.ts +0 -15
  507. package/src/Fx/combinators/filter.ts +0 -22
  508. package/src/Fx/combinators/filterEffect.ts +0 -31
  509. package/src/Fx/combinators/filterMap.ts +0 -23
  510. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  511. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  512. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  513. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  514. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  515. package/src/Fx/combinators/flatMap.ts +0 -51
  516. package/src/Fx/combinators/flatMapConcurrently.ts +0 -36
  517. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  518. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  519. package/src/Fx/combinators/flip.ts +0 -14
  520. package/src/Fx/combinators/gen.ts +0 -24
  521. package/src/Fx/combinators/genScoped.ts +0 -24
  522. package/src/Fx/combinators/index.ts +0 -51
  523. package/src/Fx/combinators/keyed.ts +0 -369
  524. package/src/Fx/combinators/loop.ts +0 -27
  525. package/src/Fx/combinators/loopCause.ts +0 -34
  526. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  527. package/src/Fx/combinators/loopEffect.ts +0 -34
  528. package/src/Fx/combinators/map.ts +0 -22
  529. package/src/Fx/combinators/mapEffect.ts +0 -32
  530. package/src/Fx/combinators/mergeAll.ts +0 -22
  531. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  532. package/src/Fx/combinators/onError.ts +0 -40
  533. package/src/Fx/combinators/onExit.ts +0 -82
  534. package/src/Fx/combinators/onInterrupt.ts +0 -87
  535. package/src/Fx/combinators/provide.ts +0 -62
  536. package/src/Fx/combinators/skip.ts +0 -20
  537. package/src/Fx/combinators/skipRepeats.ts +0 -15
  538. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  539. package/src/Fx/combinators/slice.ts +0 -32
  540. package/src/Fx/combinators/switchMap.ts +0 -55
  541. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  542. package/src/Fx/combinators/take.ts +0 -17
  543. package/src/Fx/combinators/takeUntil.ts +0 -50
  544. package/src/Fx/combinators/tapEffect.ts +0 -39
  545. package/src/Fx/combinators/tuple.ts +0 -79
  546. package/src/Fx/combinators/unwrap.ts +0 -21
  547. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  548. package/src/Fx/combinators/when.ts +0 -64
  549. package/src/Fx/combinators/withSpan.ts +0 -24
  550. package/src/Fx/constructors/at.ts +0 -23
  551. package/src/Fx/constructors/die.ts +0 -17
  552. package/src/Fx/constructors/empty.ts +0 -10
  553. package/src/Fx/constructors/fail.ts +0 -14
  554. package/src/Fx/constructors/failCause.ts +0 -14
  555. package/src/Fx/constructors/fn.ts +0 -245
  556. package/src/Fx/constructors/fromEffect.ts +0 -24
  557. package/src/Fx/constructors/fromFailures.ts +0 -19
  558. package/src/Fx/constructors/fromIterable.ts +0 -15
  559. package/src/Fx/constructors/fromSchedule.ts +0 -18
  560. package/src/Fx/constructors/fromYieldable.ts +0 -17
  561. package/src/Fx/constructors/index.ts +0 -15
  562. package/src/Fx/constructors/interrupt.ts +0 -13
  563. package/src/Fx/constructors/make.ts +0 -103
  564. package/src/Fx/constructors/periodic.ts +0 -15
  565. package/src/Fx/constructors/succeed.ts +0 -37
  566. package/src/Fx/constructors/suspend.ts +0 -6
  567. package/src/Fx/index.ts +0 -6
  568. package/src/Fx/internal/DeferredRef.ts +0 -87
  569. package/src/Fx/internal/UnionToTuple.ts +0 -12
  570. package/src/Fx/internal/diff.ts +0 -191
  571. package/src/Fx/internal/equivalence.ts +0 -12
  572. package/src/Fx/internal/multicast.ts +0 -51
  573. package/src/Fx/internal/ring-buffer.ts +0 -60
  574. package/src/Fx/internal/scope.ts +0 -58
  575. package/src/Fx/internal/yieldable.ts +0 -31
  576. package/src/Fx/run/collect.ts +0 -79
  577. package/src/Fx/run/first.ts +0 -20
  578. package/src/Fx/run/fork.ts +0 -40
  579. package/src/Fx/run/index.ts +0 -5
  580. package/src/Fx/run/observe.ts +0 -114
  581. package/src/Fx/run/runPromise.ts +0 -32
  582. package/src/Fx/stream.ts +0 -42
  583. package/src/Fx.catch.test.ts +0 -61
  584. package/src/Fx.fn.test.ts +0 -51
  585. package/src/Fx.lifecycle.test.ts +0 -80
  586. package/src/Fx.test.ts +0 -71
  587. package/src/Fx.ts +0 -1
  588. package/src/Push/Push.ts +0 -903
  589. package/src/Push/index.ts +0 -1
  590. package/src/Push.test.ts +0 -26
  591. package/src/Push.ts +0 -1
  592. package/src/RefSubject/RefArray.ts +0 -512
  593. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  594. package/src/RefSubject/RefBigDecimal.ts +0 -295
  595. package/src/RefSubject/RefBigInt.test.ts +0 -56
  596. package/src/RefSubject/RefBigInt.ts +0 -189
  597. package/src/RefSubject/RefBoolean.test.ts +0 -57
  598. package/src/RefSubject/RefBoolean.ts +0 -185
  599. package/src/RefSubject/RefCause.test.ts +0 -53
  600. package/src/RefSubject/RefCause.ts +0 -146
  601. package/src/RefSubject/RefChunk.ts +0 -510
  602. package/src/RefSubject/RefDateTime.test.ts +0 -43
  603. package/src/RefSubject/RefDateTime.ts +0 -264
  604. package/src/RefSubject/RefDuration.test.ts +0 -49
  605. package/src/RefSubject/RefDuration.ts +0 -188
  606. package/src/RefSubject/RefGraph.ts +0 -650
  607. package/src/RefSubject/RefHashMap.ts +0 -465
  608. package/src/RefSubject/RefHashRing.ts +0 -262
  609. package/src/RefSubject/RefHashSet.ts +0 -308
  610. package/src/RefSubject/RefIterable.ts +0 -445
  611. package/src/RefSubject/RefOption.test.ts +0 -67
  612. package/src/RefSubject/RefOption.ts +0 -193
  613. package/src/RefSubject/RefRecord.ts +0 -612
  614. package/src/RefSubject/RefResult.test.ts +0 -63
  615. package/src/RefSubject/RefResult.ts +0 -209
  616. package/src/RefSubject/RefString.test.ts +0 -61
  617. package/src/RefSubject/RefString.ts +0 -256
  618. package/src/RefSubject/RefStruct.test.ts +0 -60
  619. package/src/RefSubject/RefStruct.ts +0 -253
  620. package/src/RefSubject/RefSubject.ts +0 -2545
  621. package/src/RefSubject/RefTrie.ts +0 -356
  622. package/src/RefSubject/RefTuple.test.ts +0 -60
  623. package/src/RefSubject/RefTuple.ts +0 -231
  624. package/src/RefSubject/index.ts +0 -21
  625. package/src/RefSubject.test.ts +0 -65
  626. package/src/RefSubject.ts +0 -1
  627. package/src/Sink/Sink.ts +0 -159
  628. package/src/Sink/combinators.ts +0 -993
  629. package/src/Sink/index.ts +0 -2
  630. package/src/Sink.ts +0 -1
  631. package/src/Subject/Subject.ts +0 -441
  632. package/src/Subject/index.ts +0 -1
  633. package/src/Subject.test.ts +0 -47
  634. package/src/Subject.ts +0 -1
  635. package/src/Versioned/Versioned.ts +0 -521
  636. package/src/Versioned/index.ts +0 -1
  637. package/src/Versioned.test.ts +0 -23
  638. package/src/Versioned.ts +0 -1
  639. package/src/index.ts +0 -7
  640. package/tsconfig.json +0 -6
@@ -1,39 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { dual } from "effect/Function";
3
- import * as sinkCore from "../../Sink/combinators.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
-
7
- /**
8
- * Performs an effect for each element of the Fx, without changing the elements.
9
- *
10
- * @param f - An effectful function to apply to each element.
11
- * @returns An `Fx` that emits the original elements.
12
- * @since 1.0.0
13
- * @category combinators
14
- */
15
- export const tap: {
16
- <A, E2 = never, R2 = never>(
17
- f: (a: A) => void | Effect.Effect<unknown, E2, R2>,
18
- ): <E, R>(self: Fx<A, E | E2, R>) => Fx<A, E | E2, R | R2>;
19
-
20
- <A, E, R, E2 = never, R2 = never>(
21
- self: Fx<A, E | E2, R>,
22
- f: (a: A) => void | Effect.Effect<unknown, E2, R2>,
23
- ): Fx<A, E | E2, R | R2>;
24
- } = dual(
25
- 2,
26
- <A, E, R, E2, R2>(
27
- self: Fx<A, E, R>,
28
- f: (a: A) => void | Effect.Effect<unknown, E2, R2>,
29
- ): Fx<A, E | E2, R | R2> =>
30
- make<A, E | E2, R | R2>((sink) =>
31
- self.run(
32
- sinkCore.tapEffect(sink, (a) => {
33
- const x = f(a);
34
- if (Effect.isEffect(x)) return x;
35
- return Effect.void;
36
- }),
37
- ),
38
- ),
39
- );
@@ -1,79 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { make as makeSink } from "../../Sink/Sink.js";
3
- import { make } from "../constructors/make.js";
4
- import { succeed } from "../constructors/succeed.js";
5
- import type { Fx } from "../Fx.js";
6
- import { map } from "./map.js";
7
-
8
- /**
9
- * Combines multiple Fx streams into a single Fx that emits a tuple of the latest values from each stream.
10
- * The resulting Fx waits for all input streams to emit at least once before emitting the first tuple.
11
- * Afterwards, it emits a new tuple whenever any input stream emits a new value.
12
- *
13
- * @param fxs - The Fx streams to combine.
14
- * @returns An `Fx` emitting tuples of values.
15
- * @since 1.0.0
16
- * @category combinators
17
- */
18
- export function tuple<FX extends ReadonlyArray<Fx<any, any, any>>>(
19
- ...fxs: FX
20
- ): Fx<
21
- { readonly [K in keyof FX]: Fx.Success<FX[K]> },
22
- Fx.Error<FX[number]>,
23
- Fx.Services<FX[number]>
24
- > {
25
- if (fxs.length === 0) return succeed([] as { readonly [K in keyof FX]: Fx.Success<FX[K]> });
26
- if (fxs.length === 1) return fxs[0];
27
-
28
- type Result = { readonly [K in keyof FX]: Fx.Success<FX[K]> };
29
- return make(
30
- Effect.fn(function* (sink) {
31
- const len = fxs.length;
32
- // oxlint-disable-next-line unicorn/no-new-array
33
- const result: Array<Fx.Success<FX[number]>> = new Array(len);
34
- const filled = new Set<number>();
35
-
36
- return yield* Effect.forEach(
37
- fxs,
38
- (fx, i) =>
39
- fx.run(
40
- makeSink(
41
- sink.onFailure,
42
- Effect.fn(function* (value) {
43
- result[i] = value;
44
- filled.add(i);
45
- if (filled.size === len) {
46
- yield* sink.onSuccess(result as Result);
47
- }
48
- }),
49
- ),
50
- ),
51
- { concurrency: "unbounded", discard: true },
52
- );
53
- }),
54
- );
55
- }
56
-
57
- /**
58
- * Combines a record of Fx streams into a single Fx that emits a record of the latest values.
59
- * Similar to `tuple`, but for objects.
60
- *
61
- * @param fxs - A record of Fx streams.
62
- * @returns An `Fx` emitting records of values.
63
- * @since 1.0.0
64
- * @category combinators
65
- */
66
- export function struct<FXS extends Readonly<Record<string, Fx<any, any, any>>>>(
67
- fxs: FXS,
68
- ): Fx<
69
- { readonly [K in keyof FXS]: Fx.Success<FXS[K]> },
70
- Fx.Error<FXS[keyof FXS]>,
71
- Fx.Services<FXS[keyof FXS]>
72
- > {
73
- return map(
74
- tuple(...Object.entries(fxs).map(([key, fx]) => map(fx, (value) => [key, value] as const))),
75
- Object.fromEntries as (entries: ReadonlyArray<readonly [string, any]>) => {
76
- readonly [K in keyof FXS]: Fx.Success<FXS[K]>;
77
- },
78
- );
79
- }
@@ -1,21 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { make } from "../constructors/make.js";
3
- import type { Fx } from "../Fx.js";
4
-
5
- /**
6
- * Unwraps an Effect that produces an Fx into a single Fx.
7
- *
8
- * @param effect - An `Effect` that produces an `Fx`.
9
- * @returns An `Fx` that runs the effect and then the produced Fx.
10
- * @since 1.0.0
11
- * @category combinators
12
- */
13
- export const unwrap = <A, E, R, E2, R2>(
14
- effect: Effect.Effect<Fx<A, E, R>, E2, R2>,
15
- ): Fx<A, E | E2, R | R2> =>
16
- make<A, E | E2, R | R2>((sink) =>
17
- Effect.matchCauseEffect(effect, {
18
- onFailure: (cause) => sink.onFailure(cause),
19
- onSuccess: (fx) => fx.run(sink),
20
- }),
21
- );
@@ -1,26 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import type * as Scope from "effect/Scope";
3
- import { make } from "../constructors/make.js";
4
- import type { Fx } from "../Fx.js";
5
-
6
- /**
7
- * Unwraps an Effect that produces an Fx into a single Fx, managing the scope of the effect.
8
- *
9
- * The scope of the effect is closed when the Fx completes or is interrupted.
10
- *
11
- * @param effect - An `Effect` that produces an `Fx`.
12
- * @returns An `Fx` that runs the effect and then the produced Fx.
13
- * @since 1.0.0
14
- * @category combinators
15
- */
16
- export const unwrapScoped = <A, E, R, E2, R2>(
17
- effect: Effect.Effect<Fx<A, E, R>, E2, R2 | Scope.Scope>,
18
- ): Fx<A, E | E2, Exclude<R | R2, Scope.Scope>> =>
19
- make<A, E | E2, Exclude<R | R2, Scope.Scope>>((sink) =>
20
- Effect.scoped(
21
- Effect.matchCauseEffect(effect, {
22
- onFailure: (cause) => sink.onFailure(cause),
23
- onSuccess: (fx) => fx.run(sink),
24
- }),
25
- ),
26
- );
@@ -1,64 +0,0 @@
1
- import { dual } from "effect/Function";
2
- import type { Scope } from "effect/Scope";
3
- import { succeed } from "../constructors/succeed.js";
4
- import type { Fx } from "../Fx.js";
5
- import { switchMap } from "./switchMap.js";
6
-
7
- /**
8
- * Conditionally runs one of two Fx streams based on the boolean value emitted by the condition stream.
9
- *
10
- * @param condition - An `Fx` emitting booleans.
11
- * @param matchers - An object containing `onTrue` and `onFalse` Fx streams.
12
- * @returns An `Fx` that switches between `onTrue` and `onFalse` based on the condition.
13
- * @since 1.0.0
14
- * @category combinators
15
- */
16
- const if_: {
17
- <B, E2, R2, C, E3, R3>(matchers: {
18
- onTrue: Fx<B, E2, R2>;
19
- onFalse: Fx<C, E3, R3>;
20
- }): <E, R>(condition: Fx<boolean, E, R>) => Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope>;
21
-
22
- <E, R, B, E2, R2, C, E3, R3>(
23
- condition: Fx<boolean, E, R>,
24
- matchers: {
25
- onTrue: Fx<B, E2, R2>;
26
- onFalse: Fx<C, E3, R3>;
27
- },
28
- ): Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope>;
29
- } = dual(
30
- 2,
31
- <E, R, B, E2, R2, C, E3, R3>(
32
- condition: Fx<boolean, E, R>,
33
- matchers: {
34
- onTrue: Fx<B, E2, R2>;
35
- onFalse: Fx<C, E3, R3>;
36
- },
37
- ): Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope> => {
38
- return switchMap(
39
- condition,
40
- (pass): Fx<B | C, E2 | E3, R2 | R3> => (pass ? matchers.onTrue : matchers.onFalse),
41
- );
42
- },
43
- );
44
-
45
- export { if_ as if };
46
-
47
- /**
48
- * Conditionally emits one of two values based on the boolean value emitted by the condition stream.
49
- *
50
- * @param condition - An `Fx` emitting booleans.
51
- * @param matchers - An object containing `onTrue` and `onFalse` values.
52
- * @returns An `Fx` that emits the matched value.
53
- * @since 1.0.0
54
- * @category combinators
55
- */
56
- export const when = <E, R, B, C>(
57
- condition: Fx<boolean, E, R>,
58
- matchers: {
59
- onTrue: B;
60
- onFalse: C;
61
- },
62
- ): Fx<B | C, E, R | Scope> => {
63
- return if_(condition, { onTrue: succeed(matchers.onTrue), onFalse: succeed(matchers.onFalse) });
64
- };
@@ -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,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.DurationInput): <A>(value: A) => Fx<A>;
18
- <A>(value: A, delay: Duration.DurationInput): Fx<A>;
19
- } = dual(
20
- 2,
21
- <A>(value: A, delay: Duration.DurationInput): 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));