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