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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (663) hide show
  1. package/README.md +34 -20
  2. package/dist/Fx/Fx.d.ts +364 -12
  3. package/dist/Fx/Fx.d.ts.map +1 -1
  4. package/dist/Fx/Fx.js +37 -6
  5. package/dist/Fx/TypeId.d.ts +49 -3
  6. package/dist/Fx/TypeId.d.ts.map +1 -1
  7. package/dist/Fx/TypeId.js +39 -2
  8. package/dist/Fx/combinators/additive.d.ts +156 -5
  9. package/dist/Fx/combinators/additive.d.ts.map +1 -1
  10. package/dist/Fx/combinators/additive.js +156 -5
  11. package/dist/Fx/combinators/catch.d.ts +195 -22
  12. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  13. package/dist/Fx/combinators/catch.js +186 -16
  14. package/dist/Fx/combinators/causes.d.ts +24 -1
  15. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  16. package/dist/Fx/combinators/causes.js +24 -1
  17. package/dist/Fx/combinators/changesWithEffect.d.ts +20 -0
  18. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
  19. package/dist/Fx/combinators/changesWithEffect.js +20 -0
  20. package/dist/Fx/combinators/compact.d.ts +17 -0
  21. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  22. package/dist/Fx/combinators/compact.js +17 -0
  23. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  24. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  25. package/dist/Fx/combinators/concatMap.js +86 -0
  26. package/dist/Fx/combinators/continueWith.d.ts +109 -1
  27. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  28. package/dist/Fx/combinators/continueWith.js +109 -1
  29. package/dist/Fx/combinators/debounce.d.ts +34 -0
  30. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  31. package/dist/Fx/combinators/debounce.js +35 -0
  32. package/dist/Fx/combinators/delay.d.ts +34 -0
  33. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  34. package/dist/Fx/combinators/delay.js +31 -0
  35. package/dist/Fx/combinators/dropUntil.d.ts +42 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
  37. package/dist/Fx/combinators/dropUntil.js +42 -0
  38. package/dist/Fx/combinators/during.d.ts +38 -0
  39. package/dist/Fx/combinators/during.d.ts.map +1 -0
  40. package/dist/Fx/combinators/during.js +85 -0
  41. package/dist/Fx/combinators/ensuring.d.ts +33 -3
  42. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  43. package/dist/Fx/combinators/ensuring.js +33 -3
  44. package/dist/Fx/combinators/exhaustLatestMap.d.ts +40 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  46. package/dist/Fx/combinators/exhaustLatestMap.js +40 -4
  47. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +39 -3
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.js +39 -3
  50. package/dist/Fx/combinators/exhaustMap.d.ts +37 -0
  51. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  52. package/dist/Fx/combinators/exhaustMap.js +37 -0
  53. package/dist/Fx/combinators/exhaustMapEffect.d.ts +32 -0
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.js +32 -0
  56. package/dist/Fx/combinators/exit.d.ts +22 -1
  57. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  58. package/dist/Fx/combinators/exit.js +22 -1
  59. package/dist/Fx/combinators/filter.d.ts +16 -0
  60. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  61. package/dist/Fx/combinators/filter.js +16 -0
  62. package/dist/Fx/combinators/filterEffect.d.ts +21 -0
  63. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  64. package/dist/Fx/combinators/filterEffect.js +21 -0
  65. package/dist/Fx/combinators/filterMap.d.ts +19 -0
  66. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  67. package/dist/Fx/combinators/filterMap.js +19 -0
  68. package/dist/Fx/combinators/filterMapEffect.d.ts +20 -0
  69. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  70. package/dist/Fx/combinators/filterMapEffect.js +20 -0
  71. package/dist/Fx/combinators/filterMapLoop.d.ts +19 -0
  72. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  73. package/dist/Fx/combinators/filterMapLoop.js +19 -0
  74. package/dist/Fx/combinators/filterMapLoopCause.d.ts +20 -0
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.js +20 -0
  77. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +20 -0
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +20 -0
  80. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +20 -0
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.js +20 -0
  83. package/dist/Fx/combinators/flatMap.d.ts +48 -3
  84. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  85. package/dist/Fx/combinators/flatMap.js +35 -2
  86. package/dist/Fx/combinators/flatMapConcurrently.d.ts +50 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  88. package/dist/Fx/combinators/flatMapConcurrently.js +47 -1
  89. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +47 -3
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +39 -1
  92. package/dist/Fx/combinators/flatMapEffect.d.ts +44 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  94. package/dist/Fx/combinators/flatMapEffect.js +31 -1
  95. package/dist/Fx/combinators/flip.d.ts +33 -1
  96. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  97. package/dist/Fx/combinators/flip.js +33 -1
  98. package/dist/Fx/combinators/gen.d.ts +28 -9
  99. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  100. package/dist/Fx/combinators/gen.js +27 -3
  101. package/dist/Fx/combinators/genScoped.d.ts +32 -9
  102. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  103. package/dist/Fx/combinators/genScoped.js +30 -2
  104. package/dist/Fx/combinators/grouped.d.ts +89 -0
  105. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  106. package/dist/Fx/combinators/grouped.js +146 -0
  107. package/dist/Fx/combinators/index.d.ts +35 -0
  108. package/dist/Fx/combinators/index.d.ts.map +1 -1
  109. package/dist/Fx/combinators/index.js +35 -0
  110. package/dist/Fx/combinators/keyed.d.ts +121 -7
  111. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  112. package/dist/Fx/combinators/keyed.js +68 -10
  113. package/dist/Fx/combinators/loop.d.ts +16 -0
  114. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  115. package/dist/Fx/combinators/loop.js +16 -0
  116. package/dist/Fx/combinators/loopCause.d.ts +17 -0
  117. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  118. package/dist/Fx/combinators/loopCause.js +17 -0
  119. package/dist/Fx/combinators/loopCauseEffect.d.ts +18 -0
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  121. package/dist/Fx/combinators/loopCauseEffect.js +18 -0
  122. package/dist/Fx/combinators/loopEffect.d.ts +23 -0
  123. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  124. package/dist/Fx/combinators/loopEffect.js +23 -0
  125. package/dist/Fx/combinators/map.d.ts +45 -0
  126. package/dist/Fx/combinators/map.d.ts.map +1 -1
  127. package/dist/Fx/combinators/map.js +42 -0
  128. package/dist/Fx/combinators/mapBoth.d.ts +19 -0
  129. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
  130. package/dist/Fx/combinators/mapBoth.js +19 -0
  131. package/dist/Fx/combinators/mapEffect.d.ts +24 -0
  132. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  133. package/dist/Fx/combinators/mapEffect.js +24 -0
  134. package/dist/Fx/combinators/mapError.d.ts +20 -4
  135. package/dist/Fx/combinators/mapError.d.ts.map +1 -1
  136. package/dist/Fx/combinators/mapError.js +20 -4
  137. package/dist/Fx/combinators/mergeAll.d.ts +34 -0
  138. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  139. package/dist/Fx/combinators/mergeAll.js +34 -0
  140. package/dist/Fx/combinators/mergeOrdered.d.ts +35 -3
  141. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  142. package/dist/Fx/combinators/mergeOrdered.js +35 -3
  143. package/dist/Fx/combinators/onError.d.ts +33 -3
  144. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  145. package/dist/Fx/combinators/onError.js +33 -3
  146. package/dist/Fx/combinators/onExit.d.ts +28 -2
  147. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  148. package/dist/Fx/combinators/onExit.js +28 -2
  149. package/dist/Fx/combinators/onInterrupt.d.ts +48 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  151. package/dist/Fx/combinators/onInterrupt.js +48 -3
  152. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  153. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  154. package/dist/Fx/combinators/pairwise.js +31 -0
  155. package/dist/Fx/combinators/provide.d.ts +138 -17
  156. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  157. package/dist/Fx/combinators/provide.js +134 -13
  158. package/dist/Fx/combinators/race.d.ts +92 -0
  159. package/dist/Fx/combinators/race.d.ts.map +1 -0
  160. package/dist/Fx/combinators/race.js +149 -0
  161. package/dist/Fx/combinators/repeat.d.ts +41 -0
  162. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  163. package/dist/Fx/combinators/repeat.js +57 -0
  164. package/dist/Fx/combinators/result.d.ts +22 -0
  165. package/dist/Fx/combinators/result.d.ts.map +1 -1
  166. package/dist/Fx/combinators/result.js +26 -12
  167. package/dist/Fx/combinators/retry.d.ts +53 -0
  168. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  169. package/dist/Fx/combinators/retry.js +71 -0
  170. package/dist/Fx/combinators/sample.d.ts +31 -0
  171. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  172. package/dist/Fx/combinators/sample.js +42 -0
  173. package/dist/Fx/combinators/scan.d.ts +39 -0
  174. package/dist/Fx/combinators/scan.d.ts.map +1 -1
  175. package/dist/Fx/combinators/scan.js +41 -2
  176. package/dist/Fx/combinators/since.d.ts +30 -0
  177. package/dist/Fx/combinators/since.d.ts.map +1 -0
  178. package/dist/Fx/combinators/since.js +39 -0
  179. package/dist/Fx/combinators/skip.d.ts +31 -0
  180. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  181. package/dist/Fx/combinators/skip.js +31 -0
  182. package/dist/Fx/combinators/skipRepeats.d.ts +16 -0
  183. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  184. package/dist/Fx/combinators/skipRepeats.js +16 -0
  185. package/dist/Fx/combinators/skipRepeatsWith.d.ts +17 -0
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.js +17 -0
  188. package/dist/Fx/combinators/skipWhile.d.ts +68 -0
  189. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
  190. package/dist/Fx/combinators/skipWhile.js +68 -0
  191. package/dist/Fx/combinators/slice.d.ts +82 -0
  192. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  193. package/dist/Fx/combinators/slice.js +33 -0
  194. package/dist/Fx/combinators/switchMap.d.ts +38 -0
  195. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  196. package/dist/Fx/combinators/switchMap.js +42 -4
  197. package/dist/Fx/combinators/switchMapEffect.d.ts +37 -0
  198. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  199. package/dist/Fx/combinators/switchMapEffect.js +37 -0
  200. package/dist/Fx/combinators/take.d.ts +32 -0
  201. package/dist/Fx/combinators/take.d.ts.map +1 -1
  202. package/dist/Fx/combinators/take.js +32 -0
  203. package/dist/Fx/combinators/takeUntil.d.ts +46 -0
  204. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  205. package/dist/Fx/combinators/takeUntil.js +46 -0
  206. package/dist/Fx/combinators/takeWhile.d.ts +31 -0
  207. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
  208. package/dist/Fx/combinators/takeWhile.js +31 -0
  209. package/dist/Fx/combinators/tapEffect.d.ts +16 -0
  210. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  211. package/dist/Fx/combinators/tapEffect.js +16 -0
  212. package/dist/Fx/combinators/throttle.d.ts +79 -0
  213. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  214. package/dist/Fx/combinators/throttle.js +99 -0
  215. package/dist/Fx/combinators/timeout.d.ts +76 -0
  216. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  217. package/dist/Fx/combinators/timeout.js +110 -0
  218. package/dist/Fx/combinators/tuple.d.ts +30 -0
  219. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  220. package/dist/Fx/combinators/tuple.js +34 -3
  221. package/dist/Fx/combinators/until.d.ts +27 -0
  222. package/dist/Fx/combinators/until.d.ts.map +1 -0
  223. package/dist/Fx/combinators/until.js +56 -0
  224. package/dist/Fx/combinators/unwrap.d.ts +29 -0
  225. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  226. package/dist/Fx/combinators/unwrap.js +29 -0
  227. package/dist/Fx/combinators/unwrapScoped.d.ts +33 -0
  228. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  229. package/dist/Fx/combinators/unwrapScoped.js +33 -0
  230. package/dist/Fx/combinators/when.d.ts +35 -0
  231. package/dist/Fx/combinators/when.d.ts.map +1 -1
  232. package/dist/Fx/combinators/when.js +36 -1
  233. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  234. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  235. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  236. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  237. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  238. package/dist/Fx/combinators/withSpan.js +34 -3
  239. package/dist/Fx/combinators/zip.d.ts +60 -0
  240. package/dist/Fx/combinators/zip.d.ts.map +1 -1
  241. package/dist/Fx/combinators/zip.js +60 -0
  242. package/dist/Fx/constructors/at.d.ts +20 -0
  243. package/dist/Fx/constructors/at.d.ts.map +1 -1
  244. package/dist/Fx/constructors/at.js +20 -0
  245. package/dist/Fx/constructors/die.d.ts +21 -0
  246. package/dist/Fx/constructors/die.d.ts.map +1 -1
  247. package/dist/Fx/constructors/die.js +21 -0
  248. package/dist/Fx/constructors/empty.d.ts +18 -0
  249. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  250. package/dist/Fx/constructors/empty.js +18 -0
  251. package/dist/Fx/constructors/fail.d.ts +21 -0
  252. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  253. package/dist/Fx/constructors/fail.js +21 -0
  254. package/dist/Fx/constructors/failCause.d.ts +22 -0
  255. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  256. package/dist/Fx/constructors/failCause.js +22 -0
  257. package/dist/Fx/constructors/fn.d.ts +113 -13
  258. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  259. package/dist/Fx/constructors/fn.js +36 -0
  260. package/dist/Fx/constructors/fromEffect.d.ts +43 -1
  261. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  262. package/dist/Fx/constructors/fromEffect.js +43 -1
  263. package/dist/Fx/constructors/fromFailures.d.ts +24 -0
  264. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  265. package/dist/Fx/constructors/fromFailures.js +24 -0
  266. package/dist/Fx/constructors/fromIterable.d.ts +22 -0
  267. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  268. package/dist/Fx/constructors/fromIterable.js +22 -0
  269. package/dist/Fx/constructors/fromSchedule.d.ts +23 -0
  270. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  271. package/dist/Fx/constructors/fromSchedule.js +25 -2
  272. package/dist/Fx/constructors/index.d.ts +2 -1
  273. package/dist/Fx/constructors/index.d.ts.map +1 -1
  274. package/dist/Fx/constructors/index.js +2 -1
  275. package/dist/Fx/constructors/interrupt.d.ts +21 -1
  276. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  277. package/dist/Fx/constructors/interrupt.js +21 -1
  278. package/dist/Fx/constructors/make.d.ts +146 -1
  279. package/dist/Fx/constructors/make.d.ts.map +1 -1
  280. package/dist/Fx/constructors/make.js +56 -5
  281. package/dist/Fx/constructors/periodic.d.ts +29 -0
  282. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  283. package/dist/Fx/constructors/periodic.js +29 -0
  284. package/dist/Fx/constructors/succeed.d.ts +75 -3
  285. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  286. package/dist/Fx/constructors/succeed.js +75 -3
  287. package/dist/Fx/constructors/suspend.d.ts +28 -0
  288. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  289. package/dist/Fx/constructors/suspend.js +28 -0
  290. package/dist/Fx/constructors/sync.d.ts +32 -0
  291. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  292. package/dist/Fx/constructors/sync.js +32 -0
  293. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  294. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  295. package/dist/Fx/internal/DeferredRef.js +260 -9
  296. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  297. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  298. package/dist/Fx/internal/diff.d.ts +586 -0
  299. package/dist/Fx/internal/diff.d.ts.map +1 -1
  300. package/dist/Fx/internal/diff.js +120 -9
  301. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  304. package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  306. package/dist/Fx/internal/effectableWithOverride.js +46 -0
  307. package/dist/Fx/internal/equivalence.d.ts +29 -0
  308. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  309. package/dist/Fx/internal/equivalence.js +29 -0
  310. package/dist/Fx/internal/multicast.d.ts +145 -2
  311. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  312. package/dist/Fx/internal/multicast.js +146 -4
  313. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  314. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  315. package/dist/Fx/internal/ring-buffer.js +155 -0
  316. package/dist/Fx/internal/scope.d.ts +184 -0
  317. package/dist/Fx/internal/scope.d.ts.map +1 -1
  318. package/dist/Fx/internal/scope.js +150 -0
  319. package/dist/Fx/internal/yieldable.d.ts +117 -2
  320. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  321. package/dist/Fx/internal/yieldable.js +86 -3
  322. package/dist/Fx/run/collect.d.ts +89 -0
  323. package/dist/Fx/run/collect.d.ts.map +1 -1
  324. package/dist/Fx/run/collect.js +90 -1
  325. package/dist/Fx/run/first.d.ts +22 -0
  326. package/dist/Fx/run/first.d.ts.map +1 -1
  327. package/dist/Fx/run/first.js +22 -0
  328. package/dist/Fx/run/fork.d.ts +50 -0
  329. package/dist/Fx/run/fork.d.ts.map +1 -1
  330. package/dist/Fx/run/fork.js +50 -0
  331. package/dist/Fx/run/observe.d.ts +106 -0
  332. package/dist/Fx/run/observe.d.ts.map +1 -1
  333. package/dist/Fx/run/observe.js +108 -2
  334. package/dist/Fx/run/runPromise.d.ts +43 -0
  335. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  336. package/dist/Fx/run/runPromise.js +43 -0
  337. package/dist/Fx/stream.d.ts +92 -0
  338. package/dist/Fx/stream.d.ts.map +1 -1
  339. package/dist/Fx/stream.js +60 -1
  340. package/dist/Push/Push.d.ts +1219 -94
  341. package/dist/Push/Push.d.ts.map +1 -1
  342. package/dist/Push/Push.js +1015 -86
  343. package/dist/RefArray.d.ts +2 -0
  344. package/dist/RefArray.d.ts.map +1 -0
  345. package/dist/RefArray.js +1 -0
  346. package/dist/RefBigDecimal.d.ts +2 -0
  347. package/dist/RefBigDecimal.d.ts.map +1 -0
  348. package/dist/RefBigDecimal.js +1 -0
  349. package/dist/RefBigInt.d.ts +2 -0
  350. package/dist/RefBigInt.d.ts.map +1 -0
  351. package/dist/RefBigInt.js +1 -0
  352. package/dist/RefBoolean.d.ts +2 -0
  353. package/dist/RefBoolean.d.ts.map +1 -0
  354. package/dist/RefBoolean.js +1 -0
  355. package/dist/RefCause.d.ts +2 -0
  356. package/dist/RefCause.d.ts.map +1 -0
  357. package/dist/RefCause.js +1 -0
  358. package/dist/RefChunk.d.ts +2 -0
  359. package/dist/RefChunk.d.ts.map +1 -0
  360. package/dist/RefChunk.js +1 -0
  361. package/dist/RefDateTime.d.ts +2 -0
  362. package/dist/RefDateTime.d.ts.map +1 -0
  363. package/dist/RefDateTime.js +1 -0
  364. package/dist/RefDuration.d.ts +2 -0
  365. package/dist/RefDuration.d.ts.map +1 -0
  366. package/dist/RefDuration.js +1 -0
  367. package/dist/RefGraph.d.ts +2 -0
  368. package/dist/RefGraph.d.ts.map +1 -0
  369. package/dist/RefGraph.js +1 -0
  370. package/dist/RefHashMap.d.ts +2 -0
  371. package/dist/RefHashMap.d.ts.map +1 -0
  372. package/dist/RefHashMap.js +1 -0
  373. package/dist/RefHashRing.d.ts +2 -0
  374. package/dist/RefHashRing.d.ts.map +1 -0
  375. package/dist/RefHashRing.js +1 -0
  376. package/dist/RefHashSet.d.ts +2 -0
  377. package/dist/RefHashSet.d.ts.map +1 -0
  378. package/dist/RefHashSet.js +1 -0
  379. package/dist/RefIterable.d.ts +2 -0
  380. package/dist/RefIterable.d.ts.map +1 -0
  381. package/dist/RefIterable.js +1 -0
  382. package/dist/RefOption.d.ts +2 -0
  383. package/dist/RefOption.d.ts.map +1 -0
  384. package/dist/RefOption.js +1 -0
  385. package/dist/RefRecord.d.ts +2 -0
  386. package/dist/RefRecord.d.ts.map +1 -0
  387. package/dist/RefRecord.js +1 -0
  388. package/dist/RefResult.d.ts +2 -0
  389. package/dist/RefResult.d.ts.map +1 -0
  390. package/dist/RefResult.js +1 -0
  391. package/dist/RefString.d.ts +2 -0
  392. package/dist/RefString.d.ts.map +1 -0
  393. package/dist/RefString.js +1 -0
  394. package/dist/RefStruct.d.ts +2 -0
  395. package/dist/RefStruct.d.ts.map +1 -0
  396. package/dist/RefStruct.js +1 -0
  397. package/dist/RefSubject/Hydration.d.ts +504 -0
  398. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  399. package/dist/RefSubject/Hydration.js +300 -0
  400. package/dist/RefSubject/RefArray.d.ts +351 -4
  401. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  402. package/dist/RefSubject/RefArray.js +339 -3
  403. package/dist/RefSubject/RefBigDecimal.d.ts +221 -1
  404. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  405. package/dist/RefSubject/RefBigDecimal.js +210 -1
  406. package/dist/RefSubject/RefBigInt.d.ts +166 -1
  407. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  408. package/dist/RefSubject/RefBigInt.js +155 -1
  409. package/dist/RefSubject/RefBoolean.d.ts +166 -1
  410. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  411. package/dist/RefSubject/RefBoolean.js +155 -1
  412. package/dist/RefSubject/RefCause.d.ts +122 -1
  413. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  414. package/dist/RefSubject/RefCause.js +111 -1
  415. package/dist/RefSubject/RefChunk.d.ts +406 -1
  416. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  417. package/dist/RefSubject/RefChunk.js +394 -0
  418. package/dist/RefSubject/RefDateTime.d.ts +122 -1
  419. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  420. package/dist/RefSubject/RefDateTime.js +111 -1
  421. package/dist/RefSubject/RefDuration.d.ts +155 -1
  422. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  423. package/dist/RefSubject/RefDuration.js +144 -1
  424. package/dist/RefSubject/RefGraph.d.ts +320 -6
  425. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  426. package/dist/RefSubject/RefGraph.js +303 -0
  427. package/dist/RefSubject/RefHashMap.d.ts +296 -1
  428. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  429. package/dist/RefSubject/RefHashMap.js +284 -0
  430. package/dist/RefSubject/RefHashRing.d.ts +146 -2
  431. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  432. package/dist/RefSubject/RefHashRing.js +133 -0
  433. package/dist/RefSubject/RefHashSet.d.ts +230 -1
  434. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  435. package/dist/RefSubject/RefHashSet.js +218 -0
  436. package/dist/RefSubject/RefIterable.d.ts +327 -1
  437. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  438. package/dist/RefSubject/RefIterable.js +315 -0
  439. package/dist/RefSubject/RefOption.d.ts +144 -1
  440. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  441. package/dist/RefSubject/RefOption.js +133 -1
  442. package/dist/RefSubject/RefRecord.d.ts +339 -1
  443. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  444. package/dist/RefSubject/RefRecord.js +327 -0
  445. package/dist/RefSubject/RefResult.d.ts +155 -23
  446. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  447. package/dist/RefSubject/RefResult.js +122 -1
  448. package/dist/RefSubject/RefString.d.ts +188 -1
  449. package/dist/RefSubject/RefString.d.ts.map +1 -1
  450. package/dist/RefSubject/RefString.js +177 -1
  451. package/dist/RefSubject/RefStruct.d.ts +156 -1
  452. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  453. package/dist/RefSubject/RefStruct.js +145 -1
  454. package/dist/RefSubject/RefSubject.d.ts +1168 -15
  455. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  456. package/dist/RefSubject/RefSubject.js +850 -58
  457. package/dist/RefSubject/RefTrie.d.ts +290 -4
  458. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  459. package/dist/RefSubject/RefTrie.js +278 -3
  460. package/dist/RefSubject/RefTuple.d.ts +117 -1
  461. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  462. package/dist/RefSubject/RefTuple.js +106 -1
  463. package/dist/RefSubject/index.d.ts +1 -0
  464. package/dist/RefSubject/index.d.ts.map +1 -1
  465. package/dist/RefSubject/index.js +1 -0
  466. package/dist/RefSubject.d.ts +2 -1
  467. package/dist/RefSubject.d.ts.map +1 -1
  468. package/dist/RefSubject.js +2 -1
  469. package/dist/RefTrie.d.ts +2 -0
  470. package/dist/RefTrie.d.ts.map +1 -0
  471. package/dist/RefTrie.js +1 -0
  472. package/dist/RefTuple.d.ts +2 -0
  473. package/dist/RefTuple.d.ts.map +1 -0
  474. package/dist/RefTuple.js +1 -0
  475. package/dist/Sink/Sink.d.ts +385 -14
  476. package/dist/Sink/Sink.d.ts.map +1 -1
  477. package/dist/Sink/Sink.js +53 -6
  478. package/dist/Sink/combinators.d.ts +731 -2
  479. package/dist/Sink/combinators.d.ts.map +1 -1
  480. package/dist/Sink/combinators.js +707 -5
  481. package/dist/Subject/Subject.d.ts +1016 -22
  482. package/dist/Subject/Subject.d.ts.map +1 -1
  483. package/dist/Subject/Subject.js +904 -39
  484. package/dist/Versioned/Versioned.d.ts +426 -9
  485. package/dist/Versioned/Versioned.d.ts.map +1 -1
  486. package/dist/Versioned/Versioned.js +241 -15
  487. package/dist/index.d.ts +22 -3
  488. package/dist/index.d.ts.map +1 -1
  489. package/dist/index.js +22 -3
  490. package/package.json +120 -11
  491. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  492. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  493. package/dist/Fx/constructors/fromYieldable.js +0 -12
  494. package/src/Fx/Fx.ts +0 -164
  495. package/src/Fx/TypeId.ts +0 -25
  496. package/src/Fx/combinators/additive.ts +0 -142
  497. package/src/Fx/combinators/catch.ts +0 -416
  498. package/src/Fx/combinators/causes.ts +0 -23
  499. package/src/Fx/combinators/changesWithEffect.ts +0 -66
  500. package/src/Fx/combinators/compact.ts +0 -15
  501. package/src/Fx/combinators/continueWith.ts +0 -78
  502. package/src/Fx/combinators/dropUntil.ts +0 -47
  503. package/src/Fx/combinators/ensuring.ts +0 -23
  504. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  505. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  506. package/src/Fx/combinators/exhaustMap.ts +0 -36
  507. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  508. package/src/Fx/combinators/exit.ts +0 -15
  509. package/src/Fx/combinators/filter.ts +0 -22
  510. package/src/Fx/combinators/filterEffect.ts +0 -31
  511. package/src/Fx/combinators/filterMap.ts +0 -23
  512. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  513. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  514. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  515. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  516. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  517. package/src/Fx/combinators/flatMap.ts +0 -51
  518. package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
  519. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  520. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  521. package/src/Fx/combinators/flip.ts +0 -14
  522. package/src/Fx/combinators/gen.ts +0 -24
  523. package/src/Fx/combinators/genScoped.ts +0 -24
  524. package/src/Fx/combinators/index.ts +0 -61
  525. package/src/Fx/combinators/keyed.ts +0 -369
  526. package/src/Fx/combinators/loop.ts +0 -27
  527. package/src/Fx/combinators/loopCause.ts +0 -34
  528. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  529. package/src/Fx/combinators/loopEffect.ts +0 -34
  530. package/src/Fx/combinators/map.ts +0 -22
  531. package/src/Fx/combinators/mapBoth.ts +0 -40
  532. package/src/Fx/combinators/mapEffect.ts +0 -32
  533. package/src/Fx/combinators/mapError.ts +0 -28
  534. package/src/Fx/combinators/mergeAll.ts +0 -22
  535. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  536. package/src/Fx/combinators/onError.ts +0 -40
  537. package/src/Fx/combinators/onExit.ts +0 -82
  538. package/src/Fx/combinators/onInterrupt.ts +0 -87
  539. package/src/Fx/combinators/provide.ts +0 -124
  540. package/src/Fx/combinators/result.ts +0 -39
  541. package/src/Fx/combinators/scan.ts +0 -82
  542. package/src/Fx/combinators/skip.ts +0 -41
  543. package/src/Fx/combinators/skipRepeats.ts +0 -15
  544. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  545. package/src/Fx/combinators/skipWhile.ts +0 -100
  546. package/src/Fx/combinators/slice.ts +0 -55
  547. package/src/Fx/combinators/switchMap.ts +0 -55
  548. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  549. package/src/Fx/combinators/take.ts +0 -38
  550. package/src/Fx/combinators/takeUntil.ts +0 -88
  551. package/src/Fx/combinators/takeWhile.ts +0 -47
  552. package/src/Fx/combinators/tapEffect.ts +0 -39
  553. package/src/Fx/combinators/tuple.ts +0 -79
  554. package/src/Fx/combinators/unwrap.ts +0 -21
  555. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  556. package/src/Fx/combinators/when.ts +0 -64
  557. package/src/Fx/combinators/withSpan.ts +0 -24
  558. package/src/Fx/combinators/zip.ts +0 -175
  559. package/src/Fx/constructors/at.ts +0 -23
  560. package/src/Fx/constructors/die.ts +0 -17
  561. package/src/Fx/constructors/empty.ts +0 -10
  562. package/src/Fx/constructors/fail.ts +0 -14
  563. package/src/Fx/constructors/failCause.ts +0 -14
  564. package/src/Fx/constructors/fn.ts +0 -245
  565. package/src/Fx/constructors/fromEffect.ts +0 -24
  566. package/src/Fx/constructors/fromFailures.ts +0 -19
  567. package/src/Fx/constructors/fromIterable.ts +0 -15
  568. package/src/Fx/constructors/fromSchedule.ts +0 -18
  569. package/src/Fx/constructors/fromYieldable.ts +0 -17
  570. package/src/Fx/constructors/index.ts +0 -15
  571. package/src/Fx/constructors/interrupt.ts +0 -13
  572. package/src/Fx/constructors/make.ts +0 -103
  573. package/src/Fx/constructors/periodic.ts +0 -15
  574. package/src/Fx/constructors/succeed.ts +0 -37
  575. package/src/Fx/constructors/suspend.ts +0 -6
  576. package/src/Fx/index.ts +0 -6
  577. package/src/Fx/internal/DeferredRef.ts +0 -87
  578. package/src/Fx/internal/UnionToTuple.ts +0 -12
  579. package/src/Fx/internal/diff.ts +0 -191
  580. package/src/Fx/internal/equivalence.ts +0 -12
  581. package/src/Fx/internal/multicast.ts +0 -51
  582. package/src/Fx/internal/ring-buffer.ts +0 -60
  583. package/src/Fx/internal/scope.ts +0 -58
  584. package/src/Fx/internal/yieldable.ts +0 -31
  585. package/src/Fx/run/collect.ts +0 -79
  586. package/src/Fx/run/first.ts +0 -20
  587. package/src/Fx/run/fork.ts +0 -40
  588. package/src/Fx/run/index.ts +0 -5
  589. package/src/Fx/run/observe.ts +0 -114
  590. package/src/Fx/run/runPromise.ts +0 -32
  591. package/src/Fx/stream.ts +0 -42
  592. package/src/Fx.additive-combinators.test.ts +0 -126
  593. package/src/Fx.catch-additive.test.ts +0 -206
  594. package/src/Fx.catch.test.ts +0 -60
  595. package/src/Fx.dropUntil.test.ts +0 -61
  596. package/src/Fx.fn.test.ts +0 -51
  597. package/src/Fx.lifecycle.test.ts +0 -79
  598. package/src/Fx.mapError-mapBoth.test.ts +0 -101
  599. package/src/Fx.provide-combinators.test.ts +0 -94
  600. package/src/Fx.result-changesWithEffect.test.ts +0 -112
  601. package/src/Fx.scan.test.ts +0 -73
  602. package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
  603. package/src/Fx.test.ts +0 -71
  604. package/src/Fx.ts +0 -1
  605. package/src/Fx.zip-merge-additive.test.ts +0 -171
  606. package/src/Fx.zip.test.ts +0 -133
  607. package/src/Push/Push.ts +0 -1072
  608. package/src/Push/index.ts +0 -1
  609. package/src/Push.additive.test.ts +0 -256
  610. package/src/Push.test.ts +0 -26
  611. package/src/Push.ts +0 -1
  612. package/src/RefSubject/RefArray.ts +0 -516
  613. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  614. package/src/RefSubject/RefBigDecimal.ts +0 -295
  615. package/src/RefSubject/RefBigInt.test.ts +0 -56
  616. package/src/RefSubject/RefBigInt.ts +0 -189
  617. package/src/RefSubject/RefBoolean.test.ts +0 -57
  618. package/src/RefSubject/RefBoolean.ts +0 -185
  619. package/src/RefSubject/RefCause.test.ts +0 -53
  620. package/src/RefSubject/RefCause.ts +0 -146
  621. package/src/RefSubject/RefChunk.ts +0 -516
  622. package/src/RefSubject/RefDateTime.test.ts +0 -43
  623. package/src/RefSubject/RefDateTime.ts +0 -261
  624. package/src/RefSubject/RefDuration.test.ts +0 -49
  625. package/src/RefSubject/RefDuration.ts +0 -188
  626. package/src/RefSubject/RefGraph.ts +0 -649
  627. package/src/RefSubject/RefHashMap.ts +0 -474
  628. package/src/RefSubject/RefHashRing.ts +0 -262
  629. package/src/RefSubject/RefHashSet.ts +0 -308
  630. package/src/RefSubject/RefIterable.ts +0 -454
  631. package/src/RefSubject/RefOption.test.ts +0 -67
  632. package/src/RefSubject/RefOption.ts +0 -193
  633. package/src/RefSubject/RefRecord.ts +0 -621
  634. package/src/RefSubject/RefResult.test.ts +0 -63
  635. package/src/RefSubject/RefResult.ts +0 -209
  636. package/src/RefSubject/RefString.test.ts +0 -61
  637. package/src/RefSubject/RefString.ts +0 -256
  638. package/src/RefSubject/RefStruct.test.ts +0 -60
  639. package/src/RefSubject/RefStruct.ts +0 -253
  640. package/src/RefSubject/RefSubject.ts +0 -2644
  641. package/src/RefSubject/RefTrie.ts +0 -365
  642. package/src/RefSubject/RefTuple.test.ts +0 -60
  643. package/src/RefSubject/RefTuple.ts +0 -231
  644. package/src/RefSubject/index.ts +0 -21
  645. package/src/RefSubject.additive-parity.test.ts +0 -101
  646. package/src/RefSubject.test.ts +0 -65
  647. package/src/RefSubject.ts +0 -1
  648. package/src/Sink/Sink.ts +0 -159
  649. package/src/Sink/combinators.ts +0 -1115
  650. package/src/Sink/index.ts +0 -2
  651. package/src/Sink.combinators.test.ts +0 -88
  652. package/src/Sink.reduce-collect-head-last.test.ts +0 -107
  653. package/src/Sink.ts +0 -1
  654. package/src/Subject/Subject.ts +0 -441
  655. package/src/Subject/index.ts +0 -1
  656. package/src/Subject.test.ts +0 -47
  657. package/src/Subject.ts +0 -1
  658. package/src/Versioned/Versioned.ts +0 -597
  659. package/src/Versioned/index.ts +0 -1
  660. package/src/Versioned.filterMap.test.ts +0 -91
  661. package/src/Versioned.test.ts +0 -23
  662. package/src/Versioned.ts +0 -1
  663. package/src/index.ts +0 -7
@@ -1,28 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import { dual } from "effect/Function";
3
- import { make as makeSink } from "../../Sink/Sink.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
-
7
- /**
8
- * Transforms the error channel of an Fx using the provided function.
9
- *
10
- * Failures (Cause) are mapped via `Cause.map`, so only the typed failure (`Fail`)
11
- * is transformed; defects and interrupts are preserved unchanged.
12
- *
13
- * Mirrors `Effect.mapError`.
14
- *
15
- * @since 1.0.0
16
- * @category combinators
17
- */
18
- export const mapError: {
19
- <E, E2>(f: (e: E) => E2): <A, R>(self: Fx<A, E, R>) => Fx<A, E2, R>;
20
-
21
- <A, E, R, E2>(self: Fx<A, E, R>, f: (e: E) => E2): Fx<A, E2, R>;
22
- } = dual(
23
- 2,
24
- <A, E, R, E2>(self: Fx<A, E, R>, f: (e: E) => E2): Fx<A, E2, R> =>
25
- make<A, E2, R>((sink) =>
26
- self.run(makeSink((cause) => sink.onFailure(Cause.map(cause, f)), sink.onSuccess)),
27
- ),
28
- );
@@ -1,22 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { skipInterrupt } from "../../Sink/combinators.js";
3
- import { make } from "../constructors/make.js";
4
- import type { Fx } from "../Fx.js";
5
-
6
- /**
7
- * Merges multiple Fx streams into a single Fx that emits values from all input streams concurrently.
8
- *
9
- * @param fx - The Fx streams to merge.
10
- * @returns An `Fx` that emits values from all input streams.
11
- * @since 1.0.0
12
- * @category combinators
13
- */
14
- export const mergeAll = <FX extends ReadonlyArray<Fx<any, any, any>>>(
15
- ...fx: FX
16
- ): Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Services<FX[number]>> =>
17
- make<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Services<FX[number]>>((sink) =>
18
- Effect.forEach(fx, (fx) => fx.run(skipInterrupt(sink)), {
19
- concurrency: fx.length,
20
- discard: true,
21
- }),
22
- );
@@ -1,123 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import * as Deferred from "effect/Deferred";
3
- import * as Effect from "effect/Effect";
4
- import * as Exit from "effect/Exit";
5
- import * as Sink from "../../Sink/Sink.js";
6
- import { make } from "../constructors/make.js";
7
- import type { Fx } from "../Fx.js";
8
-
9
- /**
10
- * Merges multiple Fx streams concurrently but emits values in the order of the input streams.
11
- *
12
- * This ensures that values from the first Fx are emitted before values from the second Fx, and so on.
13
- * Values from later streams are buffered until earlier streams complete or emit their values (depending on semantics, but usually this means strictly ordered emission).
14
- *
15
- * @param fx - The Fx streams to merge.
16
- * @returns An `Fx` that emits values in order.
17
- * @since 1.0.0
18
- * @category combinators
19
- */
20
- export function mergeOrdered<FX extends ReadonlyArray<Fx<any, any, any>>>(
21
- ...fx: FX
22
- ): Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Services<FX[number]>> {
23
- return make<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Services<FX[number]>>(
24
- Effect.fn(function* (sink) {
25
- const { makeSink, onEnd } = withBuffers(fx.length, sink);
26
-
27
- yield* Effect.forEach(fx, (fx, i) => Effect.onExit(fx.run(makeSink(i)), () => onEnd(i)), {
28
- concurrency: "unbounded",
29
- discard: true,
30
- });
31
- }),
32
- );
33
- }
34
-
35
- function withBuffers<A, E, R>(size: number, sink: Sink.Sink<A, E, R>) {
36
- const buffers = indexedBuffers(size, sink);
37
- const onSuccess = (index: number, value: A) => buffers.get(index)!.onSuccess(value);
38
- const onEnd = (index: number) => buffers.get(index)!.onEnd;
39
-
40
- const makeSink = (index: number) =>
41
- Sink.make<A, E, R>(
42
- (cause) => (Cause.hasInterruptsOnly(cause) ? onEnd(index) : sink.onFailure(cause)),
43
- (value) => onSuccess(index, value),
44
- );
45
-
46
- return {
47
- onSuccess,
48
- onEnd,
49
- makeSink,
50
- } as const;
51
- }
52
-
53
- function indexedBuffers<A, E, R>(size: number, sink: Sink.Sink<A, E, R>) {
54
- const buffers = new Map<number, ReturnType<typeof IndexedBuffer<A, E, R>>>();
55
-
56
- const last = size - 1;
57
- for (let i = 0; i < size; i++) {
58
- const deferred = Deferred.makeUnsafe<void>();
59
- const state = {
60
- ready: i === 0,
61
- deferred,
62
- };
63
-
64
- // First should start immediately
65
- if (i === 0) {
66
- Deferred.doneUnsafe(deferred, Exit.void);
67
- }
68
-
69
- buffers.set(
70
- i,
71
- IndexedBuffer(
72
- state,
73
- sink,
74
- i === last
75
- ? Effect.void
76
- : Effect.suspend(() => {
77
- const next = buffers.get(i + 1)!;
78
- next.state.ready = true;
79
- return Deferred.done(next.state.deferred, Exit.void);
80
- }),
81
- ),
82
- );
83
- }
84
-
85
- return buffers;
86
- }
87
-
88
- function IndexedBuffer<A, E, R>(
89
- state: {
90
- ready: boolean;
91
- deferred: Deferred.Deferred<void>;
92
- },
93
- sink: Sink.Sink<A, E, R>,
94
- onDone: Effect.Effect<void>,
95
- ) {
96
- let buffer: Array<A> = [];
97
-
98
- const onSuccess = (value: A) => {
99
- if (state.ready) {
100
- if (buffer.length === 0) return sink.onSuccess(value);
101
- buffer.push(value);
102
- const effect = Effect.forEach(buffer, sink.onSuccess);
103
- buffer = [];
104
- return effect;
105
- } else {
106
- buffer.push(value);
107
- return Effect.void;
108
- }
109
- };
110
-
111
- const onEnd = Effect.flatMap(Deferred.await(state.deferred), () => {
112
- if (buffer.length === 0) return onDone;
113
- const effect = Effect.forEach(buffer, sink.onSuccess);
114
- buffer = [];
115
- return Effect.ensuring(effect, onDone);
116
- });
117
-
118
- return {
119
- state,
120
- onSuccess,
121
- onEnd,
122
- };
123
- }
@@ -1,40 +0,0 @@
1
- import type * as Cause from "effect/Cause";
2
- import * as Effect from "effect/Effect";
3
- import { dual } from "effect/Function";
4
- import { make as makeSink } from "../../Sink/Sink.js";
5
- import { make } from "../constructors/make.js";
6
- import type { Fx } from "../Fx.js";
7
-
8
- /**
9
- * Adds an `Effect.onError`-style finalizer to an `Fx`.
10
- *
11
- * The cleanup is run only if the stream fails (including defects / interrupts
12
- * carried in the `Cause`).
13
- *
14
- * @since 1.0.0
15
- * @category combinators
16
- */
17
- export const onError: {
18
- <E, X, R2>(
19
- cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>,
20
- ): <A, R>(self: Fx<A, E, R>) => Fx<A, E, R | R2>;
21
-
22
- <A, E, R, X, R2>(
23
- self: Fx<A, E, R>,
24
- cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>,
25
- ): Fx<A, E, R | R2>;
26
- } = dual(
27
- 2,
28
- <A, E, R, X, R2>(
29
- self: Fx<A, E, R>,
30
- cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>,
31
- ): Fx<A, E, R | R2> =>
32
- make<A, E, R | R2>((sink) =>
33
- self.run(
34
- makeSink(
35
- (cause) => Effect.flatMap(sink.onFailure(cause), () => Effect.ignore(cleanup(cause))),
36
- sink.onSuccess,
37
- ),
38
- ),
39
- ),
40
- );
@@ -1,82 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Exit from "effect/Exit";
3
- import { dual } from "effect/Function";
4
- import * as Option from "effect/Option";
5
- import * as Ref from "effect/Ref";
6
- import { make as makeSink } from "../../Sink/Sink.js";
7
- import { make } from "../constructors/make.js";
8
- import type { Fx } from "../Fx.js";
9
-
10
- const toFinalizer =
11
- <A, E, XE, XR>(f: (exit: Exit.Exit<A, E>) => void | Effect.Effect<void, XE, XR>) =>
12
- (exit: Exit.Exit<A, E>): Effect.Effect<void, XE, XR> => {
13
- const x = f(exit);
14
- return Effect.isEffect(x) ? x : Effect.void;
15
- };
16
-
17
- /**
18
- * Adds an `Effect.onExit`-style finalizer to an `Fx`.
19
- *
20
- * The finalizer is run when the `Fx` terminates (success, failure, or interruption).
21
- *
22
- * @since 1.0.0
23
- * @category combinators
24
- */
25
- export const onExit: {
26
- <A, E, XE = never, XR = never>(
27
- f: (exit: Exit.Exit<void, E>) => void | Effect.Effect<void, XE, XR>,
28
- ): <R>(self: Fx<A, E, R>) => Fx<A, E | XE, R | XR>;
29
-
30
- <A, E, R, XE = never, XR = never>(
31
- self: Fx<A, E, R>,
32
- f: (exit: Exit.Exit<void, E>) => void | Effect.Effect<void, XE, XR>,
33
- ): Fx<A, E | XE, R | XR>;
34
- } = dual(
35
- 2,
36
- <A, E, R, XE, XR>(
37
- self: Fx<A, E, R>,
38
- f: (exit: Exit.Exit<void, E>) => void | Effect.Effect<void, XE, XR>,
39
- ): Fx<A, E | XE, R | XR> =>
40
- make<A, E | XE, R | XR>(
41
- Effect.fnUntraced(function* (sink) {
42
- const finalizer = toFinalizer(f);
43
- const observed = yield* Ref.make(Option.none<Exit.Exit<void, E>>());
44
-
45
- const recordExit = (exit: Exit.Exit<void, E>) =>
46
- Ref.modify(observed, (current) =>
47
- Option.isNone(current)
48
- ? ([true, Option.some(exit)] as const)
49
- : ([false, current] as const),
50
- ).pipe(Effect.asVoid);
51
-
52
- const runFinalizer = (exit: Exit.Exit<void, E>, allowReportFailure: boolean) =>
53
- Effect.matchCauseEffect(finalizer(exit), {
54
- onFailure: (cause) => (allowReportFailure ? sink.onFailure(cause) : Effect.void),
55
- onSuccess: () => Effect.void,
56
- });
57
-
58
- return yield* self
59
- .run(
60
- makeSink(
61
- (cause) =>
62
- Effect.flatMap(recordExit(Exit.failCause(cause)), () => sink.onFailure(cause)),
63
- sink.onSuccess,
64
- ),
65
- )
66
- .pipe(
67
- Effect.onExit((runExit) =>
68
- Effect.flatMap(Ref.get(observed), (maybe) =>
69
- Option.match(maybe, {
70
- onSome: (exit) => runFinalizer(exit, false),
71
- onNone: () =>
72
- Exit.match(runExit, {
73
- onFailure: (cause) => runFinalizer(Exit.failCause(cause), false),
74
- onSuccess: () => runFinalizer(Exit.succeed<void>(undefined), true),
75
- }),
76
- }),
77
- ),
78
- ),
79
- );
80
- }),
81
- ),
82
- );
@@ -1,87 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import * as Effect from "effect/Effect";
3
- import { dual } from "effect/Function";
4
- import * as Option from "effect/Option";
5
- import * as Ref from "effect/Ref";
6
- import { make as makeSink } from "../../Sink/Sink.js";
7
- import { make } from "../constructors/make.js";
8
- import type { Fx } from "../Fx.js";
9
-
10
- const toFinalizer =
11
- <XE, XR>(
12
- f:
13
- | Effect.Effect<void, XE, XR>
14
- | ((interruptors: ReadonlySet<number>) => Effect.Effect<void, XE, XR>),
15
- ) =>
16
- (interruptors: ReadonlySet<number>) =>
17
- typeof f === "function" ? f(interruptors) : f;
18
-
19
- /**
20
- * Adds an `Effect.onInterrupt`-style finalizer to an `Fx`.
21
- *
22
- * The finalizer is run only when the stream is interrupted (either via an
23
- * interrupt cause or by interrupting the running fiber).
24
- *
25
- * @since 1.0.0
26
- * @category combinators
27
- */
28
- export const onInterrupt: {
29
- <XE, XR>(
30
- finalizer:
31
- | Effect.Effect<void, XE, XR>
32
- | ((interruptors: ReadonlySet<number>) => Effect.Effect<void, XE, XR>),
33
- ): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E | XE, R | XR>;
34
-
35
- <A, E, R, XE, XR>(
36
- self: Fx<A, E, R>,
37
- finalizer:
38
- | Effect.Effect<void, XE, XR>
39
- | ((interruptors: ReadonlySet<number>) => Effect.Effect<void, XE, XR>),
40
- ): Fx<A, E | XE, R | XR>;
41
- } = dual(
42
- 2,
43
- <A, E, R, XE, XR>(
44
- self: Fx<A, E, R>,
45
- finalizer_:
46
- | Effect.Effect<void, XE, XR>
47
- | ((interruptors: ReadonlySet<number>) => Effect.Effect<void, XE, XR>),
48
- ): Fx<A, E | XE, R | XR> =>
49
- make<A, E | XE, R | XR>(
50
- Effect.fnUntraced(function* (sink) {
51
- const finalizer = toFinalizer(finalizer_);
52
- const interrupted = yield* Ref.make(Option.none<ReadonlySet<number>>());
53
-
54
- const record = (ids: ReadonlySet<number>) =>
55
- Ref.modify(interrupted, (current) =>
56
- Option.isNone(current)
57
- ? ([true, Option.some(ids)] as const)
58
- : ([false, current] as const),
59
- );
60
-
61
- const runFinalizer = (ids: ReadonlySet<number>) =>
62
- Effect.flatMap(record(ids), (first) =>
63
- first
64
- ? Effect.matchCauseEffect(finalizer(ids), {
65
- onFailure: () => Effect.void,
66
- onSuccess: () => Effect.void,
67
- })
68
- : Effect.void,
69
- );
70
-
71
- return yield* self
72
- .run(
73
- makeSink(
74
- (cause) =>
75
- Cause.hasInterruptsOnly(cause)
76
- ? Effect.matchCauseEffect(finalizer(Cause.interruptors(cause)), {
77
- onFailure: (cause2) => sink.onFailure(Cause.combine(cause, cause2)),
78
- onSuccess: () => sink.onFailure(cause),
79
- })
80
- : sink.onFailure(cause),
81
- sink.onSuccess,
82
- ),
83
- )
84
- .pipe(Effect.onInterrupt((ids) => runFinalizer(ids)));
85
- }),
86
- ),
87
- );
@@ -1,124 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Exit from "effect/Exit";
3
- import { dual } from "effect/Function";
4
- import * as Layer from "effect/Layer";
5
- import * as Scope from "effect/Scope";
6
- import * as ServiceMap from "effect/ServiceMap";
7
- import { make } from "../constructors/make.js";
8
- import type { Fx } from "../Fx.js";
9
-
10
- /**
11
- * Provides context to an Fx from a Layer.
12
- *
13
- * The context is provided to the entire Fx stream, including any effects run
14
- * during its execution. The context is scoped to the lifetime of the stream.
15
- *
16
- * @param layer - The Layer to provide.
17
- * @returns An `Fx` with the required context provided.
18
- * @since 1.0.0
19
- * @category combinators
20
- */
21
- export const provide: {
22
- <R2, E2 = never, R3 = never>(
23
- layer: Layer.Layer<R2, E2, R3>,
24
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, Exclude<R, R2> | R3>;
25
-
26
- <A, E, R, R2, E2 = never, R3 = never>(
27
- fx: Fx<A, E, R>,
28
- layer: Layer.Layer<R2, E2, R3>,
29
- ): Fx<A, E | E2, Exclude<R, R2> | R3>;
30
- } = dual(
31
- 2,
32
- <A, E, R, R2, E2 = never, R3 = never>(
33
- fx: Fx<A, E, R>,
34
- layer: Layer.Layer<R2, E2, R3>,
35
- ): Fx<A, E | E2, Exclude<R, R2> | R3> =>
36
- make<A, E | E2, Exclude<R, R2> | R3>(
37
- Effect.fnUntraced(function* (sink) {
38
- const scope = yield* Scope.make();
39
- const servicesExit = yield* layer.pipe(Layer.buildWithScope(scope), Effect.exit);
40
-
41
- if (Exit.isFailure(servicesExit)) {
42
- yield* Scope.close(scope, servicesExit);
43
- return yield* sink.onFailure(servicesExit.cause);
44
- }
45
-
46
- return yield* fx.run(sink).pipe(
47
- Effect.provideServices(servicesExit.value),
48
- Effect.onExit((exit) => Scope.close(scope, exit)),
49
- );
50
- }),
51
- ),
52
- );
53
-
54
- export const provideServices: {
55
- <R2>(services: ServiceMap.ServiceMap<R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, R2>>;
56
-
57
- <A, E, R, R2>(fx: Fx<A, E, R>, services: ServiceMap.ServiceMap<R2>): Fx<A, E, Exclude<R, R2>>;
58
- } = dual(
59
- 2,
60
- <A, E, R, R2>(fx: Fx<A, E, R>, services: ServiceMap.ServiceMap<R2>): Fx<A, E, Exclude<R, R2>> =>
61
- provide(fx, Layer.succeedServices(services)),
62
- );
63
-
64
- /**
65
- * Provides a single service to an Fx.
66
- *
67
- * Equivalent to `provideServices(fx, ServiceMap.make(tag, service))`. The service
68
- * is available for the entire Fx stream, scoped to the stream lifetime.
69
- *
70
- * @param tag - The service tag (identifier).
71
- * @param service - The service implementation.
72
- * @returns An `Fx` with the required service provided.
73
- * @since 1.0.0
74
- * @category combinators
75
- */
76
- export const provideService: {
77
- <Id, S>(
78
- tag: ServiceMap.Service<Id, S>,
79
- service: S,
80
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, Id>>;
81
- <A, E, R, Id, S>(
82
- fx: Fx<A, E, R>,
83
- tag: ServiceMap.Service<Id, S>,
84
- service: S,
85
- ): Fx<A, E, Exclude<R, Id>>;
86
- } = dual(
87
- 3,
88
- <A, E, R, Id, S>(
89
- fx: Fx<A, E, R>,
90
- tag: ServiceMap.Service<Id, S>,
91
- service: S,
92
- ): Fx<A, E, Exclude<R, Id>> => provideServices(fx, ServiceMap.make(tag, service)),
93
- );
94
-
95
- /**
96
- * Provides a single service to an Fx by running an effect that produces the service.
97
- *
98
- * The effect is run when the Fx is run; the resulting service is provided to the
99
- * entire stream. Equivalent to `provide(fx, Layer.effect(tag, serviceEffect))`.
100
- *
101
- * @param tag - The service tag (identifier).
102
- * @param serviceEffect - Effect that produces the service (may have its own requirements).
103
- * @returns An `Fx` with the required service provided.
104
- * @since 1.0.0
105
- * @category combinators
106
- */
107
- export const provideServiceEffect: {
108
- <Id, S, E2, R2>(
109
- tag: ServiceMap.Service<Id, S>,
110
- serviceEffect: Effect.Effect<S, E2, R2>,
111
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, Exclude<R, Id> | R2>;
112
- <A, E, R, Id, S, E2, R2>(
113
- fx: Fx<A, E, R>,
114
- tag: ServiceMap.Service<Id, S>,
115
- serviceEffect: Effect.Effect<S, E2, R2>,
116
- ): Fx<A, E | E2, Exclude<R, Id> | R2>;
117
- } = dual(
118
- 3,
119
- <A, E, R, Id, S, E2, R2>(
120
- fx: Fx<A, E, R>,
121
- tag: ServiceMap.Service<Id, S>,
122
- serviceEffect: Effect.Effect<S, E2, R2>,
123
- ): Fx<A, E | E2, Exclude<R, Id> | R2> => provide(fx, Layer.effect(tag, serviceEffect)),
124
- );
@@ -1,39 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import * as Result from "effect/Result";
3
- import type { Sink } from "../../Sink/Sink.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
-
7
- /**
8
- * Materializes success and failure of an Fx as `Result` values.
9
- *
10
- * - **Success**: each emitted value is wrapped as `Result.succeed(value)`.
11
- * - **Failure**: any failure (including typed error, defect, and interrupt) is
12
- * materialized as `Result.fail(cause)`. The output error type is `Cause<E>`,
13
- * so defects and interrupts are explicitly represented in the `Result` and
14
- * the resulting Fx has error type `never`.
15
- *
16
- * The resulting Fx never fails at the stream level; all outcomes are emitted as
17
- * `Result<A, Cause<E>>`. Consumers can use `Result.match` or `Result.isSuccess` /
18
- * `Result.isFailure` to handle success vs failure (including defect/interrupt).
19
- *
20
- * @param fx - The `Fx` stream.
21
- * @returns An `Fx` emitting `Result<A, Cause<E>>`.
22
- * @since 1.0.0
23
- * @category combinators
24
- */
25
- export const result = <A, E, R>(fx: Fx<A, E, R>): Fx<Result.Result<A, Cause.Cause<E>>, never, R> =>
26
- make<Result.Result<A, Cause.Cause<E>>, never, R>((sink) => fx.run(new ResultSink(sink)));
27
-
28
- class ResultSink<A, E, R> implements Sink<A, E, R> {
29
- readonly sink: Sink<Result.Result<A, Cause.Cause<E>>, never, R>;
30
- readonly onSuccess: (value: A) => import("effect/Effect").Effect<unknown, never, R>;
31
- readonly onFailure: (cause: Cause.Cause<E>) => import("effect/Effect").Effect<unknown, never, R>;
32
-
33
- constructor(sink: Sink<Result.Result<A, Cause.Cause<E>>, never, R>) {
34
- this.sink = sink;
35
- const s = sink;
36
- this.onSuccess = (value) => s.onSuccess(Result.succeed(value));
37
- this.onFailure = (cause) => s.onSuccess(Result.fail(cause));
38
- }
39
- }
@@ -1,82 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { dual, pipe } from "effect/Function";
3
- import { loop as sinkLoop, loopEffect as sinkLoopEffect } from "../../Sink/combinators.js";
4
- import { make } from "../constructors/make.js";
5
- import type { Fx } from "../Fx.js";
6
- import { Sink } from "../../Sink.js";
7
-
8
- /**
9
- * Scans the stream with a pure function, emitting the accumulated state after each element.
10
- * Emits the initial value first, then for each input `a` emits `f(state, a)` and updates state.
11
- *
12
- * Semantics align with Effect Stream's `scan`: output is `initial`, `f(initial, a1)`, `f(..., a2)`, ...
13
- *
14
- * @param initial - Initial state (first value emitted).
15
- * @param f - Reducer `(state, value) => nextState`.
16
- * @returns An `Fx` that emits the accumulated state at each step.
17
- * @since 1.0.0
18
- * @category combinators
19
- */
20
- export const scan: {
21
- <S, A>(initial: S, f: (s: S, a: A) => S): <E, R>(fx: Fx<A, E, R>) => Fx<S, E, R>;
22
- <A, E, R, S>(fx: Fx<A, E, R>, initial: S, f: (s: S, a: A) => S): Fx<S, E, R>;
23
- } = dual(
24
- 3,
25
- <A, E, R, S>(fx: Fx<A, E, R>, initial: S, f: (s: S, a: A) => S): Fx<S, E, R> =>
26
- make<S, E, R>((sink) =>
27
- Effect.gen(function* () {
28
- yield* sink.onSuccess(initial);
29
- yield* fx.run(
30
- sinkLoop(sink, initial, (s, a) => {
31
- const next = f(s, a);
32
- return [next, next] as const;
33
- }),
34
- );
35
- }),
36
- ),
37
- );
38
-
39
- /**
40
- * Scans the stream with an effectful function, emitting the accumulated state after each element.
41
- * Emits the initial value first, then for each input `a` runs `f(state, a)` and emits the resulting state.
42
- *
43
- * @param initial - Initial state (first value emitted).
44
- * @param f - Effectful reducer `(state, value) => Effect<nextState>`.
45
- * @returns An `Fx` that emits the accumulated state at each step.
46
- * @since 1.0.0
47
- * @category combinators
48
- */
49
- export const scanEffect: {
50
- <S, A, E2, R2>(
51
- initial: S,
52
- f: (s: S, a: A) => Effect.Effect<S, E2, R2>,
53
- ): <E, R>(fx: Fx<A, E, R>) => Fx<S, E | E2, R | R2>;
54
- <A, E, R, S, E2, R2>(
55
- fx: Fx<A, E, R>,
56
- initial: S,
57
- f: (s: S, a: A) => Effect.Effect<S, E2, R2>,
58
- ): Fx<S, E | E2, R | R2>;
59
- } = dual(
60
- 3,
61
- <A, E, R, S, E2, R2>(
62
- fx: Fx<A, E, R>,
63
- initial: S,
64
- f: (s: S, a: A) => Effect.Effect<S, E2, R2>,
65
- ): Fx<S, E | E2, R | R2> =>
66
- make<S, E | E2, R | R2>(<RSink>(sink: Sink<S, E | E2, RSink>) =>
67
- Effect.gen(function* () {
68
- const services = yield* Effect.services<R | R2 | RSink>();
69
- yield* sink.onSuccess(initial);
70
- yield* fx.run(
71
- sinkLoopEffect(sink, initial, (s, a) =>
72
- pipe(
73
- f(s, a),
74
- Effect.catchCause((cause) => sink.onFailure(cause).pipe(Effect.as(s))),
75
- Effect.map((next) => [next, next] as const),
76
- Effect.provideServices(services),
77
- ),
78
- ),
79
- );
80
- }),
81
- ),
82
- );
@@ -1,41 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { dual } from "effect/Function";
3
- import type { Fx } from "../Fx.js";
4
- import { slice } from "./slice.js";
5
- import { unwrap } from "./unwrap.js";
6
-
7
- /**
8
- * Skips the first `n` elements of an Fx.
9
- *
10
- * @param n - The number of elements to skip.
11
- * @returns An `Fx` that emits values after the first `n` elements.
12
- * @since 1.0.0
13
- * @category combinators
14
- */
15
- export const skip: {
16
- (n: number): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>;
17
-
18
- <A, E, R>(fx: Fx<A, E, R>, n: number): Fx<A, E, R>;
19
- } = dual(
20
- 2,
21
- <A, E, R>(fx: Fx<A, E, R>, n: number): Fx<A, E, R> => slice(fx, { skip: n, take: Infinity }),
22
- );
23
-
24
- /**
25
- * Skips the first `n` elements where `n` is produced by an Effect.
26
- *
27
- * @param count - Effect that produces the number of elements to skip.
28
- * @returns An `Fx` that emits values after the first `n` elements.
29
- * @since 1.0.0
30
- * @category combinators
31
- */
32
- export const skipEffect: {
33
- <E2, R2>(
34
- count: Effect.Effect<number, E2, R2>,
35
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>;
36
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, count: Effect.Effect<number, E2, R2>): Fx<A, E | E2, R | R2>;
37
- } = dual(
38
- 2,
39
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, count: Effect.Effect<number, E2, R2>): Fx<A, E | E2, R | R2> =>
40
- unwrap(Effect.map(count, (n) => skip(fx, n))),
41
- );
@@ -1,15 +0,0 @@
1
- import { equals } from "effect/Equal";
2
- import type { Fx } from "../Fx.js";
3
- import { skipRepeatsWith } from "./skipRepeatsWith.js";
4
-
5
- const skipRepeats_ = skipRepeatsWith<any>(equals);
6
-
7
- /**
8
- * Drops elements that are equal to the previous element using standard equality.
9
- *
10
- * @param fx - The `Fx` stream.
11
- * @returns An `Fx` with consecutive duplicates removed.
12
- * @since 1.0.0
13
- * @category combinators
14
- */
15
- export const skipRepeats: <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R> = skipRepeats_;