@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
@@ -4,29 +4,95 @@ import type { Fx } from "../Fx.js";
4
4
  /**
5
5
  * Collects all values emitted by an `Fx` into an array.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Finite producers sometimes need to cross from push processing back to one Effect
11
+ * value. `collectAll` makes that buffering explicit rather than hiding it in `Fx`.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * The array is allocated separately for each Effect run. Subscription starts when the
16
+ * Effect runs and ends on source completion, failure, or interruption. Every emitted
17
+ * value is retained until completion, so an infinite source never completes and can
18
+ * grow memory without bound. Failures and services remain in `E` and `R`.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { Effect } from "effect"
23
+ * import { collectAll, fromIterable } from "@typed/fx/Fx"
24
+ *
25
+ * const program = collectAll(fromIterable([1, 2, 3])).pipe(
26
+ * Effect.map((values) => values.reduce((sum, value) => sum + value, 0))
27
+ * )
28
+ * ```
29
+ *
7
30
  * @param fx - The `Fx` to collect values from.
8
31
  * @returns An `Effect` that produces an array of all values when the `Fx` completes.
9
32
  * @since 1.0.0
10
- * @category runners
33
+ * @category Collecting values
11
34
  */
12
35
  export declare const collectAll: <A, E = never, R = never>(fx: Fx<A, E, R>) => Effect.Effect<ReadonlyArray<A>, E, R>;
13
36
  /**
14
37
  * Forks the collection of all values from an `Fx`.
15
38
  *
39
+ * @remarks
40
+ * ## Why
41
+ *
42
+ * Collection can proceed concurrently while the caller retains a typed `Fiber` for
43
+ * awaiting, polling, or interruption.
44
+ *
45
+ * ## Ownership and lifetime
46
+ *
47
+ * Running the returned Effect starts a child fiber immediately. The parent fiber's
48
+ * scope supervises it, so parent termination interrupts collection. The child retains
49
+ * every value until completion and exposes source failure as its `E` channel.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import { Effect, Fiber } from "effect"
54
+ * import { collectAllFork, fromIterable } from "@typed/fx/Fx"
55
+ *
56
+ * const program = Effect.gen(function* () {
57
+ * const fiber = yield* collectAllFork(fromIterable([1, 2, 3]))
58
+ * return yield* Fiber.join(fiber)
59
+ * })
60
+ * ```
61
+ *
16
62
  * @param fx - The `Fx` to collect values from.
17
63
  * @returns An `Effect` that produces a `Fiber` which computes the array of values.
18
64
  * @since 1.0.0
19
- * @category runners
65
+ * @category Collecting values
20
66
  */
21
67
  export declare const collectAllFork: <A, E = never, R = never>(fx: Fx<A, E, R>) => Effect.Effect<Fiber.Fiber<ReadonlyArray<A>, E>, never, R>;
22
68
  /**
23
69
  * Collects the first `n` values emitted by an `Fx` into an array.
24
70
  *
71
+ * @remarks
72
+ * ## Why
73
+ *
74
+ * `collectUpTo` creates a bounded pull result from a push source and stops upstream as
75
+ * soon as the requested cardinality has arrived.
76
+ *
77
+ * ## Ownership and lifetime
78
+ *
79
+ * Each Effect run owns a fresh array and source subscription. At most `upTo` values
80
+ * are retained in producer order; reaching the bound requests early exit and cleans
81
+ * up upstream. If the source completes first, the shorter array is returned. Source
82
+ * failures before completion remain typed.
83
+ *
84
+ * @example
85
+ * ```ts
86
+ * import { collectUpTo, fromIterable } from "@typed/fx/Fx"
87
+ *
88
+ * const firstTwo = collectUpTo(fromIterable([1, 2, 3]), 2)
89
+ * ```
90
+ *
25
91
  * @param fx - The `Fx` to collect values from.
26
92
  * @param upTo - The maximum number of values to collect.
27
93
  * @returns An `Effect` that produces an array of up to `n` values.
28
94
  * @since 1.0.0
29
- * @category runners
95
+ * @category Collecting values
30
96
  */
31
97
  export declare const collectUpTo: {
32
98
  (upTo: number): <A, E, R>(fx: Fx<A, E, R>) => Effect.Effect<ReadonlyArray<A>, E, R>;
@@ -35,11 +101,34 @@ export declare const collectUpTo: {
35
101
  /**
36
102
  * Forks the collection of up to `n` values from an `Fx`.
37
103
  *
104
+ * @remarks
105
+ * ## Why
106
+ *
107
+ * A bounded collection can run concurrently while the caller keeps control through
108
+ * the returned fiber.
109
+ *
110
+ * ## Ownership and lifetime
111
+ *
112
+ * Running the Effect starts a supervised child immediately. It retains at most
113
+ * `upTo` values, stops upstream at the bound, and is interrupted when its parent
114
+ * terminates. Source failures are reported by the child fiber.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * import { Effect, Fiber } from "effect"
119
+ * import { collectUpToFork, periodic } from "@typed/fx/Fx"
120
+ *
121
+ * const program = Effect.gen(function* () {
122
+ * const fiber = yield* collectUpToFork(periodic("10 millis"), 2)
123
+ * return yield* Fiber.join(fiber)
124
+ * })
125
+ * ```
126
+ *
38
127
  * @param fx - The `Fx` to collect values from.
39
128
  * @param upTo - The maximum number of values to collect.
40
129
  * @returns An `Effect` that produces a `Fiber` which computes the array of values.
41
130
  * @since 1.0.0
42
- * @category runners
131
+ * @category Collecting values
43
132
  */
44
133
  export declare const collectUpToFork: <A, E = never, R = never>(fx: Fx<A, E, R>, upTo: number) => Effect.Effect<Fiber.Fiber<ReadonlyArray<A>, E>, never, R>;
45
134
  //# sourceMappingURL=collect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAChD,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACd,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAQnC,CAAC;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACpD,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIvD,CAAC;AAEL;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAKjF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACrD,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIvD,CAAC"}
1
+ {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,MAC5C,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACd,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAQnC,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,MAChD,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIvD,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,WAAW,EAAE;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAKjF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,MACjD,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QACT,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIvD,CAAC"}
@@ -5,22 +5,68 @@ import { observe } from "./observe.js";
5
5
  /**
6
6
  * Collects all values emitted by an `Fx` into an array.
7
7
  *
8
+ * @remarks
9
+ * ## Why
10
+ *
11
+ * Finite producers sometimes need to cross from push processing back to one Effect
12
+ * value. `collectAll` makes that buffering explicit rather than hiding it in `Fx`.
13
+ *
14
+ * ## Ownership and lifetime
15
+ *
16
+ * The array is allocated separately for each Effect run. Subscription starts when the
17
+ * Effect runs and ends on source completion, failure, or interruption. Every emitted
18
+ * value is retained until completion, so an infinite source never completes and can
19
+ * grow memory without bound. Failures and services remain in `E` and `R`.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Effect } from "effect"
24
+ * import { collectAll, fromIterable } from "@typed/fx/Fx"
25
+ *
26
+ * const program = collectAll(fromIterable([1, 2, 3])).pipe(
27
+ * Effect.map((values) => values.reduce((sum, value) => sum + value, 0))
28
+ * )
29
+ * ```
30
+ *
8
31
  * @param fx - The `Fx` to collect values from.
9
32
  * @returns An `Effect` that produces an array of all values when the `Fx` completes.
10
33
  * @since 1.0.0
11
- * @category runners
34
+ * @category Collecting values
12
35
  */
13
36
  export const collectAll = (fx) => Effect.suspend(() => {
14
37
  const values = [];
15
- return fx.pipe(observe((value) => Effect.sync(() => values.push(value))), (_) => Effect.map(_.asEffect(), () => values));
38
+ return fx.pipe(observe((value) => Effect.sync(() => values.push(value))), Effect.map(() => values));
16
39
  });
17
40
  /**
18
41
  * Forks the collection of all values from an `Fx`.
19
42
  *
43
+ * @remarks
44
+ * ## Why
45
+ *
46
+ * Collection can proceed concurrently while the caller retains a typed `Fiber` for
47
+ * awaiting, polling, or interruption.
48
+ *
49
+ * ## Ownership and lifetime
50
+ *
51
+ * Running the returned Effect starts a child fiber immediately. The parent fiber's
52
+ * scope supervises it, so parent termination interrupts collection. The child retains
53
+ * every value until completion and exposes source failure as its `E` channel.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * import { Effect, Fiber } from "effect"
58
+ * import { collectAllFork, fromIterable } from "@typed/fx/Fx"
59
+ *
60
+ * const program = Effect.gen(function* () {
61
+ * const fiber = yield* collectAllFork(fromIterable([1, 2, 3]))
62
+ * return yield* Fiber.join(fiber)
63
+ * })
64
+ * ```
65
+ *
20
66
  * @param fx - The `Fx` to collect values from.
21
67
  * @returns An `Effect` that produces a `Fiber` which computes the array of values.
22
68
  * @since 1.0.0
23
- * @category runners
69
+ * @category Collecting values
24
70
  */
25
71
  export const collectAllFork = (fx) => Effect.forkChild(collectAll(fx), {
26
72
  startImmediately: true,
@@ -29,21 +75,64 @@ export const collectAllFork = (fx) => Effect.forkChild(collectAll(fx), {
29
75
  /**
30
76
  * Collects the first `n` values emitted by an `Fx` into an array.
31
77
  *
78
+ * @remarks
79
+ * ## Why
80
+ *
81
+ * `collectUpTo` creates a bounded pull result from a push source and stops upstream as
82
+ * soon as the requested cardinality has arrived.
83
+ *
84
+ * ## Ownership and lifetime
85
+ *
86
+ * Each Effect run owns a fresh array and source subscription. At most `upTo` values
87
+ * are retained in producer order; reaching the bound requests early exit and cleans
88
+ * up upstream. If the source completes first, the shorter array is returned. Source
89
+ * failures before completion remain typed.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * import { collectUpTo, fromIterable } from "@typed/fx/Fx"
94
+ *
95
+ * const firstTwo = collectUpTo(fromIterable([1, 2, 3]), 2)
96
+ * ```
97
+ *
32
98
  * @param fx - The `Fx` to collect values from.
33
99
  * @param upTo - The maximum number of values to collect.
34
100
  * @returns An `Effect` that produces an array of up to `n` values.
35
101
  * @since 1.0.0
36
- * @category runners
102
+ * @category Collecting values
37
103
  */
38
104
  export const collectUpTo = dual(2, (fx, upTo) => fx.pipe(take(upTo), collectAll));
39
105
  /**
40
106
  * Forks the collection of up to `n` values from an `Fx`.
41
107
  *
108
+ * @remarks
109
+ * ## Why
110
+ *
111
+ * A bounded collection can run concurrently while the caller keeps control through
112
+ * the returned fiber.
113
+ *
114
+ * ## Ownership and lifetime
115
+ *
116
+ * Running the Effect starts a supervised child immediately. It retains at most
117
+ * `upTo` values, stops upstream at the bound, and is interrupted when its parent
118
+ * terminates. Source failures are reported by the child fiber.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * import { Effect, Fiber } from "effect"
123
+ * import { collectUpToFork, periodic } from "@typed/fx/Fx"
124
+ *
125
+ * const program = Effect.gen(function* () {
126
+ * const fiber = yield* collectUpToFork(periodic("10 millis"), 2)
127
+ * return yield* Fiber.join(fiber)
128
+ * })
129
+ * ```
130
+ *
42
131
  * @param fx - The `Fx` to collect values from.
43
132
  * @param upTo - The maximum number of values to collect.
44
133
  * @returns An `Effect` that produces a `Fiber` which computes the array of values.
45
134
  * @since 1.0.0
46
- * @category runners
135
+ * @category Collecting values
47
136
  */
48
137
  export const collectUpToFork = (fx, upTo) => Effect.forkChild(collectUpTo(fx, upTo), {
49
138
  startImmediately: true,
@@ -5,10 +5,32 @@ import type { Fx } from "../Fx.js";
5
5
  * Returns the first value emitted by the `Fx` wrapped in an `Option`.
6
6
  * If the `Fx` is empty, returns `None`.
7
7
  *
8
+ * @remarks
9
+ * ## Why
10
+ *
11
+ * `first` safely crosses from a possibly empty push source to one Effect value without
12
+ * inventing an error for the zero-emission case.
13
+ *
14
+ * ## Ownership and lifetime
15
+ *
16
+ * Running the Effect subscribes once and stops upstream after the first value. It
17
+ * returns `None` only when the source completes first; a source failure is still `E`.
18
+ * Interruption cleans up the active source.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { Effect, Option } from "effect"
23
+ * import { first, fromIterable } from "@typed/fx/Fx"
24
+ *
25
+ * const program = first(fromIterable([10, 20])).pipe(
26
+ * Effect.map(Option.getOrElse(() => 0))
27
+ * )
28
+ * ```
29
+ *
8
30
  * @param fx - The `Fx` stream.
9
31
  * @returns An `Effect` that produces `Some(firstValue)` or `None`.
10
32
  * @since 1.0.0
11
- * @category runners
33
+ * @category Collecting values
12
34
  */
13
35
  export declare function first<A, E, R>(fx: Fx<A, E, R>): Effect<Option<A>, E, R>;
14
36
  //# sourceMappingURL=first.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"first.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/first.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEvE"}
1
+ {"version":3,"file":"first.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/first.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEvE"}
@@ -6,10 +6,32 @@ import { collectUpTo } from "./collect.js";
6
6
  * Returns the first value emitted by the `Fx` wrapped in an `Option`.
7
7
  * If the `Fx` is empty, returns `None`.
8
8
  *
9
+ * @remarks
10
+ * ## Why
11
+ *
12
+ * `first` safely crosses from a possibly empty push source to one Effect value without
13
+ * inventing an error for the zero-emission case.
14
+ *
15
+ * ## Ownership and lifetime
16
+ *
17
+ * Running the Effect subscribes once and stops upstream after the first value. It
18
+ * returns `None` only when the source completes first; a source failure is still `E`.
19
+ * Interruption cleans up the active source.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Effect, Option } from "effect"
24
+ * import { first, fromIterable } from "@typed/fx/Fx"
25
+ *
26
+ * const program = first(fromIterable([10, 20])).pipe(
27
+ * Effect.map(Option.getOrElse(() => 0))
28
+ * )
29
+ * ```
30
+ *
9
31
  * @param fx - The `Fx` stream.
10
32
  * @returns An `Effect` that produces `Some(firstValue)` or `None`.
11
33
  * @since 1.0.0
12
- * @category runners
34
+ * @category Collecting values
13
35
  */
14
36
  export function first(fx) {
15
37
  return pipe(fx, collectUpTo(1), map(head));
@@ -5,11 +5,36 @@ import type { Fx } from "../Fx.js";
5
5
  * Forks the execution of an `Fx` into a background fiber.
6
6
  * The stream will run until it completes or the fiber is interrupted.
7
7
  *
8
+ * @remarks
9
+ * ## Why
10
+ *
11
+ * `fork` keeps background execution inside Effect's supervised fiber tree while
12
+ * returning an explicit handle for coordination.
13
+ *
14
+ * ## Ownership and lifetime
15
+ *
16
+ * The returned Effect acquires the source services and creates a child attached to
17
+ * the calling fiber's scope. Parent termination interrupts the child. By default the
18
+ * child starts immediately and remains interruptible; `options` can change those two
19
+ * Effect fiber policies. Values are discarded and source failure is reported by the
20
+ * child fiber.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { Effect, Fiber } from "effect"
25
+ * import { fork, periodic } from "@typed/fx/Fx"
26
+ *
27
+ * const program = Effect.gen(function* () {
28
+ * const fiber = yield* fork(periodic("1 second"))
29
+ * return yield* Fiber.interrupt(fiber)
30
+ * })
31
+ * ```
32
+ *
8
33
  * @param fx - The `Fx` stream to fork.
9
34
  * @param options - Configuration for the forked fiber.
10
35
  * @returns An `Effect` that produces a `Fiber`.
11
36
  * @since 1.0.0
12
- * @category runners
37
+ * @category Running effects
13
38
  */
14
39
  export declare const fork: <A, E, R>(fx: Fx<A, E, R>, options?: {
15
40
  readonly startImmediately?: boolean;
@@ -19,11 +44,36 @@ export declare const fork: <A, E, R>(fx: Fx<A, E, R>, options?: {
19
44
  * Runs an `Fx` in a new fiber, using the standard `Effect.runFork`.
20
45
  * This is useful for integrating with the top-level Effect runtime.
21
46
  *
47
+ * @remarks
48
+ * ## Why
49
+ *
50
+ * Application and foreign-runtime boundaries sometimes need to start an `Fx` without
51
+ * already being inside an Effect program.
52
+ *
53
+ * ## Ownership and lifetime
54
+ *
55
+ * `runFork` starts immediately on Effect's default runtime, so it only accepts an `Fx`
56
+ * with no unsupplied services. The returned root fiber owns the subscription and must
57
+ * be interrupted by the caller when the source should stop. Values are discarded;
58
+ * failures appear on the fiber and `RunOptions` controls the runtime launch.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * import { Effect, Fiber } from "effect"
63
+ * import { periodic, runFork } from "@typed/fx/Fx"
64
+ *
65
+ * const fiber = runFork(periodic("1 second"))
66
+ *
67
+ * // `runFork` is already a host-runtime boundary. Execute the returned
68
+ * // interruption Effect when this host no longer needs the subscription.
69
+ * await Effect.runPromise(Fiber.interrupt(fiber))
70
+ * ```
71
+ *
22
72
  * @param fx - The `Fx` stream to run.
23
73
  * @param options - `RunOptions` for the execution.
24
74
  * @returns The created `Fiber`.
25
75
  * @since 1.0.0
26
- * @category runners
76
+ * @category Running effects
27
77
  */
28
78
  export declare const runFork: <A, E>(fx: Fx<A, E>, options?: RunOptions) => Fiber<void, E>;
29
79
  //# sourceMappingURL=fork.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC1B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,UAAU;IACR,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC,KACA,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIjC,CAAC;AAEL;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,UAAU,KAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAC7C,CAAC"}
1
+ {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MACtB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YACL;IACR,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC,KACA,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIjC,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,UAAU,KAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAC7C,CAAC"}
@@ -4,11 +4,36 @@ import { drain } from "./observe.js";
4
4
  * Forks the execution of an `Fx` into a background fiber.
5
5
  * The stream will run until it completes or the fiber is interrupted.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * `fork` keeps background execution inside Effect's supervised fiber tree while
11
+ * returning an explicit handle for coordination.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * The returned Effect acquires the source services and creates a child attached to
16
+ * the calling fiber's scope. Parent termination interrupts the child. By default the
17
+ * child starts immediately and remains interruptible; `options` can change those two
18
+ * Effect fiber policies. Values are discarded and source failure is reported by the
19
+ * child fiber.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Effect, Fiber } from "effect"
24
+ * import { fork, periodic } from "@typed/fx/Fx"
25
+ *
26
+ * const program = Effect.gen(function* () {
27
+ * const fiber = yield* fork(periodic("1 second"))
28
+ * return yield* Fiber.interrupt(fiber)
29
+ * })
30
+ * ```
31
+ *
7
32
  * @param fx - The `Fx` stream to fork.
8
33
  * @param options - Configuration for the forked fiber.
9
34
  * @returns An `Effect` that produces a `Fiber`.
10
35
  * @since 1.0.0
11
- * @category runners
36
+ * @category Running effects
12
37
  */
13
38
  export const fork = (fx, options) => effectFork(drain(fx), {
14
39
  startImmediately: options?.startImmediately ?? true,
@@ -18,10 +43,35 @@ export const fork = (fx, options) => effectFork(drain(fx), {
18
43
  * Runs an `Fx` in a new fiber, using the standard `Effect.runFork`.
19
44
  * This is useful for integrating with the top-level Effect runtime.
20
45
  *
46
+ * @remarks
47
+ * ## Why
48
+ *
49
+ * Application and foreign-runtime boundaries sometimes need to start an `Fx` without
50
+ * already being inside an Effect program.
51
+ *
52
+ * ## Ownership and lifetime
53
+ *
54
+ * `runFork` starts immediately on Effect's default runtime, so it only accepts an `Fx`
55
+ * with no unsupplied services. The returned root fiber owns the subscription and must
56
+ * be interrupted by the caller when the source should stop. Values are discarded;
57
+ * failures appear on the fiber and `RunOptions` controls the runtime launch.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * import { Effect, Fiber } from "effect"
62
+ * import { periodic, runFork } from "@typed/fx/Fx"
63
+ *
64
+ * const fiber = runFork(periodic("1 second"))
65
+ *
66
+ * // `runFork` is already a host-runtime boundary. Execute the returned
67
+ * // interruption Effect when this host no longer needs the subscription.
68
+ * await Effect.runPromise(Fiber.interrupt(fiber))
69
+ * ```
70
+ *
21
71
  * @param fx - The `Fx` stream to run.
22
72
  * @param options - `RunOptions` for the execution.
23
73
  * @returns The created `Fiber`.
24
74
  * @since 1.0.0
25
- * @category runners
75
+ * @category Running effects
26
76
  */
27
77
  export const runFork = (fx, options) => effectRunFork(drain(fx), options);
@@ -6,11 +6,40 @@ import type { Fx } from "../Fx.js";
6
6
  * Observes the values of an `Fx` stream using a callback function.
7
7
  * The callback can return `void` or an `Effect` which will be executed for each value.
8
8
  *
9
+ * @remarks
10
+ * ## Why
11
+ *
12
+ * `observe` is the primary Effect boundary for performing work for each pushed value.
13
+ * A plain callback is lifted to Effect, while an Effect callback contributes its own
14
+ * typed failures and services to the result.
15
+ *
16
+ * ## Ownership and lifetime
17
+ *
18
+ * Observation starts only when the returned Effect runs. That Effect owns the source
19
+ * run and completes when the source completes. Interruption interrupts the internal
20
+ * fiber and source cleanup. Callback invocation follows the producer's delivery
21
+ * behavior; `observe` adds no buffer or concurrency of its own. A source cause or a
22
+ * callback failure fails the returned Effect as `E | E2` and stops further
23
+ * deliveries. The producer fiber finishes cleanup before observation settles;
24
+ * resources acquired in the caller's Scope retain that Scope's lifetime.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { Effect, Ref } from "effect"
29
+ * import { fromIterable, observe } from "@typed/fx/Fx"
30
+ *
31
+ * const program = Effect.gen(function* () {
32
+ * const total = yield* Ref.make(0)
33
+ * yield* observe(fromIterable([1, 2, 3]), (value) => Ref.update(total, (n) => n + value))
34
+ * return yield* Ref.get(total)
35
+ * })
36
+ * ```
37
+ *
9
38
  * @param fx - The `Fx` stream to observe.
10
39
  * @param f - The function to call for each emitted value.
11
40
  * @returns An `Effect` that completes when the stream ends.
12
41
  * @since 1.0.0
13
- * @category runners
42
+ * @category Running effects
14
43
  */
15
44
  export declare const observe: {
16
45
  <A, E2 = never, R2 = never>(f: (value: A) => void | Effect<unknown, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Effect<unknown, E | E2, R | R2>;
@@ -20,31 +49,110 @@ export declare const observe: {
20
49
  * Runs an `Fx` stream to completion, discarding all values.
21
50
  * Useful when the side effects of the stream are all that matter.
22
51
  *
52
+ * @remarks
53
+ * ## Why
54
+ *
55
+ * Some producers perform all useful work in acquisition, effects, or finalization and
56
+ * need execution without retaining their emitted values.
57
+ *
58
+ * ## Ownership and lifetime
59
+ *
60
+ * Running the Effect owns one source subscription until completion, failure, or
61
+ * interruption. It allocates no collection and adds no per-value effect. Source
62
+ * failures and services remain visible.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * import { drain, fromIterable } from "@typed/fx/Fx"
67
+ *
68
+ * const program = drain(fromIterable([1, 2, 3]))
69
+ * ```
70
+ *
23
71
  * @param fx - The `Fx` stream to drain.
24
72
  * @returns An `Effect` that completes when the stream ends.
25
73
  * @since 1.0.0
26
- * @category runners
74
+ * @category Running effects
27
75
  */
28
76
  export declare const drain: <A, E, R>(fx: Fx<A, E, R>) => Effect<void, E, R>;
29
77
  /**
30
78
  * Runs an `Fx` stream as a Layer.
31
79
  * The stream is forked in the background when the layer is acquired.
32
80
  *
81
+ * @remarks
82
+ * ## Why
83
+ *
84
+ * A background producer can share the same acquisition and shutdown boundary as an
85
+ * application's Effect [Layer](https://effect.website/docs/v4/api/effect/Layer) graph
86
+ * even when it provides no service itself.
87
+ *
88
+ * ## Ownership and lifetime
89
+ *
90
+ * Building the Layer starts `drain(fx)` with `forkScoped`. Acquisition succeeds after
91
+ * the fiber is registered; it does not wait for that fiber. The Layer scope interrupts
92
+ * the fiber on release. A source failure is stored in the discarded child Fiber exit:
93
+ * it does not fail Layer acquisition and this API exposes no handle for awaiting it.
94
+ * Recover, report, or otherwise observe failures inside `fx` before calling
95
+ * `drainLayer`, or use `fork` when the caller needs the Fiber exit. The annotated `E`
96
+ * channel remains in the public Layer type even though the background exit is not
97
+ * propagated by this implementation. `Scope` is supplied by the Layer.
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * import { Effect } from "effect"
102
+ * import { Fx } from "@typed/fx"
103
+ *
104
+ * const reported = Fx.fail("offline").pipe(
105
+ * Fx.catch((error) => Fx.fromEffect(Effect.logError(error)))
106
+ * )
107
+ * const Background = Fx.drainLayer(reported)
108
+ * const program = Effect.void.pipe(Effect.provide(Background))
109
+ * ```
110
+ *
33
111
  * @param fx - The `Fx` stream to run.
34
112
  * @returns A `Layer` that manages the background execution of the stream.
35
113
  * @since 1.0.0
36
- * @category runners
114
+ * @category Running effects
37
115
  */
38
116
  export declare const drainLayer: <A, E, R>(fx: Fx<A, E, R>) => Layer<never, E, Exclude<R, Scope>>;
39
117
  /**
40
118
  * Observes the values of an `Fx` stream using a callback function and returns a `Layer`.
41
119
  * The callback can return `void` or an `Effect` which will be executed for each value.
42
120
  *
121
+ * @remarks
122
+ * ## Why
123
+ *
124
+ * Observation side effects can be installed as application infrastructure and share
125
+ * the Layer graph's typed dependencies and shutdown behavior.
126
+ *
127
+ * ## Ownership and lifetime
128
+ *
129
+ * Building the Layer forks `observe(fx, f)` in its scope and completes acquisition
130
+ * after registration. Releasing the Layer interrupts the observer and source. Source
131
+ * and callback failures terminate the discarded child Fiber; they do not fail Layer
132
+ * acquisition, and this API exposes no Fiber handle from which to await the exit.
133
+ * Handle or report those failures inside the source/callback, or use `observe`/`fork`
134
+ * when the caller must observe them. The annotated `E | E2` Layer error remains in the
135
+ * public type even though this implementation does not propagate the background exit.
136
+ * `Scope` is supplied internally; delivery behavior remains that of `observe`.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * import { Effect } from "effect"
141
+ * import { fromIterable, observeLayer } from "@typed/fx/Fx"
142
+ *
143
+ * const report = (value: number) =>
144
+ * Effect.try({ try: () => JSON.stringify(BigInt(value)), catch: String }).pipe(
145
+ * Effect.catch((error) => Effect.logError(error))
146
+ * )
147
+ * const LogValues = observeLayer(fromIterable([1, 2]), report)
148
+ * const program = Effect.void.pipe(Effect.provide(LogValues))
149
+ * ```
150
+ *
43
151
  * @param fx - The `Fx` stream to observe.
44
152
  * @param f - The function to call for each emitted value.
45
153
  * @returns A `Layer` that manages the background execution of the stream.
46
154
  * @since 1.0.0
47
- * @category runners
155
+ * @category Running effects
48
156
  */
49
157
  export declare const observeLayer: {
50
158
  <A, E2 = never, R2 = never>(f: (value: A) => void | Effect<unknown, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Layer<never, E | E2, Exclude<R | R2, Scope>>;