@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
@@ -2,32 +2,97 @@ import * as Effect from "effect/Effect";
2
2
  import type { SpanOptionsNoTrace } from "effect/Tracer";
3
3
  import type { unassigned } from "effect/Types";
4
4
  import type { Fx } from "../Fx.js";
5
- /** Extract error type from Yieldable (Effect v4 has no Yieldable.Error) */
6
- type _YieldableError<Y> = Y extends Effect.Yieldable<any, any, infer E, any> ? E : never;
7
- /** Extract services type from Yieldable (Effect v4 has no Yieldable.Services) */
8
- type _YieldableServices<Y> = Y extends Effect.Yieldable<any, any, any, infer R> ? R : never;
9
5
  /**
6
+ * Callable contracts implemented by `fn`.
7
+ *
8
+ * @remarks
9
+ * ## Why
10
+ *
11
+ * The namespace keeps generator and non-generator overload families addressable even
12
+ * though one callable value implements both.
13
+ *
14
+ * ## Ownership and lifetime
15
+ *
16
+ * These are type-level contracts. They start no Effect or `Fx` run.
17
+ *
10
18
  * @since 1.0.0
11
- * @category function
19
+ * @category Generator composition
12
20
  */
13
21
  export declare namespace fn {
14
22
  /**
23
+ * Contract for functions whose body yields Effects and returns an `Fx`.
24
+ *
25
+ * @remarks
26
+ * ## Why
27
+ *
28
+ * `Gen` combines services and errors from yielded Effects with those of the returned
29
+ * `Fx`, while retaining the original arguments and `this` type. Optional pipeable
30
+ * arguments transform the resulting `Fx` without hiding those channels.
31
+ *
32
+ * ## Ownership and lifetime
33
+ *
34
+ * Defining the function is inert. The body and yielded Effects execute once per run
35
+ * of the `Fx` returned by an invocation; that run owns acquisition and interruption.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * import { Effect } from "effect"
40
+ * import { Fx } from "@typed/fx"
41
+ *
42
+ * const item = Fx.fn(function* (id: number) {
43
+ * const prefix = yield* Effect.succeed("item")
44
+ * return Fx.succeed(`${prefix}:${id}`)
45
+ * })
46
+ * const program = Fx.collectAll(item(1))
47
+ * ```
48
+ *
15
49
  * @since 1.0.0
16
- * @category models
50
+ * @category Type contracts
17
51
  */
18
52
  type Gen = {
19
- <Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>): (...args: Args) => Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>;
20
- <Self, Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>): (this: Self, ...args: Args) => Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>;
21
- <Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>, ...args: Args) => A): (...args: Args) => A;
22
- <Self, Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>, ...args: Args) => A): (this: Self, ...args: Args) => A;
23
- <Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B): (...args: Args) => B;
24
- <Self, Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B): (this: Self, ...args: Args) => B;
25
- <Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B, C>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B, c: (_: B, ...args: Args) => C): (...args: Args) => C;
26
- <Self, Eff extends Effect.Yieldable<any, any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B, C>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | _YieldableError<Eff>, Fx.Services<ReturnFx> | _YieldableServices<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B, c: (_: B, ...args: Args) => C): (this: Self, ...args: Args) => C;
53
+ <Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>): (...args: Args) => Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>;
54
+ <Self, Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>): (this: Self, ...args: Args) => Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>;
55
+ <Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>, ...args: Args) => A): (...args: Args) => A;
56
+ <Self, Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>, ...args: Args) => A): (this: Self, ...args: Args) => A;
57
+ <Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B): (...args: Args) => B;
58
+ <Self, Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B): (this: Self, ...args: Args) => B;
59
+ <Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B, C>(body: (this: unassigned, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B, c: (_: B, ...args: Args) => C): (...args: Args) => C;
60
+ <Self, Eff extends Effect.Effect<any, any, any>, ReturnFx extends Fx.Any, Args extends Array<any>, A, B, C>(body: (this: Self, ...args: Args) => Generator<Eff, ReturnFx>, a: (_: Fx<Fx.Success<ReturnFx>, Fx.Error<ReturnFx> | Effect.Error<Eff>, Fx.Services<ReturnFx> | Effect.Services<Eff>>, ...args: Args) => A, b: (_: A, ...args: Args) => B, c: (_: B, ...args: Args) => C): (this: Self, ...args: Args) => C;
27
61
  };
28
62
  /**
63
+ * Contract for functions whose body returns an `Fx` directly.
64
+ *
65
+ * @remarks
66
+ * ## Why
67
+ *
68
+ * `NonGen` adds Effect-style tracing and a typed pipeline to ordinary `Fx` factories
69
+ * without forcing a generator when no Effect acquisition is needed.
70
+ *
71
+ * ## Ownership and lifetime
72
+ *
73
+ * Defining and invoking the function are both inert. Invocation returns an `Fx`
74
+ * without evaluating `body`; `Effect.fn` suspends it. Each run evaluates the body
75
+ * once, then runs its returned producer in that same ownership and interruption
76
+ * lifetime.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * import { Fx } from "@typed/fx"
81
+ *
82
+ * let bodyCalls = 0
83
+ * const greeting = Fx.fn(
84
+ * (name: string) => {
85
+ * bodyCalls += 1
86
+ * return Fx.succeed(name)
87
+ * },
88
+ * (source) => Fx.map(source, (name) => `hello ${name}`)
89
+ * )
90
+ * const source = greeting("Ada") // bodyCalls is still 0
91
+ * const program = Fx.collectAll(source) // running program increments bodyCalls
92
+ * ```
93
+ *
29
94
  * @since 1.0.0
30
- * @category models
95
+ * @category Type contracts
31
96
  */
32
97
  type NonGen = {
33
98
  <Args extends Array<any>, ReturnFx extends Fx.Any>(body: (this: unassigned, ...args: Args) => ReturnFx): (...args: Args) => ReturnFx;
@@ -40,8 +105,43 @@ export declare namespace fn {
40
105
  <Self, Args extends Array<any>, ReturnFx extends Fx.Any, A, B, C>(body: (this: Self, ...args: Args) => ReturnFx, a: (_: ReturnFx, ...args: Args) => A, b: (_: A, ...args: Args) => B, c: (_: B, ...args: Args) => C): (this: Self, ...args: Args) => C;
41
106
  };
42
107
  }
108
+ /**
109
+ * Defines a traced function that returns an `Fx`, optionally after yielding Effects.
110
+ *
111
+ * @remarks
112
+ * ## Why
113
+ *
114
+ * Producer factories frequently need Effect acquisition before returning an `Fx`.
115
+ * `fn` lifts that generator into `Fx` with exact combined error and service channels;
116
+ * direct-return bodies use the same tracing and pipeline surface. Supplying a name
117
+ * delegates span configuration to Effect's `fn`.
118
+ *
119
+ * ## Ownership and lifetime
120
+ *
121
+ * Creating the function and invoking it start no stream. For generator bodies, each
122
+ * run evaluates the body and yielded Effects, then runs the returned `Fx` in the same
123
+ * structured lifetime. Interruption stops both acquisition and production. Direct
124
+ * bodies are evaluated lazily through the same unwrap boundary.
125
+ *
126
+ * @example
127
+ * ```ts
128
+ * import { Effect } from "effect"
129
+ * import { Fx } from "@typed/fx"
130
+ *
131
+ * const request = Fx.fn("request")(
132
+ * function* (id: number) {
133
+ * const token = yield* Effect.succeed("token")
134
+ * return Fx.succeed({ id, token })
135
+ * },
136
+ * (source) => Fx.map(source, ({ id }) => id)
137
+ * )
138
+ * const program = Fx.collectAll(request(42))
139
+ * ```
140
+ *
141
+ * @since 1.0.0
142
+ * @category Generator composition
143
+ */
43
144
  export declare const fn: fn.Gen & fn.NonGen & {
44
145
  (name: string, options?: SpanOptionsNoTrace): fn.Gen & fn.NonGen;
45
146
  };
46
- export {};
47
147
  //# sourceMappingURL=fn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;GAeG;AACH,yBAAiB,EAAE,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAY,GAAG,GAAG;QAChB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EACzF,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAClE,CACD,GAAG,IAAI,EAAE,IAAI,KACV,EAAE,CACL,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,CAAC;QACF,CACE,IAAI,EACJ,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,QAAQ,SAAS,EAAE,CAAC,GAAG,EACvB,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAEvB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAC5D,CACD,IAAI,EAAE,IAAI,EACV,GAAG,IAAI,EAAE,IAAI,KACV,EAAE,CACL,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,CAAC;QAEF,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAC5F,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EACnE,CAAC,EAAE,CACD,CAAC,EAAE,EAAE,CACH,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,EACD,GAAG,IAAI,EAAE,IAAI,KACV,CAAC,GACL,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QACxB,CACE,IAAI,EACJ,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,QAAQ,SAAS,EAAE,CAAC,GAAG,EACvB,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EACvB,CAAC,EAED,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAC7D,CAAC,EAAE,CACD,CAAC,EAAE,EAAE,CACH,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,EACD,GAAG,IAAI,EAAE,IAAI,KACV,CAAC,GACL,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QAEpC,CACE,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,QAAQ,SAAS,EAAE,CAAC,GAAG,EACvB,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EACvB,CAAC,EACD,CAAC,EAED,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EACnE,CAAC,EAAE,CACD,CAAC,EAAE,EAAE,CACH,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,EACD,GAAG,IAAI,EAAE,IAAI,KACV,CAAC,EACN,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QACxB,CACE,IAAI,EACJ,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,QAAQ,SAAS,EAAE,CAAC,GAAG,EACvB,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EACvB,CAAC,EACD,CAAC,EAED,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAC7D,CAAC,EAAE,CACD,CAAC,EAAE,EAAE,CACH,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,EACD,GAAG,IAAI,EAAE,IAAI,KACV,CAAC,EACN,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QAEpC,CACE,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,QAAQ,SAAS,EAAE,CAAC,GAAG,EACvB,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EACvB,CAAC,EACD,CAAC,EACD,CAAC,EAED,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EACnE,CAAC,EAAE,CACD,CAAC,EAAE,EAAE,CACH,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,EACD,GAAG,IAAI,EAAE,IAAI,KACV,CAAC,EACN,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QACxB,CACE,IAAI,EACJ,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACxC,QAAQ,SAAS,EAAE,CAAC,GAAG,EACvB,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EACvB,CAAC,EACD,CAAC,EACD,CAAC,EAED,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAC7D,CAAC,EAAE,CACD,CAAC,EAAE,EAAE,CACH,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7C,EACD,GAAG,IAAI,EAAE,IAAI,KACV,CAAC,EACN,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;KACrC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,KAAY,MAAM,GAAG;QACnB,CAAC,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAC/C,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,GAClD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC;QAC/B,CAAC,IAAI,EAAE,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EACrD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,GAC5C,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC;QAE3C,CAAC,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAClD,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,EACnD,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QACxB,CAAC,IAAI,EAAE,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EACxD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,EAC7C,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GACnC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QAEpC,CAAC,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EACrD,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,EACnD,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACpC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QACxB,CAAC,IAAI,EAAE,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC3D,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,EAC7C,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACpC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QAEpC,CAAC,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACxD,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,EACnD,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACpC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;QACxB,CAAC,IAAI,EAAE,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9D,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,EAC7C,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACpC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAC5B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;KACrC,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,GACrB,EAAE,CAAC,MAAM,GAAG;IACV,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;CAqBpE,CAAC"}
@@ -1,6 +1,42 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import { unwrap } from "../combinators/unwrap.js";
3
3
  import { isFx } from "../TypeId.js";
4
+ /**
5
+ * Defines a traced function that returns an `Fx`, optionally after yielding Effects.
6
+ *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Producer factories frequently need Effect acquisition before returning an `Fx`.
11
+ * `fn` lifts that generator into `Fx` with exact combined error and service channels;
12
+ * direct-return bodies use the same tracing and pipeline surface. Supplying a name
13
+ * delegates span configuration to Effect's `fn`.
14
+ *
15
+ * ## Ownership and lifetime
16
+ *
17
+ * Creating the function and invoking it start no stream. For generator bodies, each
18
+ * run evaluates the body and yielded Effects, then runs the returned `Fx` in the same
19
+ * structured lifetime. Interruption stops both acquisition and production. Direct
20
+ * bodies are evaluated lazily through the same unwrap boundary.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { Effect } from "effect"
25
+ * import { Fx } from "@typed/fx"
26
+ *
27
+ * const request = Fx.fn("request")(
28
+ * function* (id: number) {
29
+ * const token = yield* Effect.succeed("token")
30
+ * return Fx.succeed({ id, token })
31
+ * },
32
+ * (source) => Fx.map(source, ({ id }) => id)
33
+ * )
34
+ * const program = Fx.collectAll(request(42))
35
+ * ```
36
+ *
37
+ * @since 1.0.0
38
+ * @category Generator composition
39
+ */
4
40
  export const fn = function (...args) {
5
41
  const [first, ...rest] = args;
6
42
  if (typeof first === "string") {
@@ -6,16 +6,58 @@ import type { Fx } from "../Fx.js";
6
6
  * If the Effect succeeds, the Fx emits the value and completes.
7
7
  * If the Effect fails, the Fx fails with the same error.
8
8
  *
9
+ * @remarks
10
+ * ## Why
11
+ *
12
+ * A single Effect result can enter push composition without losing its typed error
13
+ * or service requirements.
14
+ *
15
+ * ## Ownership and lifetime
16
+ *
17
+ * Conversion is lazy. Each run executes the Effect once in the run's fiber, forwards
18
+ * its success or full cause to the sink, and completes after the sink handler. The
19
+ * run's interruption and scope own any acquisition performed by the Effect.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Effect } from "effect"
24
+ * import { collectAll, fromEffect } from "@typed/fx/Fx"
25
+ *
26
+ * const source = fromEffect(Effect.succeed(42))
27
+ * const program = collectAll(source)
28
+ * ```
29
+ *
9
30
  * @param effect - The effect to convert.
10
31
  * @returns An `Fx` representing the execution of the effect.
11
32
  * @since 1.0.0
12
- * @category constructors
33
+ * @category Effect interop
13
34
  */
14
35
  export declare const fromEffect: <A, E = never, R = never>(effect: Effect.Effect<A, E, R>) => Fx<A, E, R>;
15
36
  /**
16
- * An Fx that runs forever without emitting any values.
37
+ * An Fx that waits forever without emitting a value.
38
+ *
39
+ * @remarks
40
+ * ## Why
41
+ *
42
+ * `never` models an intentionally open producer and is useful as a neutral branch in
43
+ * races, switches, and lifetime tests.
44
+ *
45
+ * ## Ownership and lifetime
46
+ *
47
+ * Each run remains suspended until its owning fiber is interrupted. It allocates no
48
+ * independent timer or background fiber.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * import { Effect, Fiber } from "effect"
53
+ * import { fork, never } from "@typed/fx/Fx"
54
+ *
55
+ * const running = fork(never)
56
+ * const program = Effect.flatMap(running, Fiber.interrupt)
57
+ * ```
58
+ *
17
59
  * @since 1.0.0
18
- * @category constructors
60
+ * @category Value sources
19
61
  */
20
62
  export declare const never: Fx<never, never, never>;
21
63
  //# sourceMappingURL=fromEffect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromEffect.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACjB,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAiD,CAAC"}
1
+ {"version":3,"file":"fromEffect.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACjB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAiD,CAAC"}
@@ -6,16 +6,58 @@ import { make } from "./make.js";
6
6
  * If the Effect succeeds, the Fx emits the value and completes.
7
7
  * If the Effect fails, the Fx fails with the same error.
8
8
  *
9
+ * @remarks
10
+ * ## Why
11
+ *
12
+ * A single Effect result can enter push composition without losing its typed error
13
+ * or service requirements.
14
+ *
15
+ * ## Ownership and lifetime
16
+ *
17
+ * Conversion is lazy. Each run executes the Effect once in the run's fiber, forwards
18
+ * its success or full cause to the sink, and completes after the sink handler. The
19
+ * run's interruption and scope own any acquisition performed by the Effect.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Effect } from "effect"
24
+ * import { collectAll, fromEffect } from "@typed/fx/Fx"
25
+ *
26
+ * const source = fromEffect(Effect.succeed(42))
27
+ * const program = collectAll(source)
28
+ * ```
29
+ *
9
30
  * @param effect - The effect to convert.
10
31
  * @returns An `Fx` representing the execution of the effect.
11
32
  * @since 1.0.0
12
- * @category constructors
33
+ * @category Effect interop
13
34
  */
14
35
  export const fromEffect = (effect) =>
15
36
  /*#__PURE__*/ make((sink) => Effect.matchCauseEffect(effect, sink));
16
37
  /**
17
- * An Fx that runs forever without emitting any values.
38
+ * An Fx that waits forever without emitting a value.
39
+ *
40
+ * @remarks
41
+ * ## Why
42
+ *
43
+ * `never` models an intentionally open producer and is useful as a neutral branch in
44
+ * races, switches, and lifetime tests.
45
+ *
46
+ * ## Ownership and lifetime
47
+ *
48
+ * Each run remains suspended until its owning fiber is interrupted. It allocates no
49
+ * independent timer or background fiber.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import { Effect, Fiber } from "effect"
54
+ * import { fork, never } from "@typed/fx/Fx"
55
+ *
56
+ * const running = fork(never)
57
+ * const program = Effect.flatMap(running, Fiber.interrupt)
58
+ * ```
59
+ *
18
60
  * @since 1.0.0
19
- * @category constructors
61
+ * @category Value sources
20
62
  */
21
63
  export const never = make(() => Effect.never);
@@ -1,10 +1,34 @@
1
1
  /**
2
2
  * Creates an Fx from a collection of failures (errors).
3
3
  *
4
+ * @remarks
5
+ * ## Why
6
+ *
7
+ * Validation and batch operations can preserve every independent typed failure in a
8
+ * single Effect `Cause` rather than choosing one error or emitting partial values.
9
+ * Equal reasons are de-duplicated by `Cause.combine`.
10
+ *
11
+ * ## Ownership and lifetime
12
+ *
13
+ * The iterable is consumed eagerly when `fromFailures` is called. Running the result
14
+ * forwards the combined cause once, emits no values, and acquires no resources. An
15
+ * empty iterable produces the empty Cause.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { Effect } from "effect"
20
+ * import { fromFailures, observe } from "@typed/fx/Fx"
21
+ *
22
+ * const failures = fromFailures(["name", "email"])
23
+ * const program = observe(failures, () => Effect.void).pipe(
24
+ * Effect.catch((error) => Effect.succeed(error))
25
+ * )
26
+ * ```
27
+ *
4
28
  * @param failures - An iterable of failures.
5
29
  * @returns An `Fx` that fails with the combined failures.
6
30
  * @since 1.0.0
7
- * @category constructors
31
+ * @category Failure sources
8
32
  */
9
33
  export declare const fromFailures: <E>(failures: Iterable<E>) => import("../Fx.js").Fx<never, E, never>;
10
34
  //# sourceMappingURL=fromFailures.d.ts.map
@@ -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";