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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -21
  3. package/dist/Fx/Fx.d.ts +371 -19
  4. package/dist/Fx/Fx.d.ts.map +1 -1
  5. package/dist/Fx/Fx.js +37 -6
  6. package/dist/Fx/TypeId.d.ts +52 -6
  7. package/dist/Fx/TypeId.d.ts.map +1 -1
  8. package/dist/Fx/TypeId.js +41 -4
  9. package/dist/Fx/combinators/additive.d.ts +245 -0
  10. package/dist/Fx/combinators/additive.d.ts.map +1 -0
  11. package/dist/Fx/combinators/additive.js +243 -0
  12. package/dist/Fx/combinators/catch.d.ts +246 -12
  13. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  14. package/dist/Fx/combinators/catch.js +236 -12
  15. package/dist/Fx/combinators/causes.d.ts +25 -2
  16. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  17. package/dist/Fx/combinators/causes.js +25 -2
  18. package/dist/Fx/combinators/changesWithEffect.d.ts +40 -0
  19. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -0
  20. package/dist/Fx/combinators/changesWithEffect.js +48 -0
  21. package/dist/Fx/combinators/compact.d.ts +18 -1
  22. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  23. package/dist/Fx/combinators/compact.js +18 -1
  24. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  25. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  26. package/dist/Fx/combinators/concatMap.js +86 -0
  27. package/dist/Fx/combinators/continueWith.d.ts +113 -5
  28. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  29. package/dist/Fx/combinators/continueWith.js +113 -5
  30. package/dist/Fx/combinators/debounce.d.ts +34 -0
  31. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  32. package/dist/Fx/combinators/debounce.js +35 -0
  33. package/dist/Fx/combinators/delay.d.ts +36 -0
  34. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  35. package/dist/Fx/combinators/delay.js +33 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts +71 -0
  37. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -0
  38. package/dist/Fx/combinators/dropUntil.js +65 -0
  39. package/dist/Fx/combinators/during.d.ts +38 -0
  40. package/dist/Fx/combinators/during.d.ts.map +1 -0
  41. package/dist/Fx/combinators/during.js +85 -0
  42. package/dist/Fx/combinators/ensuring.d.ts +34 -4
  43. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  44. package/dist/Fx/combinators/ensuring.js +34 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
  46. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  47. package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  50. package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
  51. package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
  52. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  53. package/dist/Fx/combinators/exhaustMap.js +38 -1
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  56. package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
  57. package/dist/Fx/combinators/exit.d.ts +23 -2
  58. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  59. package/dist/Fx/combinators/exit.js +23 -2
  60. package/dist/Fx/combinators/filter.d.ts +17 -1
  61. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  62. package/dist/Fx/combinators/filter.js +17 -1
  63. package/dist/Fx/combinators/filterEffect.d.ts +22 -1
  64. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  65. package/dist/Fx/combinators/filterEffect.js +22 -1
  66. package/dist/Fx/combinators/filterMap.d.ts +20 -1
  67. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  68. package/dist/Fx/combinators/filterMap.js +20 -1
  69. package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
  70. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  71. package/dist/Fx/combinators/filterMapEffect.js +21 -1
  72. package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
  73. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  74. package/dist/Fx/combinators/filterMapLoop.js +20 -1
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  77. package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  80. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  83. package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
  84. package/dist/Fx/combinators/flatMap.d.ts +50 -5
  85. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  86. package/dist/Fx/combinators/flatMap.js +36 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
  88. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  89. package/dist/Fx/combinators/flatMapConcurrently.js +51 -4
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  92. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
  94. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  95. package/dist/Fx/combinators/flatMapEffect.js +32 -2
  96. package/dist/Fx/combinators/flip.d.ts +34 -2
  97. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  98. package/dist/Fx/combinators/flip.js +34 -2
  99. package/dist/Fx/combinators/gen.d.ts +29 -10
  100. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  101. package/dist/Fx/combinators/gen.js +28 -4
  102. package/dist/Fx/combinators/genScoped.d.ts +33 -10
  103. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  104. package/dist/Fx/combinators/genScoped.js +31 -3
  105. package/dist/Fx/combinators/grouped.d.ts +89 -0
  106. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  107. package/dist/Fx/combinators/grouped.js +146 -0
  108. package/dist/Fx/combinators/index.d.ts +45 -0
  109. package/dist/Fx/combinators/index.d.ts.map +1 -1
  110. package/dist/Fx/combinators/index.js +45 -0
  111. package/dist/Fx/combinators/keyed.d.ts +124 -10
  112. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  113. package/dist/Fx/combinators/keyed.js +69 -11
  114. package/dist/Fx/combinators/loop.d.ts +17 -1
  115. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  116. package/dist/Fx/combinators/loop.js +17 -1
  117. package/dist/Fx/combinators/loopCause.d.ts +18 -1
  118. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  119. package/dist/Fx/combinators/loopCause.js +18 -1
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
  121. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  122. package/dist/Fx/combinators/loopCauseEffect.js +19 -1
  123. package/dist/Fx/combinators/loopEffect.d.ts +24 -1
  124. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  125. package/dist/Fx/combinators/loopEffect.js +24 -1
  126. package/dist/Fx/combinators/map.d.ts +46 -1
  127. package/dist/Fx/combinators/map.d.ts.map +1 -1
  128. package/dist/Fx/combinators/map.js +43 -1
  129. package/dist/Fx/combinators/mapBoth.d.ts +40 -0
  130. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -0
  131. package/dist/Fx/combinators/mapBoth.js +33 -0
  132. package/dist/Fx/combinators/mapEffect.d.ts +25 -1
  133. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  134. package/dist/Fx/combinators/mapEffect.js +25 -1
  135. package/dist/Fx/combinators/mapError.d.ts +33 -0
  136. package/dist/Fx/combinators/mapError.d.ts.map +1 -0
  137. package/dist/Fx/combinators/mapError.js +32 -0
  138. package/dist/Fx/combinators/mergeAll.d.ts +35 -1
  139. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  140. package/dist/Fx/combinators/mergeAll.js +35 -1
  141. package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
  142. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  143. package/dist/Fx/combinators/mergeOrdered.js +68 -14
  144. package/dist/Fx/combinators/onError.d.ts +34 -4
  145. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  146. package/dist/Fx/combinators/onError.js +34 -4
  147. package/dist/Fx/combinators/onExit.d.ts +29 -3
  148. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  149. package/dist/Fx/combinators/onExit.js +29 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
  151. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  152. package/dist/Fx/combinators/onInterrupt.js +49 -4
  153. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  154. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  155. package/dist/Fx/combinators/pairwise.js +31 -0
  156. package/dist/Fx/combinators/provide.d.ts +162 -8
  157. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  158. package/dist/Fx/combinators/provide.js +154 -6
  159. package/dist/Fx/combinators/race.d.ts +92 -0
  160. package/dist/Fx/combinators/race.d.ts.map +1 -0
  161. package/dist/Fx/combinators/race.js +149 -0
  162. package/dist/Fx/combinators/repeat.d.ts +41 -0
  163. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  164. package/dist/Fx/combinators/repeat.js +57 -0
  165. package/dist/Fx/combinators/result.d.ts +45 -0
  166. package/dist/Fx/combinators/result.d.ts.map +1 -0
  167. package/dist/Fx/combinators/result.js +46 -0
  168. package/dist/Fx/combinators/retry.d.ts +53 -0
  169. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  170. package/dist/Fx/combinators/retry.js +71 -0
  171. package/dist/Fx/combinators/sample.d.ts +31 -0
  172. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  173. package/dist/Fx/combinators/sample.js +42 -0
  174. package/dist/Fx/combinators/scan.d.ts +72 -0
  175. package/dist/Fx/combinators/scan.d.ts.map +1 -0
  176. package/dist/Fx/combinators/scan.js +77 -0
  177. package/dist/Fx/combinators/since.d.ts +30 -0
  178. package/dist/Fx/combinators/since.d.ts.map +1 -0
  179. package/dist/Fx/combinators/since.js +39 -0
  180. package/dist/Fx/combinators/skip.d.ts +45 -1
  181. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  182. package/dist/Fx/combinators/skip.js +43 -1
  183. package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
  184. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  185. package/dist/Fx/combinators/skipRepeats.js +17 -1
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  188. package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
  189. package/dist/Fx/combinators/skipWhile.d.ts +117 -0
  190. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -0
  191. package/dist/Fx/combinators/skipWhile.js +134 -0
  192. package/dist/Fx/combinators/slice.d.ts +97 -2
  193. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  194. package/dist/Fx/combinators/slice.js +45 -1
  195. package/dist/Fx/combinators/switchMap.d.ts +39 -1
  196. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  197. package/dist/Fx/combinators/switchMap.js +43 -5
  198. package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
  199. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  200. package/dist/Fx/combinators/switchMapEffect.js +38 -1
  201. package/dist/Fx/combinators/take.d.ts +46 -1
  202. package/dist/Fx/combinators/take.d.ts.map +1 -1
  203. package/dist/Fx/combinators/take.js +44 -1
  204. package/dist/Fx/combinators/takeUntil.d.ts +62 -2
  205. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  206. package/dist/Fx/combinators/takeUntil.js +62 -2
  207. package/dist/Fx/combinators/takeWhile.d.ts +60 -0
  208. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -0
  209. package/dist/Fx/combinators/takeWhile.js +54 -0
  210. package/dist/Fx/combinators/tapEffect.d.ts +17 -1
  211. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  212. package/dist/Fx/combinators/tapEffect.js +17 -1
  213. package/dist/Fx/combinators/throttle.d.ts +79 -0
  214. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  215. package/dist/Fx/combinators/throttle.js +99 -0
  216. package/dist/Fx/combinators/timeout.d.ts +76 -0
  217. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  218. package/dist/Fx/combinators/timeout.js +110 -0
  219. package/dist/Fx/combinators/tuple.d.ts +32 -2
  220. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  221. package/dist/Fx/combinators/tuple.js +36 -5
  222. package/dist/Fx/combinators/until.d.ts +27 -0
  223. package/dist/Fx/combinators/until.d.ts.map +1 -0
  224. package/dist/Fx/combinators/until.js +56 -0
  225. package/dist/Fx/combinators/unwrap.d.ts +31 -2
  226. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  227. package/dist/Fx/combinators/unwrap.js +30 -1
  228. package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
  229. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  230. package/dist/Fx/combinators/unwrapScoped.js +34 -1
  231. package/dist/Fx/combinators/when.d.ts +37 -2
  232. package/dist/Fx/combinators/when.d.ts.map +1 -1
  233. package/dist/Fx/combinators/when.js +38 -3
  234. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  235. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  236. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  237. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  238. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  239. package/dist/Fx/combinators/withSpan.js +34 -3
  240. package/dist/Fx/combinators/zip.d.ts +135 -0
  241. package/dist/Fx/combinators/zip.d.ts.map +1 -0
  242. package/dist/Fx/combinators/zip.js +160 -0
  243. package/dist/Fx/constructors/at.d.ts +23 -3
  244. package/dist/Fx/constructors/at.d.ts.map +1 -1
  245. package/dist/Fx/constructors/at.js +21 -1
  246. package/dist/Fx/constructors/die.d.ts +22 -1
  247. package/dist/Fx/constructors/die.d.ts.map +1 -1
  248. package/dist/Fx/constructors/die.js +22 -1
  249. package/dist/Fx/constructors/empty.d.ts +19 -1
  250. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  251. package/dist/Fx/constructors/empty.js +19 -1
  252. package/dist/Fx/constructors/fail.d.ts +22 -1
  253. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  254. package/dist/Fx/constructors/fail.js +22 -1
  255. package/dist/Fx/constructors/failCause.d.ts +23 -1
  256. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  257. package/dist/Fx/constructors/failCause.js +23 -1
  258. package/dist/Fx/constructors/fn.d.ts +116 -16
  259. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  260. package/dist/Fx/constructors/fn.js +36 -0
  261. package/dist/Fx/constructors/fromEffect.d.ts +45 -3
  262. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  263. package/dist/Fx/constructors/fromEffect.js +45 -3
  264. package/dist/Fx/constructors/fromFailures.d.ts +25 -1
  265. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  266. package/dist/Fx/constructors/fromFailures.js +25 -1
  267. package/dist/Fx/constructors/fromIterable.d.ts +23 -1
  268. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  269. package/dist/Fx/constructors/fromIterable.js +23 -1
  270. package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
  271. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  272. package/dist/Fx/constructors/fromSchedule.js +28 -3
  273. package/dist/Fx/constructors/index.d.ts +2 -1
  274. package/dist/Fx/constructors/index.d.ts.map +1 -1
  275. package/dist/Fx/constructors/index.js +2 -1
  276. package/dist/Fx/constructors/interrupt.d.ts +22 -2
  277. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  278. package/dist/Fx/constructors/interrupt.js +22 -2
  279. package/dist/Fx/constructors/make.d.ts +151 -4
  280. package/dist/Fx/constructors/make.d.ts.map +1 -1
  281. package/dist/Fx/constructors/make.js +60 -7
  282. package/dist/Fx/constructors/periodic.d.ts +31 -2
  283. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  284. package/dist/Fx/constructors/periodic.js +30 -1
  285. package/dist/Fx/constructors/succeed.d.ts +79 -7
  286. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  287. package/dist/Fx/constructors/succeed.js +79 -7
  288. package/dist/Fx/constructors/suspend.d.ts +28 -0
  289. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  290. package/dist/Fx/constructors/suspend.js +28 -0
  291. package/dist/Fx/constructors/sync.d.ts +32 -0
  292. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  293. package/dist/Fx/constructors/sync.js +32 -0
  294. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  295. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  296. package/dist/Fx/internal/DeferredRef.js +260 -9
  297. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  298. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  299. package/dist/Fx/internal/diff.d.ts +586 -0
  300. package/dist/Fx/internal/diff.d.ts.map +1 -1
  301. package/dist/Fx/internal/diff.js +120 -9
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  304. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
  306. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  307. package/dist/Fx/internal/effectableWithOverride.js +46 -0
  308. package/dist/Fx/internal/equivalence.d.ts +29 -0
  309. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  310. package/dist/Fx/internal/equivalence.js +29 -0
  311. package/dist/Fx/internal/multicast.d.ts +145 -2
  312. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  313. package/dist/Fx/internal/multicast.js +146 -4
  314. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  315. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  316. package/dist/Fx/internal/ring-buffer.js +155 -0
  317. package/dist/Fx/internal/scope.d.ts +184 -0
  318. package/dist/Fx/internal/scope.d.ts.map +1 -1
  319. package/dist/Fx/internal/scope.js +150 -0
  320. package/dist/Fx/internal/yieldable.d.ts +117 -2
  321. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  322. package/dist/Fx/internal/yieldable.js +86 -3
  323. package/dist/Fx/run/collect.d.ts +93 -4
  324. package/dist/Fx/run/collect.d.ts.map +1 -1
  325. package/dist/Fx/run/collect.js +94 -5
  326. package/dist/Fx/run/first.d.ts +23 -1
  327. package/dist/Fx/run/first.d.ts.map +1 -1
  328. package/dist/Fx/run/first.js +23 -1
  329. package/dist/Fx/run/fork.d.ts +52 -2
  330. package/dist/Fx/run/fork.d.ts.map +1 -1
  331. package/dist/Fx/run/fork.js +52 -2
  332. package/dist/Fx/run/observe.d.ts +112 -4
  333. package/dist/Fx/run/observe.d.ts.map +1 -1
  334. package/dist/Fx/run/observe.js +137 -16
  335. package/dist/Fx/run/runPromise.d.ts +45 -2
  336. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  337. package/dist/Fx/run/runPromise.js +45 -2
  338. package/dist/Fx/stream.d.ts +92 -0
  339. package/dist/Fx/stream.d.ts.map +1 -1
  340. package/dist/Fx/stream.js +60 -1
  341. package/dist/Push/Push.d.ts +1286 -98
  342. package/dist/Push/Push.d.ts.map +1 -1
  343. package/dist/Push/Push.js +1074 -88
  344. package/dist/RefArray.d.ts +2 -0
  345. package/dist/RefArray.d.ts.map +1 -0
  346. package/dist/RefArray.js +1 -0
  347. package/dist/RefBigDecimal.d.ts +2 -0
  348. package/dist/RefBigDecimal.d.ts.map +1 -0
  349. package/dist/RefBigDecimal.js +1 -0
  350. package/dist/RefBigInt.d.ts +2 -0
  351. package/dist/RefBigInt.d.ts.map +1 -0
  352. package/dist/RefBigInt.js +1 -0
  353. package/dist/RefBoolean.d.ts +2 -0
  354. package/dist/RefBoolean.d.ts.map +1 -0
  355. package/dist/RefBoolean.js +1 -0
  356. package/dist/RefCause.d.ts +2 -0
  357. package/dist/RefCause.d.ts.map +1 -0
  358. package/dist/RefCause.js +1 -0
  359. package/dist/RefChunk.d.ts +2 -0
  360. package/dist/RefChunk.d.ts.map +1 -0
  361. package/dist/RefChunk.js +1 -0
  362. package/dist/RefDateTime.d.ts +2 -0
  363. package/dist/RefDateTime.d.ts.map +1 -0
  364. package/dist/RefDateTime.js +1 -0
  365. package/dist/RefDuration.d.ts +2 -0
  366. package/dist/RefDuration.d.ts.map +1 -0
  367. package/dist/RefDuration.js +1 -0
  368. package/dist/RefGraph.d.ts +2 -0
  369. package/dist/RefGraph.d.ts.map +1 -0
  370. package/dist/RefGraph.js +1 -0
  371. package/dist/RefHashMap.d.ts +2 -0
  372. package/dist/RefHashMap.d.ts.map +1 -0
  373. package/dist/RefHashMap.js +1 -0
  374. package/dist/RefHashRing.d.ts +2 -0
  375. package/dist/RefHashRing.d.ts.map +1 -0
  376. package/dist/RefHashRing.js +1 -0
  377. package/dist/RefHashSet.d.ts +2 -0
  378. package/dist/RefHashSet.d.ts.map +1 -0
  379. package/dist/RefHashSet.js +1 -0
  380. package/dist/RefIterable.d.ts +2 -0
  381. package/dist/RefIterable.d.ts.map +1 -0
  382. package/dist/RefIterable.js +1 -0
  383. package/dist/RefOption.d.ts +2 -0
  384. package/dist/RefOption.d.ts.map +1 -0
  385. package/dist/RefOption.js +1 -0
  386. package/dist/RefRecord.d.ts +2 -0
  387. package/dist/RefRecord.d.ts.map +1 -0
  388. package/dist/RefRecord.js +1 -0
  389. package/dist/RefResult.d.ts +2 -0
  390. package/dist/RefResult.d.ts.map +1 -0
  391. package/dist/RefResult.js +1 -0
  392. package/dist/RefString.d.ts +2 -0
  393. package/dist/RefString.d.ts.map +1 -0
  394. package/dist/RefString.js +1 -0
  395. package/dist/RefStruct.d.ts +2 -0
  396. package/dist/RefStruct.d.ts.map +1 -0
  397. package/dist/RefStruct.js +1 -0
  398. package/dist/RefSubject/Hydration.d.ts +504 -0
  399. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  400. package/dist/RefSubject/Hydration.js +300 -0
  401. package/dist/RefSubject/RefArray.d.ts +382 -35
  402. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  403. package/dist/RefSubject/RefArray.js +374 -40
  404. package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
  405. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  406. package/dist/RefSubject/RefBigDecimal.js +229 -20
  407. package/dist/RefSubject/RefBigInt.d.ts +181 -16
  408. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  409. package/dist/RefSubject/RefBigInt.js +169 -15
  410. package/dist/RefSubject/RefBoolean.d.ts +181 -16
  411. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  412. package/dist/RefSubject/RefBoolean.js +169 -15
  413. package/dist/RefSubject/RefCause.d.ts +133 -12
  414. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  415. package/dist/RefSubject/RefCause.js +121 -11
  416. package/dist/RefSubject/RefChunk.d.ts +481 -76
  417. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  418. package/dist/RefSubject/RefChunk.js +471 -75
  419. package/dist/RefSubject/RefDateTime.d.ts +137 -16
  420. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  421. package/dist/RefSubject/RefDateTime.js +122 -12
  422. package/dist/RefSubject/RefDuration.d.ts +169 -15
  423. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  424. package/dist/RefSubject/RefDuration.js +157 -14
  425. package/dist/RefSubject/RefGraph.d.ts +349 -35
  426. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  427. package/dist/RefSubject/RefGraph.js +334 -32
  428. package/dist/RefSubject/RefHashMap.d.ts +323 -28
  429. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  430. package/dist/RefSubject/RefHashMap.js +317 -29
  431. package/dist/RefSubject/RefHashRing.d.ts +159 -15
  432. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  433. package/dist/RefSubject/RefHashRing.js +145 -12
  434. package/dist/RefSubject/RefHashSet.d.ts +251 -22
  435. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  436. package/dist/RefSubject/RefHashSet.js +238 -20
  437. package/dist/RefSubject/RefIterable.d.ts +358 -32
  438. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  439. package/dist/RefSubject/RefIterable.js +350 -30
  440. package/dist/RefSubject/RefOption.d.ts +157 -14
  441. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  442. package/dist/RefSubject/RefOption.js +145 -13
  443. package/dist/RefSubject/RefRecord.d.ts +402 -64
  444. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  445. package/dist/RefSubject/RefRecord.js +364 -39
  446. package/dist/RefSubject/RefResult.d.ts +167 -35
  447. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  448. package/dist/RefSubject/RefResult.js +133 -12
  449. package/dist/RefSubject/RefString.d.ts +205 -18
  450. package/dist/RefSubject/RefString.d.ts.map +1 -1
  451. package/dist/RefSubject/RefString.js +193 -17
  452. package/dist/RefSubject/RefStruct.d.ts +169 -14
  453. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  454. package/dist/RefSubject/RefStruct.js +157 -13
  455. package/dist/RefSubject/RefSubject.d.ts +1242 -43
  456. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  457. package/dist/RefSubject/RefSubject.js +1012 -86
  458. package/dist/RefSubject/RefTrie.d.ts +323 -37
  459. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  460. package/dist/RefSubject/RefTrie.js +311 -31
  461. package/dist/RefSubject/RefTuple.d.ts +127 -11
  462. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  463. package/dist/RefSubject/RefTuple.js +114 -9
  464. package/dist/RefSubject/index.d.ts +1 -0
  465. package/dist/RefSubject/index.d.ts.map +1 -1
  466. package/dist/RefSubject/index.js +1 -0
  467. package/dist/RefSubject.d.ts +2 -1
  468. package/dist/RefSubject.d.ts.map +1 -1
  469. package/dist/RefSubject.js +2 -1
  470. package/dist/RefTrie.d.ts +2 -0
  471. package/dist/RefTrie.d.ts.map +1 -0
  472. package/dist/RefTrie.js +1 -0
  473. package/dist/RefTuple.d.ts +2 -0
  474. package/dist/RefTuple.d.ts.map +1 -0
  475. package/dist/RefTuple.js +1 -0
  476. package/dist/Sink/Sink.d.ts +396 -23
  477. package/dist/Sink/Sink.d.ts.map +1 -1
  478. package/dist/Sink/Sink.js +55 -7
  479. package/dist/Sink/combinators.d.ts +789 -3
  480. package/dist/Sink/combinators.d.ts.map +1 -1
  481. package/dist/Sink/combinators.js +812 -7
  482. package/dist/Subject/Subject.d.ts +1022 -27
  483. package/dist/Subject/Subject.d.ts.map +1 -1
  484. package/dist/Subject/Subject.js +909 -43
  485. package/dist/Versioned/Versioned.d.ts +475 -25
  486. package/dist/Versioned/Versioned.d.ts.map +1 -1
  487. package/dist/Versioned/Versioned.js +298 -46
  488. package/dist/index.d.ts +22 -3
  489. package/dist/index.d.ts.map +1 -1
  490. package/dist/index.js +22 -3
  491. package/package.json +125 -11
  492. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  493. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  494. package/dist/Fx/constructors/fromYieldable.js +0 -12
  495. package/src/Fx/Fx.ts +0 -164
  496. package/src/Fx/TypeId.ts +0 -25
  497. package/src/Fx/combinators/catch.ts +0 -165
  498. package/src/Fx/combinators/causes.ts +0 -23
  499. package/src/Fx/combinators/compact.ts +0 -15
  500. package/src/Fx/combinators/continueWith.ts +0 -78
  501. package/src/Fx/combinators/ensuring.ts +0 -23
  502. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  503. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  504. package/src/Fx/combinators/exhaustMap.ts +0 -36
  505. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  506. package/src/Fx/combinators/exit.ts +0 -15
  507. package/src/Fx/combinators/filter.ts +0 -22
  508. package/src/Fx/combinators/filterEffect.ts +0 -31
  509. package/src/Fx/combinators/filterMap.ts +0 -23
  510. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  511. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  512. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  513. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  514. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  515. package/src/Fx/combinators/flatMap.ts +0 -51
  516. package/src/Fx/combinators/flatMapConcurrently.ts +0 -36
  517. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  518. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  519. package/src/Fx/combinators/flip.ts +0 -14
  520. package/src/Fx/combinators/gen.ts +0 -24
  521. package/src/Fx/combinators/genScoped.ts +0 -24
  522. package/src/Fx/combinators/index.ts +0 -51
  523. package/src/Fx/combinators/keyed.ts +0 -369
  524. package/src/Fx/combinators/loop.ts +0 -27
  525. package/src/Fx/combinators/loopCause.ts +0 -34
  526. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  527. package/src/Fx/combinators/loopEffect.ts +0 -34
  528. package/src/Fx/combinators/map.ts +0 -22
  529. package/src/Fx/combinators/mapEffect.ts +0 -32
  530. package/src/Fx/combinators/mergeAll.ts +0 -22
  531. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  532. package/src/Fx/combinators/onError.ts +0 -40
  533. package/src/Fx/combinators/onExit.ts +0 -82
  534. package/src/Fx/combinators/onInterrupt.ts +0 -87
  535. package/src/Fx/combinators/provide.ts +0 -62
  536. package/src/Fx/combinators/skip.ts +0 -20
  537. package/src/Fx/combinators/skipRepeats.ts +0 -15
  538. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  539. package/src/Fx/combinators/slice.ts +0 -32
  540. package/src/Fx/combinators/switchMap.ts +0 -55
  541. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  542. package/src/Fx/combinators/take.ts +0 -17
  543. package/src/Fx/combinators/takeUntil.ts +0 -50
  544. package/src/Fx/combinators/tapEffect.ts +0 -39
  545. package/src/Fx/combinators/tuple.ts +0 -79
  546. package/src/Fx/combinators/unwrap.ts +0 -21
  547. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  548. package/src/Fx/combinators/when.ts +0 -64
  549. package/src/Fx/combinators/withSpan.ts +0 -24
  550. package/src/Fx/constructors/at.ts +0 -23
  551. package/src/Fx/constructors/die.ts +0 -17
  552. package/src/Fx/constructors/empty.ts +0 -10
  553. package/src/Fx/constructors/fail.ts +0 -14
  554. package/src/Fx/constructors/failCause.ts +0 -14
  555. package/src/Fx/constructors/fn.ts +0 -245
  556. package/src/Fx/constructors/fromEffect.ts +0 -24
  557. package/src/Fx/constructors/fromFailures.ts +0 -19
  558. package/src/Fx/constructors/fromIterable.ts +0 -15
  559. package/src/Fx/constructors/fromSchedule.ts +0 -18
  560. package/src/Fx/constructors/fromYieldable.ts +0 -17
  561. package/src/Fx/constructors/index.ts +0 -15
  562. package/src/Fx/constructors/interrupt.ts +0 -13
  563. package/src/Fx/constructors/make.ts +0 -103
  564. package/src/Fx/constructors/periodic.ts +0 -15
  565. package/src/Fx/constructors/succeed.ts +0 -37
  566. package/src/Fx/constructors/suspend.ts +0 -6
  567. package/src/Fx/index.ts +0 -6
  568. package/src/Fx/internal/DeferredRef.ts +0 -87
  569. package/src/Fx/internal/UnionToTuple.ts +0 -12
  570. package/src/Fx/internal/diff.ts +0 -191
  571. package/src/Fx/internal/equivalence.ts +0 -12
  572. package/src/Fx/internal/multicast.ts +0 -51
  573. package/src/Fx/internal/ring-buffer.ts +0 -60
  574. package/src/Fx/internal/scope.ts +0 -58
  575. package/src/Fx/internal/yieldable.ts +0 -31
  576. package/src/Fx/run/collect.ts +0 -79
  577. package/src/Fx/run/first.ts +0 -20
  578. package/src/Fx/run/fork.ts +0 -40
  579. package/src/Fx/run/index.ts +0 -5
  580. package/src/Fx/run/observe.ts +0 -114
  581. package/src/Fx/run/runPromise.ts +0 -32
  582. package/src/Fx/stream.ts +0 -42
  583. package/src/Fx.catch.test.ts +0 -61
  584. package/src/Fx.fn.test.ts +0 -51
  585. package/src/Fx.lifecycle.test.ts +0 -80
  586. package/src/Fx.test.ts +0 -71
  587. package/src/Fx.ts +0 -1
  588. package/src/Push/Push.ts +0 -903
  589. package/src/Push/index.ts +0 -1
  590. package/src/Push.test.ts +0 -26
  591. package/src/Push.ts +0 -1
  592. package/src/RefSubject/RefArray.ts +0 -512
  593. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  594. package/src/RefSubject/RefBigDecimal.ts +0 -295
  595. package/src/RefSubject/RefBigInt.test.ts +0 -56
  596. package/src/RefSubject/RefBigInt.ts +0 -189
  597. package/src/RefSubject/RefBoolean.test.ts +0 -57
  598. package/src/RefSubject/RefBoolean.ts +0 -185
  599. package/src/RefSubject/RefCause.test.ts +0 -53
  600. package/src/RefSubject/RefCause.ts +0 -146
  601. package/src/RefSubject/RefChunk.ts +0 -510
  602. package/src/RefSubject/RefDateTime.test.ts +0 -43
  603. package/src/RefSubject/RefDateTime.ts +0 -264
  604. package/src/RefSubject/RefDuration.test.ts +0 -49
  605. package/src/RefSubject/RefDuration.ts +0 -188
  606. package/src/RefSubject/RefGraph.ts +0 -650
  607. package/src/RefSubject/RefHashMap.ts +0 -465
  608. package/src/RefSubject/RefHashRing.ts +0 -262
  609. package/src/RefSubject/RefHashSet.ts +0 -308
  610. package/src/RefSubject/RefIterable.ts +0 -445
  611. package/src/RefSubject/RefOption.test.ts +0 -67
  612. package/src/RefSubject/RefOption.ts +0 -193
  613. package/src/RefSubject/RefRecord.ts +0 -612
  614. package/src/RefSubject/RefResult.test.ts +0 -63
  615. package/src/RefSubject/RefResult.ts +0 -209
  616. package/src/RefSubject/RefString.test.ts +0 -61
  617. package/src/RefSubject/RefString.ts +0 -256
  618. package/src/RefSubject/RefStruct.test.ts +0 -60
  619. package/src/RefSubject/RefStruct.ts +0 -253
  620. package/src/RefSubject/RefSubject.ts +0 -2545
  621. package/src/RefSubject/RefTrie.ts +0 -356
  622. package/src/RefSubject/RefTuple.test.ts +0 -60
  623. package/src/RefSubject/RefTuple.ts +0 -231
  624. package/src/RefSubject/index.ts +0 -21
  625. package/src/RefSubject.test.ts +0 -65
  626. package/src/RefSubject.ts +0 -1
  627. package/src/Sink/Sink.ts +0 -159
  628. package/src/Sink/combinators.ts +0 -993
  629. package/src/Sink/index.ts +0 -2
  630. package/src/Sink.ts +0 -1
  631. package/src/Subject/Subject.ts +0 -441
  632. package/src/Subject/index.ts +0 -1
  633. package/src/Subject.test.ts +0 -47
  634. package/src/Subject.ts +0 -1
  635. package/src/Versioned/Versioned.ts +0 -521
  636. package/src/Versioned/index.ts +0 -1
  637. package/src/Versioned.test.ts +0 -23
  638. package/src/Versioned.ts +0 -1
  639. package/src/index.ts +0 -7
  640. package/tsconfig.json +0 -6
@@ -1,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
- export declare const periodic: (period: Duration.DurationInput) => Fx<void>;
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,aAAa,KAAG,EAAE,CAAC,IAAI,CACrB,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"}
@@ -3,10 +3,39 @@ import { fromSchedule } from "./fromSchedule.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 const periodic = (period) =>
12
41
  /*#__PURE__*/ fromSchedule(spaced(period));
@@ -2,30 +2,102 @@ import type { Fx } from "../Fx.js";
2
2
  /**
3
3
  * Creates an Fx that emits a single value and then completes.
4
4
  *
5
+ * @remarks
6
+ * ## Why
7
+ *
8
+ * A known value can enter `Fx` composition without adding failure or service
9
+ * requirements.
10
+ *
11
+ * ## Ownership and lifetime
12
+ *
13
+ * Construction stores the value. Each run offers it exactly once, waits for the sink
14
+ * handler, and completes without acquiring resources.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { collectAll, succeed } from "@typed/fx/Fx"
19
+ *
20
+ * const program = collectAll(succeed({ status: "ready" }))
21
+ * ```
22
+ *
5
23
  * @param value - The value to emit.
6
24
  * @returns An `Fx` that emits the value.
7
25
  * @since 1.0.0
8
- * @category constructors
26
+ * @category Value sources
9
27
  */
10
28
  export declare const succeed: <A>(value: A) => Fx<A>;
11
29
  /**
12
- * An Fx that emits `null` and then completes.
30
+ * An Fx that emits `null` exactly once and then completes.
31
+ *
32
+ * @remarks
33
+ * ## Why
34
+ *
35
+ * The shared constant avoids repeatedly spelling `succeed(null)` in optional-value
36
+ * compositions. It is also exported as `null`.
37
+ *
38
+ * ## Ownership and lifetime
39
+ *
40
+ * Each run performs one sink delivery and acquires no resources.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * import { first, succeedNull } from "@typed/fx/Fx"
45
+ *
46
+ * const program = first(succeedNull)
47
+ * ```
48
+ *
13
49
  * @since 1.0.0
14
- * @category constructors
50
+ * @category Value sources
15
51
  */
16
52
  export declare const succeedNull: Fx<null, never, never>;
17
53
  export { succeedNull as null };
18
54
  /**
19
- * An Fx that emits `undefined` and then completes.
55
+ * An Fx that emits `undefined` exactly once and then completes.
56
+ *
57
+ * @remarks
58
+ * ## Why
59
+ *
60
+ * The shared constant avoids repeatedly spelling `succeed(undefined)` in optional
61
+ * compositions. It is also exported as `undefined`.
62
+ *
63
+ * ## Ownership and lifetime
64
+ *
65
+ * Each run performs one sink delivery and acquires no resources.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * import { first, succeedUndefined } from "@typed/fx/Fx"
70
+ *
71
+ * const program = first(succeedUndefined)
72
+ * ```
73
+ *
20
74
  * @since 1.0.0
21
- * @category constructors
75
+ * @category Value sources
22
76
  */
23
77
  export declare const succeedUndefined: Fx<undefined, never, never>;
24
78
  export { succeedUndefined as undefined };
25
79
  /**
26
- * An Fx that emits `void` and then completes.
80
+ * An Fx that emits `void` exactly once and then completes.
81
+ *
82
+ * @remarks
83
+ * ## Why
84
+ *
85
+ * The shared constant is a completion pulse for operations whose payload is
86
+ * irrelevant. It is also exported as `void`.
87
+ *
88
+ * ## Ownership and lifetime
89
+ *
90
+ * Each run performs one sink delivery and acquires no resources.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * import { drain, succeedVoid } from "@typed/fx/Fx"
95
+ *
96
+ * const program = drain(succeedVoid)
97
+ * ```
98
+ *
27
99
  * @since 1.0.0
28
- * @category constructors
100
+ * @category Value sources
29
101
  */
30
102
  export declare const succeedVoid: Fx<void, never, never>;
31
103
  export { succeedVoid as void };
@@ -1 +1 @@
1
- {"version":3,"file":"succeed.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/succeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,EAAE,CAAC,CAAC,CACc,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,WAAW,wBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,6BAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAE,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"succeed.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/succeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,CAAC,KAAG,EAAE,CAAC,CAAC,CACc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,wBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,gBAAgB,6BAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAE,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC"}
@@ -2,31 +2,103 @@ import { make } from "./make.js";
2
2
  /**
3
3
  * Creates an Fx that emits a single value and then completes.
4
4
  *
5
+ * @remarks
6
+ * ## Why
7
+ *
8
+ * A known value can enter `Fx` composition without adding failure or service
9
+ * requirements.
10
+ *
11
+ * ## Ownership and lifetime
12
+ *
13
+ * Construction stores the value. Each run offers it exactly once, waits for the sink
14
+ * handler, and completes without acquiring resources.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { collectAll, succeed } from "@typed/fx/Fx"
19
+ *
20
+ * const program = collectAll(succeed({ status: "ready" }))
21
+ * ```
22
+ *
5
23
  * @param value - The value to emit.
6
24
  * @returns An `Fx` that emits the value.
7
25
  * @since 1.0.0
8
- * @category constructors
26
+ * @category Value sources
9
27
  */
10
28
  export const succeed = (value) =>
11
29
  /*#__PURE__*/ make((sink) => sink.onSuccess(value));
12
30
  /**
13
- * An Fx that emits `null` and then completes.
31
+ * An Fx that emits `null` exactly once and then completes.
32
+ *
33
+ * @remarks
34
+ * ## Why
35
+ *
36
+ * The shared constant avoids repeatedly spelling `succeed(null)` in optional-value
37
+ * compositions. It is also exported as `null`.
38
+ *
39
+ * ## Ownership and lifetime
40
+ *
41
+ * Each run performs one sink delivery and acquires no resources.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { first, succeedNull } from "@typed/fx/Fx"
46
+ *
47
+ * const program = first(succeedNull)
48
+ * ```
49
+ *
14
50
  * @since 1.0.0
15
- * @category constructors
51
+ * @category Value sources
16
52
  */
17
53
  export const succeedNull = succeed(null);
18
54
  export { succeedNull as null };
19
55
  /**
20
- * An Fx that emits `undefined` and then completes.
56
+ * An Fx that emits `undefined` exactly once and then completes.
57
+ *
58
+ * @remarks
59
+ * ## Why
60
+ *
61
+ * The shared constant avoids repeatedly spelling `succeed(undefined)` in optional
62
+ * compositions. It is also exported as `undefined`.
63
+ *
64
+ * ## Ownership and lifetime
65
+ *
66
+ * Each run performs one sink delivery and acquires no resources.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * import { first, succeedUndefined } from "@typed/fx/Fx"
71
+ *
72
+ * const program = first(succeedUndefined)
73
+ * ```
74
+ *
21
75
  * @since 1.0.0
22
- * @category constructors
76
+ * @category Value sources
23
77
  */
24
78
  export const succeedUndefined = succeed(undefined);
25
79
  export { succeedUndefined as undefined };
26
80
  /**
27
- * An Fx that emits `void` and then completes.
81
+ * An Fx that emits `void` exactly once and then completes.
82
+ *
83
+ * @remarks
84
+ * ## Why
85
+ *
86
+ * The shared constant is a completion pulse for operations whose payload is
87
+ * irrelevant. It is also exported as `void`.
88
+ *
89
+ * ## Ownership and lifetime
90
+ *
91
+ * Each run performs one sink delivery and acquires no resources.
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * import { drain, succeedVoid } from "@typed/fx/Fx"
96
+ *
97
+ * const program = drain(succeedVoid)
98
+ * ```
99
+ *
28
100
  * @since 1.0.0
29
- * @category constructors
101
+ * @category Value sources
30
102
  */
31
103
  export const succeedVoid = succeed(void 0);
32
104
  export { succeedVoid as void };