@typed/fx 2.0.0-beta.1 → 2.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -21
  3. package/dist/Fx/Fx.d.ts +371 -19
  4. package/dist/Fx/Fx.d.ts.map +1 -1
  5. package/dist/Fx/Fx.js +37 -6
  6. package/dist/Fx/TypeId.d.ts +52 -6
  7. package/dist/Fx/TypeId.d.ts.map +1 -1
  8. package/dist/Fx/TypeId.js +41 -4
  9. package/dist/Fx/combinators/additive.d.ts +162 -11
  10. package/dist/Fx/combinators/additive.d.ts.map +1 -1
  11. package/dist/Fx/combinators/additive.js +162 -11
  12. package/dist/Fx/combinators/catch.d.ts +202 -29
  13. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  14. package/dist/Fx/combinators/catch.js +193 -23
  15. package/dist/Fx/combinators/causes.d.ts +25 -2
  16. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  17. package/dist/Fx/combinators/causes.js +25 -2
  18. package/dist/Fx/combinators/changesWithEffect.d.ts +21 -1
  19. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
  20. package/dist/Fx/combinators/changesWithEffect.js +21 -1
  21. package/dist/Fx/combinators/compact.d.ts +18 -1
  22. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  23. package/dist/Fx/combinators/compact.js +18 -1
  24. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  25. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  26. package/dist/Fx/combinators/concatMap.js +86 -0
  27. package/dist/Fx/combinators/continueWith.d.ts +113 -5
  28. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  29. package/dist/Fx/combinators/continueWith.js +113 -5
  30. package/dist/Fx/combinators/debounce.d.ts +34 -0
  31. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  32. package/dist/Fx/combinators/debounce.js +35 -0
  33. package/dist/Fx/combinators/delay.d.ts +36 -0
  34. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  35. package/dist/Fx/combinators/delay.js +33 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts +44 -2
  37. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
  38. package/dist/Fx/combinators/dropUntil.js +44 -2
  39. package/dist/Fx/combinators/during.d.ts +38 -0
  40. package/dist/Fx/combinators/during.d.ts.map +1 -0
  41. package/dist/Fx/combinators/during.js +85 -0
  42. package/dist/Fx/combinators/ensuring.d.ts +34 -4
  43. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  44. package/dist/Fx/combinators/ensuring.js +34 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
  46. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  47. package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  50. package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
  51. package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
  52. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  53. package/dist/Fx/combinators/exhaustMap.js +38 -1
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  56. package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
  57. package/dist/Fx/combinators/exit.d.ts +23 -2
  58. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  59. package/dist/Fx/combinators/exit.js +23 -2
  60. package/dist/Fx/combinators/filter.d.ts +17 -1
  61. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  62. package/dist/Fx/combinators/filter.js +17 -1
  63. package/dist/Fx/combinators/filterEffect.d.ts +22 -1
  64. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  65. package/dist/Fx/combinators/filterEffect.js +22 -1
  66. package/dist/Fx/combinators/filterMap.d.ts +20 -1
  67. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  68. package/dist/Fx/combinators/filterMap.js +20 -1
  69. package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
  70. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  71. package/dist/Fx/combinators/filterMapEffect.js +21 -1
  72. package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
  73. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  74. package/dist/Fx/combinators/filterMapLoop.js +20 -1
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  77. package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  80. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  83. package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
  84. package/dist/Fx/combinators/flatMap.d.ts +50 -5
  85. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  86. package/dist/Fx/combinators/flatMap.js +36 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
  88. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  89. package/dist/Fx/combinators/flatMapConcurrently.js +48 -2
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  92. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
  94. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  95. package/dist/Fx/combinators/flatMapEffect.js +32 -2
  96. package/dist/Fx/combinators/flip.d.ts +34 -2
  97. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  98. package/dist/Fx/combinators/flip.js +34 -2
  99. package/dist/Fx/combinators/gen.d.ts +29 -10
  100. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  101. package/dist/Fx/combinators/gen.js +28 -4
  102. package/dist/Fx/combinators/genScoped.d.ts +33 -10
  103. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  104. package/dist/Fx/combinators/genScoped.js +31 -3
  105. package/dist/Fx/combinators/grouped.d.ts +89 -0
  106. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  107. package/dist/Fx/combinators/grouped.js +146 -0
  108. package/dist/Fx/combinators/index.d.ts +35 -0
  109. package/dist/Fx/combinators/index.d.ts.map +1 -1
  110. package/dist/Fx/combinators/index.js +35 -0
  111. package/dist/Fx/combinators/keyed.d.ts +123 -9
  112. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  113. package/dist/Fx/combinators/keyed.js +69 -11
  114. package/dist/Fx/combinators/loop.d.ts +17 -1
  115. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  116. package/dist/Fx/combinators/loop.js +17 -1
  117. package/dist/Fx/combinators/loopCause.d.ts +18 -1
  118. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  119. package/dist/Fx/combinators/loopCause.js +18 -1
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
  121. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  122. package/dist/Fx/combinators/loopCauseEffect.js +19 -1
  123. package/dist/Fx/combinators/loopEffect.d.ts +24 -1
  124. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  125. package/dist/Fx/combinators/loopEffect.js +24 -1
  126. package/dist/Fx/combinators/map.d.ts +46 -1
  127. package/dist/Fx/combinators/map.d.ts.map +1 -1
  128. package/dist/Fx/combinators/map.js +43 -1
  129. package/dist/Fx/combinators/mapBoth.d.ts +20 -1
  130. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
  131. package/dist/Fx/combinators/mapBoth.js +20 -1
  132. package/dist/Fx/combinators/mapEffect.d.ts +25 -1
  133. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  134. package/dist/Fx/combinators/mapEffect.js +25 -1
  135. package/dist/Fx/combinators/mapError.d.ts +21 -5
  136. package/dist/Fx/combinators/mapError.d.ts.map +1 -1
  137. package/dist/Fx/combinators/mapError.js +21 -5
  138. package/dist/Fx/combinators/mergeAll.d.ts +35 -1
  139. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  140. package/dist/Fx/combinators/mergeAll.js +35 -1
  141. package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
  142. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  143. package/dist/Fx/combinators/mergeOrdered.js +68 -14
  144. package/dist/Fx/combinators/onError.d.ts +34 -4
  145. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  146. package/dist/Fx/combinators/onError.js +34 -4
  147. package/dist/Fx/combinators/onExit.d.ts +29 -3
  148. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  149. package/dist/Fx/combinators/onExit.js +29 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
  151. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  152. package/dist/Fx/combinators/onInterrupt.js +49 -4
  153. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  154. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  155. package/dist/Fx/combinators/pairwise.js +31 -0
  156. package/dist/Fx/combinators/provide.d.ts +141 -20
  157. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  158. package/dist/Fx/combinators/provide.js +137 -16
  159. package/dist/Fx/combinators/race.d.ts +92 -0
  160. package/dist/Fx/combinators/race.d.ts.map +1 -0
  161. package/dist/Fx/combinators/race.js +149 -0
  162. package/dist/Fx/combinators/repeat.d.ts +41 -0
  163. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  164. package/dist/Fx/combinators/repeat.js +57 -0
  165. package/dist/Fx/combinators/result.d.ts +23 -1
  166. package/dist/Fx/combinators/result.d.ts.map +1 -1
  167. package/dist/Fx/combinators/result.js +27 -13
  168. package/dist/Fx/combinators/retry.d.ts +53 -0
  169. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  170. package/dist/Fx/combinators/retry.js +71 -0
  171. package/dist/Fx/combinators/sample.d.ts +31 -0
  172. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  173. package/dist/Fx/combinators/sample.js +42 -0
  174. package/dist/Fx/combinators/scan.d.ts +41 -2
  175. package/dist/Fx/combinators/scan.d.ts.map +1 -1
  176. package/dist/Fx/combinators/scan.js +43 -4
  177. package/dist/Fx/combinators/since.d.ts +30 -0
  178. package/dist/Fx/combinators/since.d.ts.map +1 -0
  179. package/dist/Fx/combinators/since.js +39 -0
  180. package/dist/Fx/combinators/skip.d.ts +33 -2
  181. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  182. package/dist/Fx/combinators/skip.js +33 -2
  183. package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
  184. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  185. package/dist/Fx/combinators/skipRepeats.js +17 -1
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  188. package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
  189. package/dist/Fx/combinators/skipWhile.d.ts +72 -4
  190. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
  191. package/dist/Fx/combinators/skipWhile.js +72 -4
  192. package/dist/Fx/combinators/slice.d.ts +85 -3
  193. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  194. package/dist/Fx/combinators/slice.js +35 -2
  195. package/dist/Fx/combinators/switchMap.d.ts +39 -1
  196. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  197. package/dist/Fx/combinators/switchMap.js +43 -5
  198. package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
  199. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  200. package/dist/Fx/combinators/switchMapEffect.js +38 -1
  201. package/dist/Fx/combinators/take.d.ts +34 -2
  202. package/dist/Fx/combinators/take.d.ts.map +1 -1
  203. package/dist/Fx/combinators/take.js +34 -2
  204. package/dist/Fx/combinators/takeUntil.d.ts +49 -3
  205. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  206. package/dist/Fx/combinators/takeUntil.js +49 -3
  207. package/dist/Fx/combinators/takeWhile.d.ts +33 -2
  208. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
  209. package/dist/Fx/combinators/takeWhile.js +33 -2
  210. package/dist/Fx/combinators/tapEffect.d.ts +17 -1
  211. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  212. package/dist/Fx/combinators/tapEffect.js +17 -1
  213. package/dist/Fx/combinators/throttle.d.ts +79 -0
  214. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  215. package/dist/Fx/combinators/throttle.js +99 -0
  216. package/dist/Fx/combinators/timeout.d.ts +76 -0
  217. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  218. package/dist/Fx/combinators/timeout.js +110 -0
  219. package/dist/Fx/combinators/tuple.d.ts +32 -2
  220. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  221. package/dist/Fx/combinators/tuple.js +36 -5
  222. package/dist/Fx/combinators/until.d.ts +27 -0
  223. package/dist/Fx/combinators/until.d.ts.map +1 -0
  224. package/dist/Fx/combinators/until.js +56 -0
  225. package/dist/Fx/combinators/unwrap.d.ts +31 -2
  226. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  227. package/dist/Fx/combinators/unwrap.js +30 -1
  228. package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
  229. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  230. package/dist/Fx/combinators/unwrapScoped.js +34 -1
  231. package/dist/Fx/combinators/when.d.ts +37 -2
  232. package/dist/Fx/combinators/when.d.ts.map +1 -1
  233. package/dist/Fx/combinators/when.js +38 -3
  234. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  235. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  236. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  237. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  238. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  239. package/dist/Fx/combinators/withSpan.js +34 -3
  240. package/dist/Fx/combinators/zip.d.ts +64 -4
  241. package/dist/Fx/combinators/zip.d.ts.map +1 -1
  242. package/dist/Fx/combinators/zip.js +64 -4
  243. package/dist/Fx/constructors/at.d.ts +21 -1
  244. package/dist/Fx/constructors/at.d.ts.map +1 -1
  245. package/dist/Fx/constructors/at.js +21 -1
  246. package/dist/Fx/constructors/die.d.ts +22 -1
  247. package/dist/Fx/constructors/die.d.ts.map +1 -1
  248. package/dist/Fx/constructors/die.js +22 -1
  249. package/dist/Fx/constructors/empty.d.ts +19 -1
  250. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  251. package/dist/Fx/constructors/empty.js +19 -1
  252. package/dist/Fx/constructors/fail.d.ts +22 -1
  253. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  254. package/dist/Fx/constructors/fail.js +22 -1
  255. package/dist/Fx/constructors/failCause.d.ts +23 -1
  256. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  257. package/dist/Fx/constructors/failCause.js +23 -1
  258. package/dist/Fx/constructors/fn.d.ts +116 -16
  259. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  260. package/dist/Fx/constructors/fn.js +36 -0
  261. package/dist/Fx/constructors/fromEffect.d.ts +45 -3
  262. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  263. package/dist/Fx/constructors/fromEffect.js +45 -3
  264. package/dist/Fx/constructors/fromFailures.d.ts +25 -1
  265. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  266. package/dist/Fx/constructors/fromFailures.js +25 -1
  267. package/dist/Fx/constructors/fromIterable.d.ts +23 -1
  268. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  269. package/dist/Fx/constructors/fromIterable.js +23 -1
  270. package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
  271. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  272. package/dist/Fx/constructors/fromSchedule.js +28 -3
  273. package/dist/Fx/constructors/index.d.ts +2 -1
  274. package/dist/Fx/constructors/index.d.ts.map +1 -1
  275. package/dist/Fx/constructors/index.js +2 -1
  276. package/dist/Fx/constructors/interrupt.d.ts +22 -2
  277. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  278. package/dist/Fx/constructors/interrupt.js +22 -2
  279. package/dist/Fx/constructors/make.d.ts +151 -4
  280. package/dist/Fx/constructors/make.d.ts.map +1 -1
  281. package/dist/Fx/constructors/make.js +60 -7
  282. package/dist/Fx/constructors/periodic.d.ts +30 -1
  283. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  284. package/dist/Fx/constructors/periodic.js +30 -1
  285. package/dist/Fx/constructors/succeed.d.ts +79 -7
  286. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  287. package/dist/Fx/constructors/succeed.js +79 -7
  288. package/dist/Fx/constructors/suspend.d.ts +28 -0
  289. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  290. package/dist/Fx/constructors/suspend.js +28 -0
  291. package/dist/Fx/constructors/sync.d.ts +32 -0
  292. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  293. package/dist/Fx/constructors/sync.js +32 -0
  294. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  295. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  296. package/dist/Fx/internal/DeferredRef.js +260 -9
  297. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  298. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  299. package/dist/Fx/internal/diff.d.ts +586 -0
  300. package/dist/Fx/internal/diff.d.ts.map +1 -1
  301. package/dist/Fx/internal/diff.js +120 -9
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  304. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts +70 -0
  306. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  307. package/dist/Fx/internal/effectableWithOverride.js +54 -0
  308. package/dist/Fx/internal/equivalence.d.ts +29 -0
  309. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  310. package/dist/Fx/internal/equivalence.js +29 -0
  311. package/dist/Fx/internal/multicast.d.ts +145 -2
  312. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  313. package/dist/Fx/internal/multicast.js +146 -4
  314. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  315. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  316. package/dist/Fx/internal/ring-buffer.js +155 -0
  317. package/dist/Fx/internal/scope.d.ts +184 -0
  318. package/dist/Fx/internal/scope.d.ts.map +1 -1
  319. package/dist/Fx/internal/scope.js +150 -0
  320. package/dist/Fx/internal/yieldable.d.ts +117 -2
  321. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  322. package/dist/Fx/internal/yieldable.js +86 -3
  323. package/dist/Fx/run/collect.d.ts +93 -4
  324. package/dist/Fx/run/collect.d.ts.map +1 -1
  325. package/dist/Fx/run/collect.js +94 -5
  326. package/dist/Fx/run/first.d.ts +23 -1
  327. package/dist/Fx/run/first.d.ts.map +1 -1
  328. package/dist/Fx/run/first.js +23 -1
  329. package/dist/Fx/run/fork.d.ts +52 -2
  330. package/dist/Fx/run/fork.d.ts.map +1 -1
  331. package/dist/Fx/run/fork.js +52 -2
  332. package/dist/Fx/run/observe.d.ts +112 -4
  333. package/dist/Fx/run/observe.d.ts.map +1 -1
  334. package/dist/Fx/run/observe.js +137 -16
  335. package/dist/Fx/run/runPromise.d.ts +45 -2
  336. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  337. package/dist/Fx/run/runPromise.js +45 -2
  338. package/dist/Fx/stream.d.ts +92 -0
  339. package/dist/Fx/stream.d.ts.map +1 -1
  340. package/dist/Fx/stream.js +60 -1
  341. package/dist/Push/Push.d.ts +1229 -104
  342. package/dist/Push/Push.d.ts.map +1 -1
  343. package/dist/Push/Push.js +1024 -95
  344. package/dist/RefArray.d.ts +2 -0
  345. package/dist/RefArray.d.ts.map +1 -0
  346. package/dist/RefArray.js +1 -0
  347. package/dist/RefBigDecimal.d.ts +2 -0
  348. package/dist/RefBigDecimal.d.ts.map +1 -0
  349. package/dist/RefBigDecimal.js +1 -0
  350. package/dist/RefBigInt.d.ts +2 -0
  351. package/dist/RefBigInt.d.ts.map +1 -0
  352. package/dist/RefBigInt.js +1 -0
  353. package/dist/RefBoolean.d.ts +2 -0
  354. package/dist/RefBoolean.d.ts.map +1 -0
  355. package/dist/RefBoolean.js +1 -0
  356. package/dist/RefCause.d.ts +2 -0
  357. package/dist/RefCause.d.ts.map +1 -0
  358. package/dist/RefCause.js +1 -0
  359. package/dist/RefChunk.d.ts +2 -0
  360. package/dist/RefChunk.d.ts.map +1 -0
  361. package/dist/RefChunk.js +1 -0
  362. package/dist/RefDateTime.d.ts +2 -0
  363. package/dist/RefDateTime.d.ts.map +1 -0
  364. package/dist/RefDateTime.js +1 -0
  365. package/dist/RefDuration.d.ts +2 -0
  366. package/dist/RefDuration.d.ts.map +1 -0
  367. package/dist/RefDuration.js +1 -0
  368. package/dist/RefGraph.d.ts +2 -0
  369. package/dist/RefGraph.d.ts.map +1 -0
  370. package/dist/RefGraph.js +1 -0
  371. package/dist/RefHashMap.d.ts +2 -0
  372. package/dist/RefHashMap.d.ts.map +1 -0
  373. package/dist/RefHashMap.js +1 -0
  374. package/dist/RefHashRing.d.ts +2 -0
  375. package/dist/RefHashRing.d.ts.map +1 -0
  376. package/dist/RefHashRing.js +1 -0
  377. package/dist/RefHashSet.d.ts +2 -0
  378. package/dist/RefHashSet.d.ts.map +1 -0
  379. package/dist/RefHashSet.js +1 -0
  380. package/dist/RefIterable.d.ts +2 -0
  381. package/dist/RefIterable.d.ts.map +1 -0
  382. package/dist/RefIterable.js +1 -0
  383. package/dist/RefOption.d.ts +2 -0
  384. package/dist/RefOption.d.ts.map +1 -0
  385. package/dist/RefOption.js +1 -0
  386. package/dist/RefRecord.d.ts +2 -0
  387. package/dist/RefRecord.d.ts.map +1 -0
  388. package/dist/RefRecord.js +1 -0
  389. package/dist/RefResult.d.ts +2 -0
  390. package/dist/RefResult.d.ts.map +1 -0
  391. package/dist/RefResult.js +1 -0
  392. package/dist/RefString.d.ts +2 -0
  393. package/dist/RefString.d.ts.map +1 -0
  394. package/dist/RefString.js +1 -0
  395. package/dist/RefStruct.d.ts +2 -0
  396. package/dist/RefStruct.d.ts.map +1 -0
  397. package/dist/RefStruct.js +1 -0
  398. package/dist/RefSubject/Hydration.d.ts +504 -0
  399. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  400. package/dist/RefSubject/Hydration.js +300 -0
  401. package/dist/RefSubject/RefArray.d.ts +382 -35
  402. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  403. package/dist/RefSubject/RefArray.js +374 -40
  404. package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
  405. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  406. package/dist/RefSubject/RefBigDecimal.js +229 -20
  407. package/dist/RefSubject/RefBigInt.d.ts +181 -16
  408. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  409. package/dist/RefSubject/RefBigInt.js +169 -15
  410. package/dist/RefSubject/RefBoolean.d.ts +181 -16
  411. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  412. package/dist/RefSubject/RefBoolean.js +169 -15
  413. package/dist/RefSubject/RefCause.d.ts +133 -12
  414. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  415. package/dist/RefSubject/RefCause.js +121 -11
  416. package/dist/RefSubject/RefChunk.d.ts +481 -76
  417. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  418. package/dist/RefSubject/RefChunk.js +471 -75
  419. package/dist/RefSubject/RefDateTime.d.ts +133 -12
  420. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  421. package/dist/RefSubject/RefDateTime.js +122 -12
  422. package/dist/RefSubject/RefDuration.d.ts +169 -15
  423. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  424. package/dist/RefSubject/RefDuration.js +157 -14
  425. package/dist/RefSubject/RefGraph.d.ts +349 -35
  426. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  427. package/dist/RefSubject/RefGraph.js +334 -32
  428. package/dist/RefSubject/RefHashMap.d.ts +323 -28
  429. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  430. package/dist/RefSubject/RefHashMap.js +317 -29
  431. package/dist/RefSubject/RefHashRing.d.ts +159 -15
  432. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  433. package/dist/RefSubject/RefHashRing.js +145 -12
  434. package/dist/RefSubject/RefHashSet.d.ts +251 -22
  435. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  436. package/dist/RefSubject/RefHashSet.js +238 -20
  437. package/dist/RefSubject/RefIterable.d.ts +358 -32
  438. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  439. package/dist/RefSubject/RefIterable.js +350 -30
  440. package/dist/RefSubject/RefOption.d.ts +157 -14
  441. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  442. package/dist/RefSubject/RefOption.js +145 -13
  443. package/dist/RefSubject/RefRecord.d.ts +402 -64
  444. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  445. package/dist/RefSubject/RefRecord.js +364 -39
  446. package/dist/RefSubject/RefResult.d.ts +167 -35
  447. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  448. package/dist/RefSubject/RefResult.js +133 -12
  449. package/dist/RefSubject/RefString.d.ts +205 -18
  450. package/dist/RefSubject/RefString.d.ts.map +1 -1
  451. package/dist/RefSubject/RefString.js +193 -17
  452. package/dist/RefSubject/RefStruct.d.ts +169 -14
  453. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  454. package/dist/RefSubject/RefStruct.js +157 -13
  455. package/dist/RefSubject/RefSubject.d.ts +1197 -45
  456. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  457. package/dist/RefSubject/RefSubject.js +935 -88
  458. package/dist/RefSubject/RefTrie.d.ts +323 -37
  459. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  460. package/dist/RefSubject/RefTrie.js +311 -31
  461. package/dist/RefSubject/RefTuple.d.ts +127 -11
  462. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  463. package/dist/RefSubject/RefTuple.js +114 -9
  464. package/dist/RefSubject/index.d.ts +1 -0
  465. package/dist/RefSubject/index.d.ts.map +1 -1
  466. package/dist/RefSubject/index.js +1 -0
  467. package/dist/RefSubject.d.ts +2 -1
  468. package/dist/RefSubject.d.ts.map +1 -1
  469. package/dist/RefSubject.js +2 -1
  470. package/dist/RefTrie.d.ts +2 -0
  471. package/dist/RefTrie.d.ts.map +1 -0
  472. package/dist/RefTrie.js +1 -0
  473. package/dist/RefTuple.d.ts +2 -0
  474. package/dist/RefTuple.d.ts.map +1 -0
  475. package/dist/RefTuple.js +1 -0
  476. package/dist/Sink/Sink.d.ts +396 -23
  477. package/dist/Sink/Sink.d.ts.map +1 -1
  478. package/dist/Sink/Sink.js +55 -7
  479. package/dist/Sink/combinators.d.ts +740 -11
  480. package/dist/Sink/combinators.d.ts.map +1 -1
  481. package/dist/Sink/combinators.js +716 -14
  482. package/dist/Subject/Subject.d.ts +1022 -27
  483. package/dist/Subject/Subject.d.ts.map +1 -1
  484. package/dist/Subject/Subject.js +909 -43
  485. package/dist/Versioned/Versioned.d.ts +447 -27
  486. package/dist/Versioned/Versioned.d.ts.map +1 -1
  487. package/dist/Versioned/Versioned.js +282 -48
  488. package/dist/index.d.ts +22 -3
  489. package/dist/index.d.ts.map +1 -1
  490. package/dist/index.js +22 -3
  491. package/package.json +126 -16
  492. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  493. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  494. package/dist/Fx/constructors/fromYieldable.js +0 -12
  495. package/src/Fx/Fx.ts +0 -164
  496. package/src/Fx/TypeId.ts +0 -25
  497. package/src/Fx/combinators/additive.ts +0 -142
  498. package/src/Fx/combinators/catch.ts +0 -421
  499. package/src/Fx/combinators/causes.ts +0 -23
  500. package/src/Fx/combinators/changesWithEffect.ts +0 -66
  501. package/src/Fx/combinators/compact.ts +0 -15
  502. package/src/Fx/combinators/continueWith.ts +0 -78
  503. package/src/Fx/combinators/dropUntil.ts +0 -47
  504. package/src/Fx/combinators/ensuring.ts +0 -23
  505. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  506. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  507. package/src/Fx/combinators/exhaustMap.ts +0 -36
  508. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  509. package/src/Fx/combinators/exit.ts +0 -15
  510. package/src/Fx/combinators/filter.ts +0 -22
  511. package/src/Fx/combinators/filterEffect.ts +0 -31
  512. package/src/Fx/combinators/filterMap.ts +0 -23
  513. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  514. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  515. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  516. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  517. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  518. package/src/Fx/combinators/flatMap.ts +0 -51
  519. package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
  520. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  521. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  522. package/src/Fx/combinators/flip.ts +0 -14
  523. package/src/Fx/combinators/gen.ts +0 -24
  524. package/src/Fx/combinators/genScoped.ts +0 -24
  525. package/src/Fx/combinators/index.ts +0 -61
  526. package/src/Fx/combinators/keyed.ts +0 -369
  527. package/src/Fx/combinators/loop.ts +0 -27
  528. package/src/Fx/combinators/loopCause.ts +0 -34
  529. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  530. package/src/Fx/combinators/loopEffect.ts +0 -34
  531. package/src/Fx/combinators/map.ts +0 -22
  532. package/src/Fx/combinators/mapBoth.ts +0 -40
  533. package/src/Fx/combinators/mapEffect.ts +0 -32
  534. package/src/Fx/combinators/mapError.ts +0 -28
  535. package/src/Fx/combinators/mergeAll.ts +0 -22
  536. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  537. package/src/Fx/combinators/onError.ts +0 -40
  538. package/src/Fx/combinators/onExit.ts +0 -82
  539. package/src/Fx/combinators/onInterrupt.ts +0 -87
  540. package/src/Fx/combinators/provide.ts +0 -124
  541. package/src/Fx/combinators/result.ts +0 -39
  542. package/src/Fx/combinators/scan.ts +0 -82
  543. package/src/Fx/combinators/skip.ts +0 -41
  544. package/src/Fx/combinators/skipRepeats.ts +0 -15
  545. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  546. package/src/Fx/combinators/skipWhile.ts +0 -100
  547. package/src/Fx/combinators/slice.ts +0 -55
  548. package/src/Fx/combinators/switchMap.ts +0 -55
  549. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  550. package/src/Fx/combinators/take.ts +0 -38
  551. package/src/Fx/combinators/takeUntil.ts +0 -88
  552. package/src/Fx/combinators/takeWhile.ts +0 -47
  553. package/src/Fx/combinators/tapEffect.ts +0 -39
  554. package/src/Fx/combinators/tuple.ts +0 -79
  555. package/src/Fx/combinators/unwrap.ts +0 -21
  556. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  557. package/src/Fx/combinators/when.ts +0 -64
  558. package/src/Fx/combinators/withSpan.ts +0 -24
  559. package/src/Fx/combinators/zip.ts +0 -175
  560. package/src/Fx/constructors/at.ts +0 -23
  561. package/src/Fx/constructors/die.ts +0 -17
  562. package/src/Fx/constructors/empty.ts +0 -10
  563. package/src/Fx/constructors/fail.ts +0 -14
  564. package/src/Fx/constructors/failCause.ts +0 -14
  565. package/src/Fx/constructors/fn.ts +0 -245
  566. package/src/Fx/constructors/fromEffect.ts +0 -24
  567. package/src/Fx/constructors/fromFailures.ts +0 -19
  568. package/src/Fx/constructors/fromIterable.ts +0 -15
  569. package/src/Fx/constructors/fromSchedule.ts +0 -18
  570. package/src/Fx/constructors/fromYieldable.ts +0 -17
  571. package/src/Fx/constructors/index.ts +0 -15
  572. package/src/Fx/constructors/interrupt.ts +0 -13
  573. package/src/Fx/constructors/make.ts +0 -103
  574. package/src/Fx/constructors/periodic.ts +0 -15
  575. package/src/Fx/constructors/succeed.ts +0 -37
  576. package/src/Fx/constructors/suspend.ts +0 -6
  577. package/src/Fx/index.ts +0 -6
  578. package/src/Fx/internal/DeferredRef.ts +0 -87
  579. package/src/Fx/internal/UnionToTuple.ts +0 -12
  580. package/src/Fx/internal/diff.ts +0 -191
  581. package/src/Fx/internal/equivalence.ts +0 -12
  582. package/src/Fx/internal/multicast.ts +0 -51
  583. package/src/Fx/internal/ring-buffer.ts +0 -60
  584. package/src/Fx/internal/scope.ts +0 -58
  585. package/src/Fx/internal/yieldable.ts +0 -31
  586. package/src/Fx/run/collect.ts +0 -79
  587. package/src/Fx/run/first.ts +0 -20
  588. package/src/Fx/run/fork.ts +0 -40
  589. package/src/Fx/run/index.ts +0 -5
  590. package/src/Fx/run/observe.ts +0 -114
  591. package/src/Fx/run/runPromise.ts +0 -32
  592. package/src/Fx/stream.ts +0 -42
  593. package/src/Fx.additive-combinators.test.ts +0 -126
  594. package/src/Fx.catch-additive.test.ts +0 -206
  595. package/src/Fx.catch.test.ts +0 -60
  596. package/src/Fx.dropUntil.test.ts +0 -61
  597. package/src/Fx.fn.test.ts +0 -51
  598. package/src/Fx.lifecycle.test.ts +0 -79
  599. package/src/Fx.mapError-mapBoth.test.ts +0 -101
  600. package/src/Fx.provide-combinators.test.ts +0 -94
  601. package/src/Fx.result-changesWithEffect.test.ts +0 -112
  602. package/src/Fx.scan.test.ts +0 -73
  603. package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
  604. package/src/Fx.test.ts +0 -71
  605. package/src/Fx.ts +0 -1
  606. package/src/Fx.zip-merge-additive.test.ts +0 -171
  607. package/src/Fx.zip.test.ts +0 -133
  608. package/src/Push/Push.ts +0 -1072
  609. package/src/Push/index.ts +0 -1
  610. package/src/Push.additive.test.ts +0 -256
  611. package/src/Push.test.ts +0 -26
  612. package/src/Push.ts +0 -1
  613. package/src/RefSubject/RefArray.ts +0 -512
  614. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  615. package/src/RefSubject/RefBigDecimal.ts +0 -295
  616. package/src/RefSubject/RefBigInt.test.ts +0 -56
  617. package/src/RefSubject/RefBigInt.ts +0 -189
  618. package/src/RefSubject/RefBoolean.test.ts +0 -57
  619. package/src/RefSubject/RefBoolean.ts +0 -185
  620. package/src/RefSubject/RefCause.test.ts +0 -53
  621. package/src/RefSubject/RefCause.ts +0 -146
  622. package/src/RefSubject/RefChunk.ts +0 -510
  623. package/src/RefSubject/RefDateTime.test.ts +0 -43
  624. package/src/RefSubject/RefDateTime.ts +0 -264
  625. package/src/RefSubject/RefDuration.test.ts +0 -49
  626. package/src/RefSubject/RefDuration.ts +0 -188
  627. package/src/RefSubject/RefGraph.ts +0 -650
  628. package/src/RefSubject/RefHashMap.ts +0 -465
  629. package/src/RefSubject/RefHashRing.ts +0 -262
  630. package/src/RefSubject/RefHashSet.ts +0 -308
  631. package/src/RefSubject/RefIterable.ts +0 -445
  632. package/src/RefSubject/RefOption.test.ts +0 -67
  633. package/src/RefSubject/RefOption.ts +0 -193
  634. package/src/RefSubject/RefRecord.ts +0 -612
  635. package/src/RefSubject/RefResult.test.ts +0 -63
  636. package/src/RefSubject/RefResult.ts +0 -209
  637. package/src/RefSubject/RefString.test.ts +0 -61
  638. package/src/RefSubject/RefString.ts +0 -256
  639. package/src/RefSubject/RefStruct.test.ts +0 -60
  640. package/src/RefSubject/RefStruct.ts +0 -253
  641. package/src/RefSubject/RefSubject.ts +0 -2646
  642. package/src/RefSubject/RefTrie.ts +0 -356
  643. package/src/RefSubject/RefTuple.test.ts +0 -60
  644. package/src/RefSubject/RefTuple.ts +0 -231
  645. package/src/RefSubject/index.ts +0 -21
  646. package/src/RefSubject.additive-parity.test.ts +0 -101
  647. package/src/RefSubject.test.ts +0 -65
  648. package/src/RefSubject.ts +0 -1
  649. package/src/Sink/Sink.ts +0 -159
  650. package/src/Sink/combinators.ts +0 -1115
  651. package/src/Sink/index.ts +0 -2
  652. package/src/Sink.combinators.test.ts +0 -88
  653. package/src/Sink.reduce-collect-head-last.test.ts +0 -107
  654. package/src/Sink.ts +0 -1
  655. package/src/Subject/Subject.ts +0 -441
  656. package/src/Subject/index.ts +0 -1
  657. package/src/Subject.test.ts +0 -47
  658. package/src/Subject.ts +0 -1
  659. package/src/Versioned/Versioned.ts +0 -597
  660. package/src/Versioned/index.ts +0 -1
  661. package/src/Versioned.filterMap.test.ts +0 -91
  662. package/src/Versioned.test.ts +0 -23
  663. package/src/Versioned.ts +0 -1
  664. package/src/index.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"fromFailures.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromFailures.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAdE,CAAC,kEAcgD,CAAC"}
1
+ {"version":3,"file":"fromFailures.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromFailures.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY,GAtCE,CAAC,kEAsCgD,CAAC"}
@@ -5,9 +5,33 @@ const fromFailuresCause = (failures) => Array.from(failures).reduce((acc, e) =>
5
5
  /**
6
6
  * Creates an Fx from a collection of failures (errors).
7
7
  *
8
+ * @remarks
9
+ * ## Why
10
+ *
11
+ * Validation and batch operations can preserve every independent typed failure in a
12
+ * single Effect `Cause` rather than choosing one error or emitting partial values.
13
+ * Equal reasons are de-duplicated by `Cause.combine`.
14
+ *
15
+ * ## Ownership and lifetime
16
+ *
17
+ * The iterable is consumed eagerly when `fromFailures` is called. Running the result
18
+ * forwards the combined cause once, emits no values, and acquires no resources. An
19
+ * empty iterable produces the empty Cause.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Effect } from "effect"
24
+ * import { fromFailures, observe } from "@typed/fx/Fx"
25
+ *
26
+ * const failures = fromFailures(["name", "email"])
27
+ * const program = observe(failures, () => Effect.void).pipe(
28
+ * Effect.catch((error) => Effect.succeed(error))
29
+ * )
30
+ * ```
31
+ *
8
32
  * @param failures - An iterable of failures.
9
33
  * @returns An `Fx` that fails with the combined failures.
10
34
  * @since 1.0.0
11
- * @category constructors
35
+ * @category Failure sources
12
36
  */
13
37
  export const fromFailures = /*#__PURE__*/ flow(fromFailuresCause, failCause);
@@ -3,10 +3,32 @@ import type { Fx } from "../Fx.js";
3
3
  * Creates an Fx from an Iterable.
4
4
  * Emits each value from the iterable in order and then completes.
5
5
  *
6
+ * @remarks
7
+ * ## Why
8
+ *
9
+ * Finite synchronous collections can participate in push composition without
10
+ * changing their iteration order or introducing a separate collection protocol.
11
+ *
12
+ * ## Ownership and lifetime
13
+ *
14
+ * Construction stores the iterable but does not iterate it. Each run obtains a fresh
15
+ * iterator, offers values sequentially to the sink, and completes after iteration.
16
+ * Interruption stops further iteration. No child fiber or buffer is created.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { Effect } from "effect"
21
+ * import { collectAll, fromIterable } from "@typed/fx/Fx"
22
+ *
23
+ * const program = collectAll(fromIterable(new Set([1, 2, 3]))).pipe(
24
+ * Effect.map((values) => values.join(","))
25
+ * )
26
+ * ```
27
+ *
6
28
  * @param iterable - The iterable to emit values from.
7
29
  * @returns An `Fx` that emits the values from the iterable.
8
30
  * @since 1.0.0
9
- * @category constructors
31
+ * @category Value sources
10
32
  */
11
33
  export declare const fromIterable: <A>(iterable: Iterable<A>) => Fx<A>;
12
34
  //# sourceMappingURL=fromIterable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromIterable.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromIterable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,EAAE,CAAC,CAAC,CACa,CAAC"}
1
+ {"version":3,"file":"fromIterable.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromIterable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAG,EAAE,CAAC,CAAC,CACa,CAAC"}
@@ -4,9 +4,31 @@ import { make } from "./make.js";
4
4
  * Creates an Fx from an Iterable.
5
5
  * Emits each value from the iterable in order and then completes.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Finite synchronous collections can participate in push composition without
11
+ * changing their iteration order or introducing a separate collection protocol.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * Construction stores the iterable but does not iterate it. Each run obtains a fresh
16
+ * iterator, offers values sequentially to the sink, and completes after iteration.
17
+ * Interruption stops further iteration. No child fiber or buffer is created.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { Effect } from "effect"
22
+ * import { collectAll, fromIterable } from "@typed/fx/Fx"
23
+ *
24
+ * const program = collectAll(fromIterable(new Set([1, 2, 3]))).pipe(
25
+ * Effect.map((values) => values.join(","))
26
+ * )
27
+ * ```
28
+ *
7
29
  * @param iterable - The iterable to emit values from.
8
30
  * @returns An `Fx` that emits the values from the iterable.
9
31
  * @since 1.0.0
10
- * @category constructors
32
+ * @category Value sources
11
33
  */
12
34
  export const fromIterable = (iterable) => make((sink) => forEach(iterable, sink.onSuccess, { discard: true }));
@@ -4,10 +4,35 @@ import type { Fx } from "../Fx.js";
4
4
  * Creates an Fx that emits values according to a Schedule.
5
5
  * The Fx emits `void` each time the schedule fires.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Effect [Schedule](https://effect.website/docs/v4/api/effect/Schedule) values already
11
+ * encode recurrence, delay, and typed schedule failures. `fromSchedule` exposes
12
+ * those decisions as producer-driven ticks without another timing model. The
13
+ * schedule governs all ticks: `Schedule.recurs(2)` emits twice here. In contrast,
14
+ * `repeat(source, Schedule.recurs(2))` runs an initial source plus two repeats.
15
+ *
16
+ * ## Ownership and lifetime
17
+ *
18
+ * Construction starts no clock. Running the `Fx` repeatedly invokes the sink under
19
+ * the schedule and completes when the schedule completes. Schedule failures are
20
+ * forwarded as causes; interruption cancels waiting and stops further ticks. The
21
+ * returned `Fx` retains the schedule's `Error` and `Env` channels.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { Schedule } from "effect"
26
+ * import { collectAll, fromSchedule } from "@typed/fx/Fx"
27
+ *
28
+ * const twoTicks = fromSchedule(Schedule.recurs(2))
29
+ * const program = collectAll(twoTicks) // [undefined, undefined]
30
+ * ```
31
+ *
7
32
  * @param schedule - The schedule to follow.
8
33
  * @returns An `Fx` that emits periodically according to the schedule.
9
34
  * @since 1.0.0
10
- * @category constructors
35
+ * @category Time and rate
11
36
  */
12
37
  export declare const fromSchedule: <Error, Env>(schedule: Schedule<unknown, unknown, Error, Env>) => Fx<void, Error, Env>;
13
38
  //# sourceMappingURL=fromSchedule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromSchedule.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromSchedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,EAAE,GAAG,EACrC,UAAU,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAC/C,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CACuE,CAAC"}
1
+ {"version":3,"file":"fromSchedule.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromSchedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,EAAE,GAAG,YAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAC/C,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAGnB,CAAC"}
@@ -1,13 +1,38 @@
1
- import { schedule as schedule_Effect } from "effect/Effect";
1
+ import { catchCause, schedule as schedule_Effect } from "effect/Effect";
2
2
  import { make } from "./make.js";
3
3
  /**
4
4
  * Creates an Fx that emits values according to a Schedule.
5
5
  * The Fx emits `void` each time the schedule fires.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Effect [Schedule](https://effect.website/docs/v4/api/effect/Schedule) values already
11
+ * encode recurrence, delay, and typed schedule failures. `fromSchedule` exposes
12
+ * those decisions as producer-driven ticks without another timing model. The
13
+ * schedule governs all ticks: `Schedule.recurs(2)` emits twice here. In contrast,
14
+ * `repeat(source, Schedule.recurs(2))` runs an initial source plus two repeats.
15
+ *
16
+ * ## Ownership and lifetime
17
+ *
18
+ * Construction starts no clock. Running the `Fx` repeatedly invokes the sink under
19
+ * the schedule and completes when the schedule completes. Schedule failures are
20
+ * forwarded as causes; interruption cancels waiting and stops further ticks. The
21
+ * returned `Fx` retains the schedule's `Error` and `Env` channels.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { Schedule } from "effect"
26
+ * import { collectAll, fromSchedule } from "@typed/fx/Fx"
27
+ *
28
+ * const twoTicks = fromSchedule(Schedule.recurs(2))
29
+ * const program = collectAll(twoTicks) // [undefined, undefined]
30
+ * ```
31
+ *
7
32
  * @param schedule - The schedule to follow.
8
33
  * @returns An `Fx` that emits periodically according to the schedule.
9
34
  * @since 1.0.0
10
- * @category constructors
35
+ * @category Time and rate
11
36
  */
12
37
  export const fromSchedule = (schedule) =>
13
- /*#__PURE__*/ make((sink) => schedule_Effect(sink.onSuccess(), schedule));
38
+ /*#__PURE__*/ make((sink) => catchCause(schedule_Effect(sink.onSuccess(), schedule), sink.onFailure));
@@ -8,9 +8,10 @@ export * from "./fromEffect.js";
8
8
  export * from "./fromFailures.js";
9
9
  export * from "./fromIterable.js";
10
10
  export * from "./fromSchedule.js";
11
- export * from "./fromYieldable.js";
12
11
  export * from "./interrupt.js";
13
12
  export * from "./make.js";
14
13
  export * from "./periodic.js";
15
14
  export * from "./succeed.js";
15
+ export * from "./suspend.js";
16
+ export * from "./sync.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -8,8 +8,9 @@ export * from "./fromEffect.js";
8
8
  export * from "./fromFailures.js";
9
9
  export * from "./fromIterable.js";
10
10
  export * from "./fromSchedule.js";
11
- export * from "./fromYieldable.js";
12
11
  export * from "./interrupt.js";
13
12
  export * from "./make.js";
14
13
  export * from "./periodic.js";
15
14
  export * from "./succeed.js";
15
+ export * from "./suspend.js";
16
+ export * from "./sync.js";
@@ -1,10 +1,30 @@
1
1
  /**
2
2
  * Creates an Fx that immediately interrupts.
3
3
  *
4
- * @param id - The FiberId responsible for the interruption.
4
+ * @remarks
5
+ * ## Why
6
+ *
7
+ * A known Effect interruption cause can be represented as an `Fx` branch without
8
+ * disguising it as a typed failure or defect.
9
+ *
10
+ * ## Ownership and lifetime
11
+ *
12
+ * Construction is inert. Each run forwards one interruption cause carrying `id` to
13
+ * the sink, emits no values, and acquires no resources.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { Effect } from "effect"
18
+ * import { interrupt, observe } from "@typed/fx/Fx"
19
+ *
20
+ * const source = interrupt(1)
21
+ * const program = observe(source, () => Effect.void)
22
+ * ```
23
+ *
24
+ * @param id - Optional numeric fiber identifier responsible for the interruption.
5
25
  * @returns An `Fx` that is interrupted.
6
26
  * @since 1.0.0
7
- * @category constructors
27
+ * @category Failure sources
8
28
  */
9
29
  export declare const interrupt: (fiberId?: number | undefined) => import("../Fx.js").Fx<never, never, never>;
10
30
  //# sourceMappingURL=interrupt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/interrupt.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,8EAAiD,CAAC"}
1
+ {"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/interrupt.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,SAAS,8EAAiD,CAAC"}
@@ -4,9 +4,29 @@ import { failCause } from "./failCause.js";
4
4
  /**
5
5
  * Creates an Fx that immediately interrupts.
6
6
  *
7
- * @param id - The FiberId responsible for the interruption.
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * A known Effect interruption cause can be represented as an `Fx` branch without
11
+ * disguising it as a typed failure or defect.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * Construction is inert. Each run forwards one interruption cause carrying `id` to
16
+ * the sink, emits no values, and acquires no resources.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { Effect } from "effect"
21
+ * import { interrupt, observe } from "@typed/fx/Fx"
22
+ *
23
+ * const source = interrupt(1)
24
+ * const program = observe(source, () => Effect.void)
25
+ * ```
26
+ *
27
+ * @param id - Optional numeric fiber identifier responsible for the interruption.
8
28
  * @returns An `Fx` that is interrupted.
9
29
  * @since 1.0.0
10
- * @category constructors
30
+ * @category Failure sources
11
31
  */
12
32
  export const interrupt = /*#__PURE__*/ flow(Cause.interrupt, failCause);
@@ -9,32 +9,179 @@ import type { Fx } from "../Fx.js";
9
9
  * This is the lowest-level constructor for Fx, giving you full control over
10
10
  * the stream's behavior.
11
11
  *
12
+ * @remarks
13
+ * ## Why
14
+ *
15
+ * `make` is the protocol boundary for custom producers. It exposes the real `Sink`
16
+ * operation so libraries can define cardinality, ordering, concurrency, causes, and
17
+ * services without an opinionated source wrapper.
18
+ *
19
+ * ## Ownership and lifetime
20
+ *
21
+ * `make` stores the callback without invoking it. Calling `fx.run(sink)` asks the
22
+ * callback to construct its Effect; executing that Effect performs the subscription.
23
+ * Keep acquisition, publication, and cleanup inside the returned Effect or a required
24
+ * `Scope`, rather than performing side effects while constructing it. The returned
25
+ * Effect has no typed failure channel because producer failures are delivered through
26
+ * `sink.onFailure`; defects and interruption can still affect the run.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * import { Effect } from "effect"
31
+ * import { collectAll, make } from "@typed/fx/Fx"
32
+ *
33
+ * const pair = make<number>((sink) =>
34
+ * Effect.andThen(sink.onSuccess(1), sink.onSuccess(2))
35
+ * )
36
+ * const program = collectAll(pair)
37
+ * ```
38
+ *
12
39
  * @param run - A function that takes a `Sink` and returns an `Effect` that drives the stream.
13
40
  * @returns An `Fx` instance.
14
41
  * @since 1.0.0
15
- * @category constructors
42
+ * @category Callback sources
16
43
  */
17
44
  export declare const make: <A, E = never, R = never>(run: <RSink = never>(sink: Sink<A, E, RSink>) => Effect.Effect<unknown, never, R | RSink>) => Fx<A, E, R>;
18
45
  /**
19
- * Interface for emitting values, errors, or completion signals in a callback-based Fx.
46
+ * Operations supplied to a callback producer for emitting values or ending its run.
47
+ *
48
+ * @remarks
49
+ * ## Why
50
+ *
51
+ * Callback sources need an explicit bridge into Sink operations while retaining the
52
+ * distinction between typed failures, defects, interruption causes, and completion.
53
+ *
54
+ * ## Ownership and lifetime
55
+ *
56
+ * An `Emit` is valid only for the active callback run. Every operation forks the
57
+ * corresponding sink Effect in that run's scope and returns its `Fiber`; callers may
58
+ * inspect or interrupt that delivery. Retaining it after cleanup is unsupported.
59
+ *
20
60
  * @since 1.0.0
21
- * @category models
61
+ * @category Callback protocol
22
62
  */
23
63
  export type Emit<A, E = never> = {
64
+ /**
65
+ * Starts delivery of one value and returns the delivery fiber.
66
+ *
67
+ * @remarks
68
+ * ## Why
69
+ *
70
+ * Callback producers push values when they arrive instead of waiting to be pulled.
71
+ *
72
+ * ## Ownership and lifetime
73
+ *
74
+ * The active callback scope owns the returned fiber; deliveries can overlap when
75
+ * `succeed` is called again before an earlier sink Effect completes.
76
+ *
77
+ * @since 1.0.0
78
+ * @category emitters
79
+ */
24
80
  succeed: (value: A) => Fiber<unknown, never>;
81
+ /**
82
+ * Starts delivery of a complete Effect `Cause` and returns the delivery fiber.
83
+ *
84
+ * @remarks
85
+ * ## Why
86
+ *
87
+ * Typed failures, defects, and interruption remain structurally distinct.
88
+ *
89
+ * ## Ownership and lifetime
90
+ *
91
+ * The active callback scope owns the returned fiber. This operation does not
92
+ * automatically call `done`; terminal behavior is determined by the sink.
93
+ *
94
+ * @since 1.0.0
95
+ * @category emitters
96
+ */
25
97
  failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;
98
+ /**
99
+ * Starts delivery of one typed failure and returns the delivery fiber.
100
+ *
101
+ * @remarks
102
+ * ## Why
103
+ *
104
+ * Expected callback errors enter `E` without being converted to defects.
105
+ *
106
+ * ## Ownership and lifetime
107
+ *
108
+ * The active callback scope owns the returned fiber. The error is wrapped with
109
+ * `Cause.fail` and forwarded to the sink.
110
+ *
111
+ * @since 1.0.0
112
+ * @category emitters
113
+ */
26
114
  fail: (error: E) => Fiber<unknown, never>;
115
+ /**
116
+ * Starts delivery of one unexpected defect and returns the delivery fiber.
117
+ *
118
+ * @remarks
119
+ * ## Why
120
+ *
121
+ * Programming defects remain outside the typed `E` channel.
122
+ *
123
+ * ## Ownership and lifetime
124
+ *
125
+ * The active callback scope owns the returned fiber. The value is wrapped with
126
+ * `Cause.die` and forwarded to the sink.
127
+ *
128
+ * @since 1.0.0
129
+ * @category emitters
130
+ */
27
131
  die: (error: unknown) => Fiber<unknown, never>;
132
+ /**
133
+ * Requests early completion and returns the sink's early-exit fiber.
134
+ *
135
+ * @remarks
136
+ * ## Why
137
+ *
138
+ * Finite callback APIs need an explicit completion signal distinct from failure.
139
+ *
140
+ * ## Ownership and lifetime
141
+ *
142
+ * The active callback scope owns the returned fiber. Early exit ends the run and
143
+ * causes callback cleanup registered by `callback` to execute.
144
+ *
145
+ * @since 1.0.0
146
+ * @category emitters
147
+ */
28
148
  done: () => Fiber<unknown, never>;
29
149
  };
30
150
  /**
31
151
  * Creates an Fx from a callback-based source.
32
152
  *
153
+ * @remarks
154
+ * ## Why
155
+ *
156
+ * DOM events, sockets, observers, and foreign libraries decide when values exist.
157
+ * `callback` turns that push boundary into `Fx` while keeping failure and cleanup
158
+ * inside Effect's structured lifetime.
159
+ *
160
+ * ## Ownership and lifetime
161
+ *
162
+ * Registration is lazy: `run` is called once for each `Fx` run. The run creates a
163
+ * child scope and stays active until `emit.done()`, sink early exit, or interruption.
164
+ * If `run` returns an Effect, it is registered as the scope finalizer. Each emit
165
+ * operation starts its sink handler in a fiber, so handler completion can overlap;
166
+ * use the returned fibers or a serialized source when ordering of effects matters.
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * import { Effect } from "effect"
171
+ * import { callback, collectUpTo } from "@typed/fx/Fx"
172
+ *
173
+ * const messages = callback<string>((emit) => {
174
+ * const timer = setInterval(() => emit.succeed("tick"), 10)
175
+ * return Effect.sync(() => clearInterval(timer))
176
+ * })
177
+ * const program = collectUpTo(messages, 2)
178
+ * ```
179
+ *
33
180
  * @param run - A function that receives an `Emit` object to push values/errors.
34
181
  * It can return a cleanup effect.
35
182
  * @returns An `Fx` adapted from the callback.
36
183
  * @since 1.0.0
37
- * @category constructors
184
+ * @category Callback sources
38
185
  */
39
186
  export declare const callback: <A, E = never, R = never>(run: (emit: Emit<A, E>) => void | Effect.Effect<unknown, never, R>) => Fx<A, E, R>;
40
187
  //# sourceMappingURL=make.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAsBnC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAC1C,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KACxF,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAA2B,CAAC;AAEzC;;;;GAIG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAC9C,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KACjE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAiCV,CAAC"}
1
+ {"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAsBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,OACrC,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KACxF,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAA2B,CAAC;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C;;;;;;;;;;;;;;;OAeG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D;;;;;;;;;;;;;;;OAeG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C;;;;;;;;;;;;;;;OAeG;IACH,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C;;;;;;;;;;;;;;;OAeG;IACH,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,OACzC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KACjE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CA6BV,CAAC"}
@@ -26,27 +26,80 @@ class Make {
26
26
  * This is the lowest-level constructor for Fx, giving you full control over
27
27
  * the stream's behavior.
28
28
  *
29
+ * @remarks
30
+ * ## Why
31
+ *
32
+ * `make` is the protocol boundary for custom producers. It exposes the real `Sink`
33
+ * operation so libraries can define cardinality, ordering, concurrency, causes, and
34
+ * services without an opinionated source wrapper.
35
+ *
36
+ * ## Ownership and lifetime
37
+ *
38
+ * `make` stores the callback without invoking it. Calling `fx.run(sink)` asks the
39
+ * callback to construct its Effect; executing that Effect performs the subscription.
40
+ * Keep acquisition, publication, and cleanup inside the returned Effect or a required
41
+ * `Scope`, rather than performing side effects while constructing it. The returned
42
+ * Effect has no typed failure channel because producer failures are delivered through
43
+ * `sink.onFailure`; defects and interruption can still affect the run.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { Effect } from "effect"
48
+ * import { collectAll, make } from "@typed/fx/Fx"
49
+ *
50
+ * const pair = make<number>((sink) =>
51
+ * Effect.andThen(sink.onSuccess(1), sink.onSuccess(2))
52
+ * )
53
+ * const program = collectAll(pair)
54
+ * ```
55
+ *
29
56
  * @param run - A function that takes a `Sink` and returns an `Effect` that drives the stream.
30
57
  * @returns An `Fx` instance.
31
58
  * @since 1.0.0
32
- * @category constructors
59
+ * @category Callback sources
33
60
  */
34
61
  export const make = (run) => new Make(run);
35
62
  /**
36
63
  * Creates an Fx from a callback-based source.
37
64
  *
65
+ * @remarks
66
+ * ## Why
67
+ *
68
+ * DOM events, sockets, observers, and foreign libraries decide when values exist.
69
+ * `callback` turns that push boundary into `Fx` while keeping failure and cleanup
70
+ * inside Effect's structured lifetime.
71
+ *
72
+ * ## Ownership and lifetime
73
+ *
74
+ * Registration is lazy: `run` is called once for each `Fx` run. The run creates a
75
+ * child scope and stays active until `emit.done()`, sink early exit, or interruption.
76
+ * If `run` returns an Effect, it is registered as the scope finalizer. Each emit
77
+ * operation starts its sink handler in a fiber, so handler completion can overlap;
78
+ * use the returned fibers or a serialized source when ordering of effects matters.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import { Effect } from "effect"
83
+ * import { callback, collectUpTo } from "@typed/fx/Fx"
84
+ *
85
+ * const messages = callback<string>((emit) => {
86
+ * const timer = setInterval(() => emit.succeed("tick"), 10)
87
+ * return Effect.sync(() => clearInterval(timer))
88
+ * })
89
+ * const program = collectUpTo(messages, 2)
90
+ * ```
91
+ *
38
92
  * @param run - A function that receives an `Emit` object to push values/errors.
39
93
  * It can return a cleanup effect.
40
94
  * @returns An `Fx` adapted from the callback.
41
95
  * @since 1.0.0
42
- * @category constructors
96
+ * @category Callback sources
43
97
  */
44
98
  export const callback = (run) => make((sink) => Effect.acquireUseRelease(Scope.make(), (scope) => withEarlyExit(sink, Effect.fn(function* (sink) {
45
- const services = yield* Effect.services();
99
+ const services = yield* Effect.context();
46
100
  const runFork = Effect.runForkWith(services);
47
- const controller = new AbortController();
48
- yield* Scope.addFinalizer(scope, Effect.sync(() => controller.abort()));
49
- const runEffect = (effect) => runFork(effect, { signal: controller.signal });
101
+ const signal = yield* Scope.provide(Effect.abortSignal, scope);
102
+ const runEffect = (effect) => runFork(effect, { signal });
50
103
  const emit = {
51
104
  succeed: (value) => runEffect(sink.onSuccess(value)),
52
105
  failCause: (cause) => runEffect(sink.onFailure(cause)),
@@ -56,6 +109,6 @@ export const callback = (run) => make((sink) => Effect.acquireUseRelease(Scope.m
56
109
  };
57
110
  const effect = run(emit);
58
111
  if (effect)
59
- yield* Scope.addFinalizer(scope, Effect.provideServices(effect, services));
112
+ yield* Scope.addFinalizer(scope, Effect.provideContext(effect, services));
60
113
  return yield* Effect.never;
61
114
  })), Scope.close));
@@ -3,10 +3,39 @@ import type { Fx } from "../Fx.js";
3
3
  /**
4
4
  * Creates an Fx that emits a `void` value periodically.
5
5
  *
6
+ * @remarks
7
+ * ## Why
8
+ *
9
+ * Common interval work can use Effect's
10
+ * [Schedule](https://effect.website/docs/v4/api/effect/Schedule) clock and
11
+ * interruption semantics rather than an unmanaged platform timer.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * Construction starts no clock. A run waits `period` before the first emission and
16
+ * again between every subsequent emission. The run fiber owns the schedule; no ticks
17
+ * continue after interruption.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { Effect, Fiber } from "effect"
22
+ * import * as TestClock from "effect/testing/TestClock"
23
+ * import { collectUpTo, periodic } from "@typed/fx/Fx"
24
+ *
25
+ * const program = Effect.gen(function* () {
26
+ * const fiber = yield* Effect.forkChild(collectUpTo(periodic("1 second"), 1))
27
+ * yield* TestClock.adjust("999 millis")
28
+ * const beforeFirstPeriod = fiber.pollUnsafe()
29
+ * yield* TestClock.adjust("1 millis")
30
+ * const firstTick = yield* Fiber.join(fiber)
31
+ * return { beforeFirstPeriod, firstTick }
32
+ * })
33
+ * ```
34
+ *
6
35
  * @param period - The duration between emissions.
7
36
  * @returns An `Fx` that emits repeatedly.
8
37
  * @since 1.0.0
9
- * @category constructors
38
+ * @category Time and rate
10
39
  */
11
40
  export declare const periodic: (period: Duration.Input) => Fx<void>;
12
41
  //# sourceMappingURL=periodic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/periodic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,QAAQ,CAAC,KAAK,KAAG,EAAE,CAAC,IAAI,CACb,CAAC"}
1
+ {"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/periodic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,QAAQ,WAAY,QAAQ,CAAC,KAAK,KAAG,EAAE,CAAC,IAAI,CACb,CAAC"}