@typed/fx 1.32.0 → 2.0.0-beta.0

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 (818) hide show
  1. package/README.md +344 -2
  2. package/dist/Fx/Fx.d.ts +96 -0
  3. package/dist/Fx/Fx.d.ts.map +1 -0
  4. package/dist/Fx/Fx.js +35 -0
  5. package/dist/Fx/TypeId.d.ts +20 -0
  6. package/dist/Fx/TypeId.d.ts.map +1 -0
  7. package/dist/Fx/TypeId.js +15 -0
  8. package/dist/Fx/combinators/catch.d.ts +53 -0
  9. package/dist/Fx/combinators/catch.d.ts.map +1 -0
  10. package/dist/Fx/combinators/catch.js +69 -0
  11. package/dist/Fx/combinators/causes.d.ts +12 -0
  12. package/dist/Fx/combinators/causes.d.ts.map +1 -0
  13. package/dist/Fx/combinators/causes.js +16 -0
  14. package/dist/Fx/combinators/compact.d.ts +12 -0
  15. package/dist/Fx/combinators/compact.d.ts.map +1 -0
  16. package/dist/Fx/combinators/compact.js +11 -0
  17. package/dist/Fx/combinators/continueWith.d.ts +51 -0
  18. package/dist/Fx/combinators/continueWith.d.ts.map +1 -0
  19. package/dist/Fx/combinators/continueWith.js +41 -0
  20. package/dist/Fx/combinators/ensuring.d.ts +16 -0
  21. package/dist/Fx/combinators/ensuring.d.ts.map +1 -0
  22. package/dist/Fx/combinators/ensuring.js +13 -0
  23. package/dist/Fx/combinators/exhaustLatestMap.d.ts +15 -0
  24. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -0
  25. package/dist/Fx/combinators/exhaustLatestMap.js +48 -0
  26. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +13 -0
  27. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -0
  28. package/dist/Fx/combinators/exhaustLatestMapEffect.js +14 -0
  29. package/dist/Fx/combinators/exhaustMap.d.ts +11 -0
  30. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -0
  31. package/dist/Fx/combinators/exhaustMap.js +19 -0
  32. package/dist/Fx/combinators/exhaustMapEffect.d.ts +11 -0
  33. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -0
  34. package/dist/Fx/combinators/exhaustMapEffect.js +12 -0
  35. package/dist/Fx/combinators/exit.d.ts +12 -0
  36. package/dist/Fx/combinators/exit.d.ts.map +1 -0
  37. package/dist/Fx/combinators/exit.js +11 -0
  38. package/dist/Fx/combinators/filter.d.ts +14 -0
  39. package/dist/Fx/combinators/filter.d.ts.map +1 -0
  40. package/dist/Fx/combinators/filter.js +12 -0
  41. package/dist/Fx/combinators/filterEffect.d.ts +15 -0
  42. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -0
  43. package/dist/Fx/combinators/filterEffect.js +12 -0
  44. package/dist/Fx/combinators/filterMap.d.ts +15 -0
  45. package/dist/Fx/combinators/filterMap.d.ts.map +1 -0
  46. package/dist/Fx/combinators/filterMap.js +12 -0
  47. package/dist/Fx/combinators/filterMapEffect.d.ts +16 -0
  48. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -0
  49. package/dist/Fx/combinators/filterMapEffect.js +12 -0
  50. package/dist/Fx/combinators/filterMapLoop.d.ts +17 -0
  51. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -0
  52. package/dist/Fx/combinators/filterMapLoop.js +14 -0
  53. package/dist/Fx/combinators/filterMapLoopCause.d.ts +18 -0
  54. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -0
  55. package/dist/Fx/combinators/filterMapLoopCause.js +14 -0
  56. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +18 -0
  57. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -0
  58. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +13 -0
  59. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +17 -0
  60. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -0
  61. package/dist/Fx/combinators/filterMapLoopEffect.js +13 -0
  62. package/dist/Fx/combinators/flatMap.d.ts +23 -0
  63. package/dist/Fx/combinators/flatMap.d.ts.map +1 -0
  64. package/dist/Fx/combinators/flatMap.js +21 -0
  65. package/dist/Fx/combinators/flatMapConcurrently.d.ts +12 -0
  66. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -0
  67. package/dist/Fx/combinators/flatMapConcurrently.js +22 -0
  68. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +12 -0
  69. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -0
  70. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +13 -0
  71. package/dist/Fx/combinators/flatMapEffect.d.ts +24 -0
  72. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -0
  73. package/dist/Fx/combinators/flatMapEffect.js +14 -0
  74. package/dist/Fx/combinators/flip.d.ts +11 -0
  75. package/dist/Fx/combinators/flip.d.ts.map +1 -0
  76. package/dist/Fx/combinators/flip.js +11 -0
  77. package/dist/Fx/combinators/gen.d.ts +20 -0
  78. package/dist/Fx/combinators/gen.d.ts.map +1 -0
  79. package/dist/Fx/combinators/gen.js +14 -0
  80. package/dist/Fx/combinators/genScoped.d.ts +20 -0
  81. package/dist/Fx/combinators/genScoped.d.ts.map +1 -0
  82. package/dist/Fx/combinators/genScoped.js +13 -0
  83. package/dist/Fx/combinators/index.d.ts +52 -0
  84. package/dist/Fx/combinators/index.d.ts.map +1 -0
  85. package/dist/Fx/combinators/index.js +51 -0
  86. package/dist/Fx/combinators/keyed.d.ts +44 -0
  87. package/dist/Fx/combinators/keyed.d.ts.map +1 -0
  88. package/dist/Fx/combinators/keyed.js +199 -0
  89. package/dist/Fx/combinators/loop.d.ts +16 -0
  90. package/dist/Fx/combinators/loop.d.ts.map +1 -0
  91. package/dist/Fx/combinators/loop.js +14 -0
  92. package/dist/Fx/combinators/loopCause.d.ts +16 -0
  93. package/dist/Fx/combinators/loopCause.d.ts.map +1 -0
  94. package/dist/Fx/combinators/loopCause.js +13 -0
  95. package/dist/Fx/combinators/loopCauseEffect.d.ts +17 -0
  96. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -0
  97. package/dist/Fx/combinators/loopCauseEffect.js +13 -0
  98. package/dist/Fx/combinators/loopEffect.d.ts +16 -0
  99. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -0
  100. package/dist/Fx/combinators/loopEffect.js +13 -0
  101. package/dist/Fx/combinators/map.d.ts +14 -0
  102. package/dist/Fx/combinators/map.d.ts.map +1 -0
  103. package/dist/Fx/combinators/map.js +12 -0
  104. package/dist/Fx/combinators/mapEffect.d.ts +15 -0
  105. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -0
  106. package/dist/Fx/combinators/mapEffect.js +12 -0
  107. package/dist/Fx/combinators/mergeAll.d.ts +11 -0
  108. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -0
  109. package/dist/Fx/combinators/mergeAll.js +15 -0
  110. package/dist/Fx/combinators/mergeOrdered.d.ts +14 -0
  111. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -0
  112. package/dist/Fx/combinators/mergeOrdered.js +89 -0
  113. package/dist/Fx/combinators/onError.d.ts +17 -0
  114. package/dist/Fx/combinators/onError.d.ts.map +1 -0
  115. package/dist/Fx/combinators/onError.js +14 -0
  116. package/dist/Fx/combinators/onExit.d.ts +16 -0
  117. package/dist/Fx/combinators/onExit.d.ts.map +1 -0
  118. package/dist/Fx/combinators/onExit.js +39 -0
  119. package/dist/Fx/combinators/onInterrupt.d.ts +16 -0
  120. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -0
  121. package/dist/Fx/combinators/onInterrupt.js +38 -0
  122. package/dist/Fx/combinators/provide.d.ts +23 -0
  123. package/dist/Fx/combinators/provide.d.ts.map +1 -0
  124. package/dist/Fx/combinators/provide.js +27 -0
  125. package/dist/Fx/combinators/skip.d.ts +14 -0
  126. package/dist/Fx/combinators/skip.d.ts.map +1 -0
  127. package/dist/Fx/combinators/skip.js +11 -0
  128. package/dist/Fx/combinators/skipRepeats.d.ts +11 -0
  129. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -0
  130. package/dist/Fx/combinators/skipRepeats.js +12 -0
  131. package/dist/Fx/combinators/skipRepeatsWith.d.ts +12 -0
  132. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -0
  133. package/dist/Fx/combinators/skipRepeatsWith.js +20 -0
  134. package/dist/Fx/combinators/slice.d.ts +23 -0
  135. package/dist/Fx/combinators/slice.d.ts.map +1 -0
  136. package/dist/Fx/combinators/slice.js +12 -0
  137. package/dist/Fx/combinators/switchMap.d.ts +13 -0
  138. package/dist/Fx/combinators/switchMap.d.ts.map +1 -0
  139. package/dist/Fx/combinators/switchMap.js +33 -0
  140. package/dist/Fx/combinators/switchMapEffect.d.ts +13 -0
  141. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -0
  142. package/dist/Fx/combinators/switchMapEffect.js +14 -0
  143. package/dist/Fx/combinators/take.d.ts +14 -0
  144. package/dist/Fx/combinators/take.d.ts.map +1 -0
  145. package/dist/Fx/combinators/take.js +11 -0
  146. package/dist/Fx/combinators/takeUntil.d.ts +28 -0
  147. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -0
  148. package/dist/Fx/combinators/takeUntil.js +31 -0
  149. package/dist/Fx/combinators/tapEffect.d.ts +15 -0
  150. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -0
  151. package/dist/Fx/combinators/tapEffect.js +18 -0
  152. package/dist/Fx/combinators/tuple.d.ts +27 -0
  153. package/dist/Fx/combinators/tuple.d.ts.map +1 -0
  154. package/dist/Fx/combinators/tuple.js +46 -0
  155. package/dist/Fx/combinators/unwrap.d.ts +12 -0
  156. package/dist/Fx/combinators/unwrap.d.ts.map +1 -0
  157. package/dist/Fx/combinators/unwrap.js +14 -0
  158. package/dist/Fx/combinators/unwrapScoped.d.ts +15 -0
  159. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -0
  160. package/dist/Fx/combinators/unwrapScoped.js +16 -0
  161. package/dist/Fx/combinators/when.d.ts +36 -0
  162. package/dist/Fx/combinators/when.d.ts.map +1 -0
  163. package/dist/Fx/combinators/when.js +28 -0
  164. package/dist/Fx/combinators/withSpan.d.ts +4 -0
  165. package/dist/Fx/combinators/withSpan.d.ts.map +1 -0
  166. package/dist/Fx/combinators/withSpan.js +6 -0
  167. package/dist/Fx/constructors/at.d.ts +16 -0
  168. package/dist/Fx/constructors/at.d.ts.map +1 -0
  169. package/dist/Fx/constructors/at.js +13 -0
  170. package/dist/Fx/constructors/die.d.ts +11 -0
  171. package/dist/Fx/constructors/die.d.ts.map +1 -0
  172. package/dist/Fx/constructors/die.js +12 -0
  173. package/dist/Fx/constructors/empty.d.ts +8 -0
  174. package/dist/Fx/constructors/empty.d.ts.map +1 -0
  175. package/dist/Fx/constructors/empty.js +8 -0
  176. package/dist/Fx/constructors/fail.d.ts +11 -0
  177. package/dist/Fx/constructors/fail.d.ts.map +1 -0
  178. package/dist/Fx/constructors/fail.js +12 -0
  179. package/dist/Fx/constructors/failCause.d.ts +12 -0
  180. package/dist/Fx/constructors/failCause.d.ts.map +1 -0
  181. package/dist/Fx/constructors/failCause.js +11 -0
  182. package/dist/Fx/constructors/fn.d.ts +47 -0
  183. package/dist/Fx/constructors/fn.d.ts.map +1 -0
  184. package/dist/Fx/constructors/fn.js +23 -0
  185. package/dist/Fx/constructors/fromEffect.d.ts +21 -0
  186. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -0
  187. package/dist/Fx/constructors/fromEffect.js +21 -0
  188. package/dist/Fx/constructors/fromFailures.d.ts +10 -0
  189. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -0
  190. package/dist/Fx/constructors/fromFailures.js +13 -0
  191. package/dist/Fx/constructors/fromIterable.d.ts +12 -0
  192. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -0
  193. package/dist/Fx/constructors/fromIterable.js +12 -0
  194. package/dist/Fx/constructors/fromSchedule.d.ts +13 -0
  195. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -0
  196. package/dist/Fx/constructors/fromSchedule.js +13 -0
  197. package/dist/Fx/constructors/fromYieldable.d.ts +12 -0
  198. package/dist/Fx/constructors/fromYieldable.d.ts.map +1 -0
  199. package/dist/Fx/constructors/fromYieldable.js +12 -0
  200. package/dist/Fx/constructors/index.d.ts +16 -0
  201. package/dist/Fx/constructors/index.d.ts.map +1 -0
  202. package/dist/Fx/constructors/index.js +15 -0
  203. package/dist/Fx/constructors/interrupt.d.ts +10 -0
  204. package/dist/Fx/constructors/interrupt.d.ts.map +1 -0
  205. package/dist/Fx/constructors/interrupt.js +12 -0
  206. package/dist/Fx/constructors/make.d.ts +40 -0
  207. package/dist/Fx/constructors/make.d.ts.map +1 -0
  208. package/dist/Fx/constructors/make.js +61 -0
  209. package/dist/Fx/constructors/periodic.d.ts +12 -0
  210. package/dist/Fx/constructors/periodic.d.ts.map +1 -0
  211. package/dist/Fx/constructors/periodic.js +12 -0
  212. package/dist/Fx/constructors/succeed.d.ts +32 -0
  213. package/dist/Fx/constructors/succeed.d.ts.map +1 -0
  214. package/dist/Fx/constructors/succeed.js +32 -0
  215. package/dist/Fx/constructors/suspend.d.ts +3 -0
  216. package/dist/Fx/constructors/suspend.d.ts.map +1 -0
  217. package/dist/Fx/constructors/suspend.js +3 -0
  218. package/dist/Fx/index.d.ts +7 -0
  219. package/dist/Fx/index.d.ts.map +1 -0
  220. package/dist/Fx/index.js +6 -0
  221. package/dist/Fx/internal/DeferredRef.d.ts +29 -0
  222. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -0
  223. package/dist/{esm → Fx}/internal/DeferredRef.js +21 -15
  224. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -0
  225. package/dist/Fx/internal/UnionToTuple.js +1 -0
  226. package/dist/{dts → Fx}/internal/diff.d.ts +3 -1
  227. package/dist/Fx/internal/diff.d.ts.map +1 -0
  228. package/dist/{esm → Fx}/internal/diff.js +37 -23
  229. package/dist/Fx/internal/equivalence.d.ts +4 -0
  230. package/dist/Fx/internal/equivalence.d.ts.map +1 -0
  231. package/dist/Fx/internal/equivalence.js +10 -0
  232. package/dist/Fx/internal/multicast.d.ts +10 -0
  233. package/dist/Fx/internal/multicast.d.ts.map +1 -0
  234. package/dist/Fx/internal/multicast.js +32 -0
  235. package/dist/Fx/internal/ring-buffer.d.ts +14 -0
  236. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -0
  237. package/dist/Fx/internal/ring-buffer.js +52 -0
  238. package/dist/Fx/internal/scope.d.ts +11 -0
  239. package/dist/Fx/internal/scope.d.ts.map +1 -0
  240. package/dist/Fx/internal/scope.js +12 -0
  241. package/dist/Fx/internal/yieldable.d.ts +17 -0
  242. package/dist/Fx/internal/yieldable.d.ts.map +1 -0
  243. package/dist/Fx/internal/yieldable.js +20 -0
  244. package/dist/Fx/run/collect.d.ts +45 -0
  245. package/dist/Fx/run/collect.d.ts.map +1 -0
  246. package/dist/Fx/run/collect.js +51 -0
  247. package/dist/Fx/run/first.d.ts +14 -0
  248. package/dist/Fx/run/first.d.ts.map +1 -0
  249. package/dist/Fx/run/first.js +16 -0
  250. package/dist/Fx/run/fork.d.ts +29 -0
  251. package/dist/Fx/run/fork.d.ts.map +1 -0
  252. package/dist/Fx/run/fork.js +27 -0
  253. package/dist/Fx/run/index.d.ts +6 -0
  254. package/dist/Fx/run/index.d.ts.map +1 -0
  255. package/dist/Fx/run/index.js +5 -0
  256. package/dist/Fx/run/observe.d.ts +53 -0
  257. package/dist/Fx/run/observe.d.ts.map +1 -0
  258. package/dist/Fx/run/observe.js +55 -0
  259. package/dist/Fx/run/runPromise.d.ts +25 -0
  260. package/dist/Fx/run/runPromise.d.ts.map +1 -0
  261. package/dist/Fx/run/runPromise.js +23 -0
  262. package/dist/Fx/stream.d.ts +7 -0
  263. package/dist/Fx/stream.d.ts.map +1 -0
  264. package/dist/Fx/stream.js +7 -0
  265. package/dist/Fx.d.ts +2 -0
  266. package/dist/Fx.d.ts.map +1 -0
  267. package/dist/Fx.js +1 -0
  268. package/dist/Push/Push.d.ts +312 -0
  269. package/dist/Push/Push.d.ts.map +1 -0
  270. package/dist/Push/Push.js +289 -0
  271. package/dist/Push/index.d.ts +2 -0
  272. package/dist/Push/index.d.ts.map +1 -0
  273. package/dist/Push/index.js +1 -0
  274. package/dist/Push.d.ts +2 -0
  275. package/dist/Push.d.ts.map +1 -0
  276. package/dist/Push.js +1 -0
  277. package/dist/{dts → RefSubject}/RefArray.d.ts +68 -18
  278. package/dist/RefSubject/RefArray.d.ts.map +1 -0
  279. package/dist/{esm → RefSubject}/RefArray.js +80 -12
  280. package/dist/RefSubject/RefBigDecimal.d.ts +183 -0
  281. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -0
  282. package/dist/RefSubject/RefBigDecimal.js +161 -0
  283. package/dist/RefSubject/RefBigInt.d.ts +138 -0
  284. package/dist/RefSubject/RefBigInt.d.ts.map +1 -0
  285. package/dist/RefSubject/RefBigInt.js +126 -0
  286. package/dist/RefSubject/RefBoolean.d.ts +135 -0
  287. package/dist/RefSubject/RefBoolean.d.ts.map +1 -0
  288. package/dist/RefSubject/RefBoolean.js +124 -0
  289. package/dist/RefSubject/RefCause.d.ts +100 -0
  290. package/dist/RefSubject/RefCause.d.ts.map +1 -0
  291. package/dist/RefSubject/RefCause.js +93 -0
  292. package/dist/{dts → RefSubject}/RefChunk.d.ts +157 -71
  293. package/dist/RefSubject/RefChunk.d.ts.map +1 -0
  294. package/dist/{esm → RefSubject}/RefChunk.js +142 -52
  295. package/dist/RefSubject/RefDateTime.d.ts +155 -0
  296. package/dist/RefSubject/RefDateTime.d.ts.map +1 -0
  297. package/dist/RefSubject/RefDateTime.js +101 -0
  298. package/dist/RefSubject/RefDuration.d.ts +126 -0
  299. package/dist/RefSubject/RefDuration.d.ts.map +1 -0
  300. package/dist/RefSubject/RefDuration.js +115 -0
  301. package/dist/RefSubject/RefGraph.d.ts +239 -0
  302. package/dist/RefSubject/RefGraph.d.ts.map +1 -0
  303. package/dist/RefSubject/RefGraph.js +272 -0
  304. package/dist/RefSubject/RefHashMap.d.ts +228 -0
  305. package/dist/RefSubject/RefHashMap.d.ts.map +1 -0
  306. package/dist/RefSubject/RefHashMap.js +212 -0
  307. package/dist/RefSubject/RefHashRing.d.ts +123 -0
  308. package/dist/RefSubject/RefHashRing.d.ts.map +1 -0
  309. package/dist/RefSubject/RefHashRing.js +115 -0
  310. package/dist/RefSubject/RefHashSet.d.ts +179 -0
  311. package/dist/RefSubject/RefHashSet.d.ts.map +1 -0
  312. package/dist/RefSubject/RefHashSet.js +164 -0
  313. package/dist/RefSubject/RefIterable.d.ts +257 -0
  314. package/dist/RefSubject/RefIterable.d.ts.map +1 -0
  315. package/dist/RefSubject/RefIterable.js +237 -0
  316. package/dist/RefSubject/RefOption.d.ts +124 -0
  317. package/dist/RefSubject/RefOption.d.ts.map +1 -0
  318. package/dist/RefSubject/RefOption.js +115 -0
  319. package/dist/RefSubject/RefRecord.d.ts +264 -0
  320. package/dist/RefSubject/RefRecord.d.ts.map +1 -0
  321. package/dist/RefSubject/RefRecord.js +249 -0
  322. package/dist/RefSubject/RefResult.d.ts +121 -0
  323. package/dist/RefSubject/RefResult.d.ts.map +1 -0
  324. package/dist/RefSubject/RefResult.js +107 -0
  325. package/dist/RefSubject/RefString.d.ts +147 -0
  326. package/dist/RefSubject/RefString.d.ts.map +1 -0
  327. package/dist/RefSubject/RefString.js +137 -0
  328. package/dist/RefSubject/RefStruct.d.ts +123 -0
  329. package/dist/RefSubject/RefStruct.d.ts.map +1 -0
  330. package/dist/RefSubject/RefStruct.js +113 -0
  331. package/dist/RefSubject/RefSubject.d.ts +1010 -0
  332. package/dist/RefSubject/RefSubject.d.ts.map +1 -0
  333. package/dist/RefSubject/RefSubject.js +1310 -0
  334. package/dist/RefSubject/RefTrie.d.ts +216 -0
  335. package/dist/RefSubject/RefTrie.d.ts.map +1 -0
  336. package/dist/RefSubject/RefTrie.js +201 -0
  337. package/dist/RefSubject/RefTuple.d.ts +107 -0
  338. package/dist/RefSubject/RefTuple.d.ts.map +1 -0
  339. package/dist/RefSubject/RefTuple.js +94 -0
  340. package/dist/RefSubject/index.d.ts +22 -0
  341. package/dist/RefSubject/index.d.ts.map +1 -0
  342. package/dist/RefSubject/index.js +21 -0
  343. package/dist/RefSubject.d.ts +2 -0
  344. package/dist/RefSubject.d.ts.map +1 -0
  345. package/dist/RefSubject.js +1 -0
  346. package/dist/Sink/Sink.d.ts +94 -0
  347. package/dist/Sink/Sink.d.ts.map +1 -0
  348. package/dist/Sink/Sink.js +34 -0
  349. package/dist/Sink/combinators.d.ts +171 -0
  350. package/dist/Sink/combinators.d.ts.map +1 -0
  351. package/dist/{esm/Sink.js → Sink/combinators.js} +265 -352
  352. package/dist/Sink/index.d.ts +3 -0
  353. package/dist/Sink/index.d.ts.map +1 -0
  354. package/dist/Sink/index.js +2 -0
  355. package/dist/Sink.d.ts +2 -0
  356. package/dist/Sink.d.ts.map +1 -0
  357. package/dist/Sink.js +1 -0
  358. package/dist/Subject/Subject.d.ts +152 -0
  359. package/dist/Subject/Subject.d.ts.map +1 -0
  360. package/dist/Subject/Subject.js +272 -0
  361. package/dist/Subject/index.d.ts +2 -0
  362. package/dist/Subject/index.d.ts.map +1 -0
  363. package/dist/Subject/index.js +1 -0
  364. package/dist/Subject.d.ts +2 -0
  365. package/dist/Subject.d.ts.map +1 -0
  366. package/dist/Subject.js +1 -0
  367. package/dist/Versioned/Versioned.d.ts +176 -0
  368. package/dist/Versioned/Versioned.d.ts.map +1 -0
  369. package/dist/Versioned/Versioned.js +228 -0
  370. package/dist/Versioned/index.d.ts +2 -0
  371. package/dist/Versioned/index.d.ts.map +1 -0
  372. package/dist/Versioned/index.js +1 -0
  373. package/dist/Versioned.d.ts +2 -0
  374. package/dist/Versioned.d.ts.map +1 -0
  375. package/dist/Versioned.js +1 -0
  376. package/dist/index.d.ts +8 -0
  377. package/dist/index.d.ts.map +1 -0
  378. package/dist/index.js +7 -0
  379. package/package.json +19 -192
  380. package/src/Fx/Fx.ts +164 -0
  381. package/src/Fx/TypeId.ts +25 -0
  382. package/src/Fx/combinators/catch.ts +165 -0
  383. package/src/Fx/combinators/causes.ts +23 -0
  384. package/src/Fx/combinators/compact.ts +15 -0
  385. package/src/Fx/combinators/continueWith.ts +78 -0
  386. package/src/Fx/combinators/ensuring.ts +23 -0
  387. package/src/Fx/combinators/exhaustLatestMap.ts +74 -0
  388. package/src/Fx/combinators/exhaustLatestMapEffect.ts +25 -0
  389. package/src/Fx/combinators/exhaustMap.ts +36 -0
  390. package/src/Fx/combinators/exhaustMapEffect.ts +23 -0
  391. package/src/Fx/combinators/exit.ts +15 -0
  392. package/src/Fx/combinators/filter.ts +22 -0
  393. package/src/Fx/combinators/filterEffect.ts +31 -0
  394. package/src/Fx/combinators/filterMap.ts +23 -0
  395. package/src/Fx/combinators/filterMapEffect.ts +32 -0
  396. package/src/Fx/combinators/filterMapLoop.ts +35 -0
  397. package/src/Fx/combinators/filterMapLoopCause.ts +36 -0
  398. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +46 -0
  399. package/src/Fx/combinators/filterMapLoopEffect.ts +36 -0
  400. package/src/Fx/combinators/flatMap.ts +51 -0
  401. package/src/Fx/combinators/flatMapConcurrently.ts +36 -0
  402. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +26 -0
  403. package/src/Fx/combinators/flatMapEffect.ts +42 -0
  404. package/src/Fx/combinators/flip.ts +14 -0
  405. package/src/Fx/combinators/gen.ts +24 -0
  406. package/src/Fx/combinators/genScoped.ts +24 -0
  407. package/src/Fx/combinators/index.ts +51 -0
  408. package/src/Fx/combinators/keyed.ts +369 -0
  409. package/src/Fx/combinators/loop.ts +27 -0
  410. package/src/Fx/combinators/loopCause.ts +34 -0
  411. package/src/Fx/combinators/loopCauseEffect.ts +36 -0
  412. package/src/Fx/combinators/loopEffect.ts +34 -0
  413. package/src/Fx/combinators/map.ts +22 -0
  414. package/src/Fx/combinators/mapEffect.ts +32 -0
  415. package/src/Fx/combinators/mergeAll.ts +22 -0
  416. package/src/Fx/combinators/mergeOrdered.ts +123 -0
  417. package/src/Fx/combinators/onError.ts +40 -0
  418. package/src/Fx/combinators/onExit.ts +82 -0
  419. package/src/Fx/combinators/onInterrupt.ts +87 -0
  420. package/src/Fx/combinators/provide.ts +62 -0
  421. package/src/Fx/combinators/skip.ts +20 -0
  422. package/src/Fx/combinators/skipRepeats.ts +15 -0
  423. package/src/Fx/combinators/skipRepeatsWith.ts +40 -0
  424. package/src/Fx/combinators/slice.ts +32 -0
  425. package/src/Fx/combinators/switchMap.ts +55 -0
  426. package/src/Fx/combinators/switchMapEffect.ts +25 -0
  427. package/src/Fx/combinators/take.ts +17 -0
  428. package/src/Fx/combinators/takeUntil.ts +50 -0
  429. package/src/Fx/combinators/tapEffect.ts +39 -0
  430. package/src/Fx/combinators/tuple.ts +79 -0
  431. package/src/Fx/combinators/unwrap.ts +21 -0
  432. package/src/Fx/combinators/unwrapScoped.ts +26 -0
  433. package/src/Fx/combinators/when.ts +64 -0
  434. package/src/Fx/combinators/withSpan.ts +24 -0
  435. package/src/Fx/constructors/at.ts +23 -0
  436. package/src/Fx/constructors/die.ts +17 -0
  437. package/src/Fx/constructors/empty.ts +10 -0
  438. package/src/Fx/constructors/fail.ts +14 -0
  439. package/src/Fx/constructors/failCause.ts +14 -0
  440. package/src/Fx/constructors/fn.ts +245 -0
  441. package/src/Fx/constructors/fromEffect.ts +24 -0
  442. package/src/Fx/constructors/fromFailures.ts +19 -0
  443. package/src/Fx/constructors/fromIterable.ts +15 -0
  444. package/src/Fx/constructors/fromSchedule.ts +18 -0
  445. package/src/Fx/constructors/fromYieldable.ts +17 -0
  446. package/src/Fx/constructors/index.ts +15 -0
  447. package/src/Fx/constructors/interrupt.ts +13 -0
  448. package/src/Fx/constructors/make.ts +103 -0
  449. package/src/Fx/constructors/periodic.ts +15 -0
  450. package/src/Fx/constructors/succeed.ts +37 -0
  451. package/src/Fx/constructors/suspend.ts +6 -0
  452. package/src/Fx/index.ts +6 -0
  453. package/src/Fx/internal/DeferredRef.ts +87 -0
  454. package/src/Fx/internal/UnionToTuple.ts +12 -0
  455. package/src/Fx/internal/diff.ts +191 -0
  456. package/src/Fx/internal/equivalence.ts +12 -0
  457. package/src/Fx/internal/multicast.ts +51 -0
  458. package/src/Fx/internal/ring-buffer.ts +60 -0
  459. package/src/Fx/internal/scope.ts +58 -0
  460. package/src/Fx/internal/yieldable.ts +31 -0
  461. package/src/Fx/run/collect.ts +79 -0
  462. package/src/Fx/run/first.ts +20 -0
  463. package/src/Fx/run/fork.ts +40 -0
  464. package/src/Fx/run/index.ts +5 -0
  465. package/src/Fx/run/observe.ts +114 -0
  466. package/src/Fx/run/runPromise.ts +32 -0
  467. package/src/Fx/stream.ts +42 -0
  468. package/src/Fx.catch.test.ts +61 -0
  469. package/src/Fx.fn.test.ts +51 -0
  470. package/src/Fx.lifecycle.test.ts +80 -0
  471. package/src/Fx.test.ts +71 -0
  472. package/src/Fx.ts +1 -2591
  473. package/src/Push/Push.ts +903 -0
  474. package/src/Push/index.ts +1 -0
  475. package/src/Push.test.ts +26 -0
  476. package/src/Push.ts +1 -480
  477. package/src/{RefArray.ts → RefSubject/RefArray.ts} +246 -248
  478. package/src/RefSubject/RefBigDecimal.test.ts +56 -0
  479. package/src/RefSubject/RefBigDecimal.ts +295 -0
  480. package/src/RefSubject/RefBigInt.test.ts +56 -0
  481. package/src/RefSubject/RefBigInt.ts +189 -0
  482. package/src/RefSubject/RefBoolean.test.ts +57 -0
  483. package/src/RefSubject/RefBoolean.ts +185 -0
  484. package/src/RefSubject/RefCause.test.ts +53 -0
  485. package/src/RefSubject/RefCause.ts +146 -0
  486. package/src/RefSubject/RefChunk.ts +510 -0
  487. package/src/RefSubject/RefDateTime.test.ts +43 -0
  488. package/src/RefSubject/RefDateTime.ts +264 -0
  489. package/src/RefSubject/RefDuration.test.ts +49 -0
  490. package/src/RefSubject/RefDuration.ts +188 -0
  491. package/src/RefSubject/RefGraph.ts +650 -0
  492. package/src/RefSubject/RefHashMap.ts +465 -0
  493. package/src/RefSubject/RefHashRing.ts +262 -0
  494. package/src/RefSubject/RefHashSet.ts +308 -0
  495. package/src/RefSubject/RefIterable.ts +445 -0
  496. package/src/RefSubject/RefOption.test.ts +67 -0
  497. package/src/RefSubject/RefOption.ts +193 -0
  498. package/src/RefSubject/RefRecord.ts +612 -0
  499. package/src/RefSubject/RefResult.test.ts +63 -0
  500. package/src/RefSubject/RefResult.ts +209 -0
  501. package/src/RefSubject/RefString.test.ts +61 -0
  502. package/src/RefSubject/RefString.ts +256 -0
  503. package/src/RefSubject/RefStruct.test.ts +60 -0
  504. package/src/RefSubject/RefStruct.ts +253 -0
  505. package/src/RefSubject/RefSubject.ts +2545 -0
  506. package/src/RefSubject/RefTrie.ts +356 -0
  507. package/src/RefSubject/RefTuple.test.ts +60 -0
  508. package/src/RefSubject/RefTuple.ts +231 -0
  509. package/src/RefSubject/index.ts +21 -0
  510. package/src/RefSubject.test.ts +65 -0
  511. package/src/RefSubject.ts +1 -2488
  512. package/src/Sink/Sink.ts +159 -0
  513. package/src/Sink/combinators.ts +993 -0
  514. package/src/Sink/index.ts +2 -0
  515. package/src/Sink.ts +1 -1044
  516. package/src/Subject/Subject.ts +441 -0
  517. package/src/Subject/index.ts +1 -0
  518. package/src/Subject.test.ts +47 -0
  519. package/src/Subject.ts +1 -330
  520. package/src/Versioned/Versioned.ts +521 -0
  521. package/src/Versioned/index.ts +1 -0
  522. package/src/Versioned.test.ts +23 -0
  523. package/src/Versioned.ts +1 -357
  524. package/src/index.ts +7 -130
  525. package/tsconfig.json +6 -0
  526. package/AsyncData/package.json +0 -6
  527. package/Emitter/package.json +0 -6
  528. package/Form/package.json +0 -6
  529. package/FormEntry/package.json +0 -6
  530. package/Fx/package.json +0 -6
  531. package/Idle/package.json +0 -6
  532. package/LICENSE +0 -21
  533. package/Match/package.json +0 -6
  534. package/Pull/package.json +0 -6
  535. package/Push/package.json +0 -6
  536. package/RefArray/package.json +0 -6
  537. package/RefChunk/package.json +0 -6
  538. package/RefHashMap/package.json +0 -6
  539. package/RefHashSet/package.json +0 -6
  540. package/RefSubject/package.json +0 -6
  541. package/Sink/package.json +0 -6
  542. package/Stream/package.json +0 -6
  543. package/Subject/package.json +0 -6
  544. package/TypeId/package.json +0 -6
  545. package/Typeclass/package.json +0 -6
  546. package/Versioned/package.json +0 -6
  547. package/dist/cjs/AsyncData.js +0 -188
  548. package/dist/cjs/AsyncData.js.map +0 -1
  549. package/dist/cjs/Emitter.js +0 -44
  550. package/dist/cjs/Emitter.js.map +0 -1
  551. package/dist/cjs/Form.js +0 -178
  552. package/dist/cjs/Form.js.map +0 -1
  553. package/dist/cjs/FormEntry.js +0 -110
  554. package/dist/cjs/FormEntry.js.map +0 -1
  555. package/dist/cjs/Fx.js +0 -998
  556. package/dist/cjs/Fx.js.map +0 -1
  557. package/dist/cjs/Idle.js +0 -190
  558. package/dist/cjs/Idle.js.map +0 -1
  559. package/dist/cjs/Match.js +0 -191
  560. package/dist/cjs/Match.js.map +0 -1
  561. package/dist/cjs/Pull.js +0 -52
  562. package/dist/cjs/Pull.js.map +0 -1
  563. package/dist/cjs/Push.js +0 -168
  564. package/dist/cjs/Push.js.map +0 -1
  565. package/dist/cjs/RefArray.js +0 -253
  566. package/dist/cjs/RefArray.js.map +0 -1
  567. package/dist/cjs/RefChunk.js +0 -212
  568. package/dist/cjs/RefChunk.js.map +0 -1
  569. package/dist/cjs/RefHashMap.js +0 -198
  570. package/dist/cjs/RefHashMap.js.map +0 -1
  571. package/dist/cjs/RefHashSet.js +0 -99
  572. package/dist/cjs/RefHashSet.js.map +0 -1
  573. package/dist/cjs/RefSubject.js +0 -1115
  574. package/dist/cjs/RefSubject.js.map +0 -1
  575. package/dist/cjs/Sink.js +0 -662
  576. package/dist/cjs/Sink.js.map +0 -1
  577. package/dist/cjs/Stream.js +0 -87
  578. package/dist/cjs/Stream.js.map +0 -1
  579. package/dist/cjs/Subject.js +0 -205
  580. package/dist/cjs/Subject.js.map +0 -1
  581. package/dist/cjs/TypeId.js +0 -32
  582. package/dist/cjs/TypeId.js.map +0 -1
  583. package/dist/cjs/Typeclass.js +0 -380
  584. package/dist/cjs/Typeclass.js.map +0 -1
  585. package/dist/cjs/Versioned.js +0 -172
  586. package/dist/cjs/Versioned.js.map +0 -1
  587. package/dist/cjs/index.js +0 -89
  588. package/dist/cjs/index.js.map +0 -1
  589. package/dist/cjs/internal/DeferredRef.js +0 -67
  590. package/dist/cjs/internal/DeferredRef.js.map +0 -1
  591. package/dist/cjs/internal/UnionToTuple.js +0 -6
  592. package/dist/cjs/internal/UnionToTuple.js.map +0 -1
  593. package/dist/cjs/internal/bounds.js +0 -26
  594. package/dist/cjs/internal/bounds.js.map +0 -1
  595. package/dist/cjs/internal/core.js +0 -1783
  596. package/dist/cjs/internal/core.js.map +0 -1
  597. package/dist/cjs/internal/diff.js +0 -122
  598. package/dist/cjs/internal/diff.js.map +0 -1
  599. package/dist/cjs/internal/effect-loop-operator.js +0 -288
  600. package/dist/cjs/internal/effect-loop-operator.js.map +0 -1
  601. package/dist/cjs/internal/effect-operator.js +0 -156
  602. package/dist/cjs/internal/effect-operator.js.map +0 -1
  603. package/dist/cjs/internal/effect-producer.js +0 -74
  604. package/dist/cjs/internal/effect-producer.js.map +0 -1
  605. package/dist/cjs/internal/helpers.js +0 -317
  606. package/dist/cjs/internal/helpers.js.map +0 -1
  607. package/dist/cjs/internal/keyed.js +0 -168
  608. package/dist/cjs/internal/keyed.js.map +0 -1
  609. package/dist/cjs/internal/loop-operator.js +0 -213
  610. package/dist/cjs/internal/loop-operator.js.map +0 -1
  611. package/dist/cjs/internal/operator.js +0 -79
  612. package/dist/cjs/internal/operator.js.map +0 -1
  613. package/dist/cjs/internal/protos.js +0 -48
  614. package/dist/cjs/internal/protos.js.map +0 -1
  615. package/dist/cjs/internal/provide.js +0 -100
  616. package/dist/cjs/internal/provide.js.map +0 -1
  617. package/dist/cjs/internal/requestIdleCallback.js +0 -22
  618. package/dist/cjs/internal/requestIdleCallback.js.map +0 -1
  619. package/dist/cjs/internal/share.js +0 -74
  620. package/dist/cjs/internal/share.js.map +0 -1
  621. package/dist/cjs/internal/strategies.js +0 -34
  622. package/dist/cjs/internal/strategies.js.map +0 -1
  623. package/dist/cjs/internal/sync-operator.js +0 -120
  624. package/dist/cjs/internal/sync-operator.js.map +0 -1
  625. package/dist/cjs/internal/sync-producer.js +0 -118
  626. package/dist/cjs/internal/sync-producer.js.map +0 -1
  627. package/dist/cjs/internal/withKey.js +0 -63
  628. package/dist/cjs/internal/withKey.js.map +0 -1
  629. package/dist/dts/AsyncData.d.ts +0 -179
  630. package/dist/dts/AsyncData.d.ts.map +0 -1
  631. package/dist/dts/Emitter.d.ts +0 -24
  632. package/dist/dts/Emitter.d.ts.map +0 -1
  633. package/dist/dts/Form.d.ts +0 -145
  634. package/dist/dts/Form.d.ts.map +0 -1
  635. package/dist/dts/FormEntry.d.ts +0 -65
  636. package/dist/dts/FormEntry.d.ts.map +0 -1
  637. package/dist/dts/Fx.d.ts +0 -1678
  638. package/dist/dts/Fx.d.ts.map +0 -1
  639. package/dist/dts/Idle.d.ts +0 -84
  640. package/dist/dts/Idle.d.ts.map +0 -1
  641. package/dist/dts/Match.d.ts +0 -60
  642. package/dist/dts/Match.d.ts.map +0 -1
  643. package/dist/dts/Pull.d.ts +0 -37
  644. package/dist/dts/Pull.d.ts.map +0 -1
  645. package/dist/dts/Push.d.ts +0 -176
  646. package/dist/dts/Push.d.ts.map +0 -1
  647. package/dist/dts/RefArray.d.ts.map +0 -1
  648. package/dist/dts/RefChunk.d.ts.map +0 -1
  649. package/dist/dts/RefHashMap.d.ts +0 -189
  650. package/dist/dts/RefHashMap.d.ts.map +0 -1
  651. package/dist/dts/RefHashSet.d.ts +0 -100
  652. package/dist/dts/RefHashSet.d.ts.map +0 -1
  653. package/dist/dts/RefSubject.d.ts +0 -601
  654. package/dist/dts/RefSubject.d.ts.map +0 -1
  655. package/dist/dts/Sink.d.ts +0 -252
  656. package/dist/dts/Sink.d.ts.map +0 -1
  657. package/dist/dts/Stream.d.ts +0 -66
  658. package/dist/dts/Stream.d.ts.map +0 -1
  659. package/dist/dts/Subject.d.ts +0 -61
  660. package/dist/dts/Subject.d.ts.map +0 -1
  661. package/dist/dts/TypeId.d.ts +0 -51
  662. package/dist/dts/TypeId.d.ts.map +0 -1
  663. package/dist/dts/Typeclass.d.ts +0 -284
  664. package/dist/dts/Typeclass.d.ts.map +0 -1
  665. package/dist/dts/Versioned.d.ts +0 -117
  666. package/dist/dts/Versioned.d.ts.map +0 -1
  667. package/dist/dts/index.d.ts +0 -111
  668. package/dist/dts/index.d.ts.map +0 -1
  669. package/dist/dts/internal/DeferredRef.d.ts +0 -22
  670. package/dist/dts/internal/DeferredRef.d.ts.map +0 -1
  671. package/dist/dts/internal/UnionToTuple.d.ts.map +0 -1
  672. package/dist/dts/internal/bounds.d.ts +0 -9
  673. package/dist/dts/internal/bounds.d.ts.map +0 -1
  674. package/dist/dts/internal/core.d.ts +0 -237
  675. package/dist/dts/internal/core.d.ts.map +0 -1
  676. package/dist/dts/internal/diff.d.ts.map +0 -1
  677. package/dist/dts/internal/effect-loop-operator.d.ts +0 -34
  678. package/dist/dts/internal/effect-loop-operator.d.ts.map +0 -1
  679. package/dist/dts/internal/effect-operator.d.ts +0 -40
  680. package/dist/dts/internal/effect-operator.d.ts.map +0 -1
  681. package/dist/dts/internal/effect-producer.d.ts +0 -25
  682. package/dist/dts/internal/effect-producer.d.ts.map +0 -1
  683. package/dist/dts/internal/helpers.d.ts +0 -60
  684. package/dist/dts/internal/helpers.d.ts.map +0 -1
  685. package/dist/dts/internal/keyed.d.ts +0 -4
  686. package/dist/dts/internal/keyed.d.ts.map +0 -1
  687. package/dist/dts/internal/loop-operator.d.ts +0 -40
  688. package/dist/dts/internal/loop-operator.d.ts.map +0 -1
  689. package/dist/dts/internal/operator.d.ts +0 -16
  690. package/dist/dts/internal/operator.d.ts.map +0 -1
  691. package/dist/dts/internal/protos.d.ts +0 -23
  692. package/dist/dts/internal/protos.d.ts.map +0 -1
  693. package/dist/dts/internal/provide.d.ts +0 -46
  694. package/dist/dts/internal/provide.d.ts.map +0 -1
  695. package/dist/dts/internal/requestIdleCallback.d.ts +0 -3
  696. package/dist/dts/internal/requestIdleCallback.d.ts.map +0 -1
  697. package/dist/dts/internal/share.d.ts +0 -33
  698. package/dist/dts/internal/share.d.ts.map +0 -1
  699. package/dist/dts/internal/strategies.d.ts +0 -9
  700. package/dist/dts/internal/strategies.d.ts.map +0 -1
  701. package/dist/dts/internal/sync-operator.d.ts +0 -32
  702. package/dist/dts/internal/sync-operator.d.ts.map +0 -1
  703. package/dist/dts/internal/sync-producer.d.ts +0 -36
  704. package/dist/dts/internal/sync-producer.d.ts.map +0 -1
  705. package/dist/dts/internal/withKey.d.ts +0 -4
  706. package/dist/dts/internal/withKey.d.ts.map +0 -1
  707. package/dist/esm/AsyncData.js +0 -156
  708. package/dist/esm/AsyncData.js.map +0 -1
  709. package/dist/esm/Emitter.js +0 -33
  710. package/dist/esm/Emitter.js.map +0 -1
  711. package/dist/esm/Form.js +0 -163
  712. package/dist/esm/Form.js.map +0 -1
  713. package/dist/esm/FormEntry.js +0 -100
  714. package/dist/esm/FormEntry.js.map +0 -1
  715. package/dist/esm/Fx.js +0 -984
  716. package/dist/esm/Fx.js.map +0 -1
  717. package/dist/esm/Idle.js +0 -178
  718. package/dist/esm/Idle.js.map +0 -1
  719. package/dist/esm/Match.js +0 -185
  720. package/dist/esm/Match.js.map +0 -1
  721. package/dist/esm/Pull.js +0 -41
  722. package/dist/esm/Pull.js.map +0 -1
  723. package/dist/esm/Push.js +0 -159
  724. package/dist/esm/Push.js.map +0 -1
  725. package/dist/esm/RefArray.js.map +0 -1
  726. package/dist/esm/RefChunk.js.map +0 -1
  727. package/dist/esm/RefHashMap.js +0 -176
  728. package/dist/esm/RefHashMap.js.map +0 -1
  729. package/dist/esm/RefHashSet.js +0 -86
  730. package/dist/esm/RefHashSet.js.map +0 -1
  731. package/dist/esm/RefSubject.js +0 -1076
  732. package/dist/esm/RefSubject.js.map +0 -1
  733. package/dist/esm/Sink.js.map +0 -1
  734. package/dist/esm/Stream.js +0 -76
  735. package/dist/esm/Stream.js.map +0 -1
  736. package/dist/esm/Subject.js +0 -198
  737. package/dist/esm/Subject.js.map +0 -1
  738. package/dist/esm/TypeId.js +0 -26
  739. package/dist/esm/TypeId.js.map +0 -1
  740. package/dist/esm/Typeclass.js +0 -375
  741. package/dist/esm/Typeclass.js.map +0 -1
  742. package/dist/esm/Versioned.js +0 -149
  743. package/dist/esm/Versioned.js.map +0 -1
  744. package/dist/esm/index.js +0 -111
  745. package/dist/esm/index.js.map +0 -1
  746. package/dist/esm/internal/DeferredRef.js.map +0 -1
  747. package/dist/esm/internal/UnionToTuple.js +0 -2
  748. package/dist/esm/internal/UnionToTuple.js.map +0 -1
  749. package/dist/esm/internal/bounds.js +0 -13
  750. package/dist/esm/internal/bounds.js.map +0 -1
  751. package/dist/esm/internal/core.js +0 -1647
  752. package/dist/esm/internal/core.js.map +0 -1
  753. package/dist/esm/internal/diff.js.map +0 -1
  754. package/dist/esm/internal/effect-loop-operator.js +0 -269
  755. package/dist/esm/internal/effect-loop-operator.js.map +0 -1
  756. package/dist/esm/internal/effect-operator.js +0 -134
  757. package/dist/esm/internal/effect-operator.js.map +0 -1
  758. package/dist/esm/internal/effect-producer.js +0 -47
  759. package/dist/esm/internal/effect-producer.js.map +0 -1
  760. package/dist/esm/internal/helpers.js +0 -299
  761. package/dist/esm/internal/helpers.js.map +0 -1
  762. package/dist/esm/internal/keyed.js +0 -153
  763. package/dist/esm/internal/keyed.js.map +0 -1
  764. package/dist/esm/internal/loop-operator.js +0 -186
  765. package/dist/esm/internal/loop-operator.js.map +0 -1
  766. package/dist/esm/internal/operator.js +0 -68
  767. package/dist/esm/internal/operator.js.map +0 -1
  768. package/dist/esm/internal/protos.js +0 -39
  769. package/dist/esm/internal/protos.js.map +0 -1
  770. package/dist/esm/internal/provide.js +0 -72
  771. package/dist/esm/internal/provide.js.map +0 -1
  772. package/dist/esm/internal/requestIdleCallback.js +0 -16
  773. package/dist/esm/internal/requestIdleCallback.js.map +0 -1
  774. package/dist/esm/internal/share.js +0 -62
  775. package/dist/esm/internal/share.js.map +0 -1
  776. package/dist/esm/internal/strategies.js +0 -8
  777. package/dist/esm/internal/strategies.js.map +0 -1
  778. package/dist/esm/internal/sync-operator.js +0 -95
  779. package/dist/esm/internal/sync-operator.js.map +0 -1
  780. package/dist/esm/internal/sync-producer.js +0 -90
  781. package/dist/esm/internal/sync-producer.js.map +0 -1
  782. package/dist/esm/internal/withKey.js +0 -56
  783. package/dist/esm/internal/withKey.js.map +0 -1
  784. package/dist/esm/package.json +0 -4
  785. package/src/AsyncData.ts +0 -453
  786. package/src/Emitter.ts +0 -59
  787. package/src/Form.ts +0 -489
  788. package/src/FormEntry.ts +0 -214
  789. package/src/Idle.ts +0 -294
  790. package/src/Match.ts +0 -314
  791. package/src/Pull.ts +0 -95
  792. package/src/RefChunk.ts +0 -407
  793. package/src/RefHashMap.ts +0 -335
  794. package/src/RefHashSet.ts +0 -179
  795. package/src/Stream.ts +0 -140
  796. package/src/TypeId.ts +0 -59
  797. package/src/Typeclass.ts +0 -459
  798. package/src/internal/DeferredRef.ts +0 -72
  799. package/src/internal/UnionToTuple.ts +0 -11
  800. package/src/internal/bounds.ts +0 -21
  801. package/src/internal/core.ts +0 -3091
  802. package/src/internal/diff.ts +0 -171
  803. package/src/internal/effect-loop-operator.ts +0 -466
  804. package/src/internal/effect-operator.ts +0 -317
  805. package/src/internal/effect-producer.ts +0 -125
  806. package/src/internal/helpers.ts +0 -538
  807. package/src/internal/keyed.ts +0 -235
  808. package/src/internal/loop-operator.ts +0 -266
  809. package/src/internal/operator.ts +0 -87
  810. package/src/internal/protos.ts +0 -57
  811. package/src/internal/provide.ts +0 -151
  812. package/src/internal/requestIdleCallback.ts +0 -19
  813. package/src/internal/share.ts +0 -97
  814. package/src/internal/strategies.ts +0 -15
  815. package/src/internal/sync-operator.ts +0 -166
  816. package/src/internal/sync-producer.ts +0 -148
  817. package/src/internal/withKey.ts +0 -82
  818. /package/dist/{dts → Fx}/internal/UnionToTuple.d.ts +0 -0
package/src/Fx.ts CHANGED
@@ -1,2591 +1 @@
1
- /**
2
- * Fx is a push-based reactive primitive built atop of Effect.
3
- * @since 1.20.0
4
- */
5
-
6
- import type * as Ctx from "@typed/context"
7
- import * as Cause from "effect/Cause"
8
- import type * as ConfigProvider from "effect/ConfigProvider"
9
- import type * as Duration from "effect/Duration"
10
- import * as Effect from "effect/Effect"
11
- import * as Either from "effect/Either"
12
- import type * as Equivalence from "effect/Equivalence"
13
- import type * as ExecutionStrategy from "effect/ExecutionStrategy"
14
- import type * as Exit from "effect/Exit"
15
- import type * as Fiber from "effect/Fiber"
16
- import type * as FiberId from "effect/FiberId"
17
- import type * as FiberRef from "effect/FiberRef"
18
- import { dual, identity } from "effect/Function"
19
- import type * as HashSet from "effect/HashSet"
20
- import * as Layer from "effect/Layer"
21
- import * as Option from "effect/Option"
22
- import type * as Pipeable from "effect/Pipeable"
23
- import type * as Predicate from "effect/Predicate"
24
- import { hasProperty } from "effect/Predicate"
25
- import type * as PubSub from "effect/PubSub"
26
- import * as Queue from "effect/Queue"
27
- import type * as Request from "effect/Request"
28
- import type * as Runtime from "effect/Runtime"
29
- import * as Schedule from "effect/Schedule"
30
- import type * as Scope from "effect/Scope"
31
- import type * as Tracer from "effect/Tracer"
32
- import type * as Types from "effect/Types"
33
- import type * as Utils from "effect/Utils"
34
- import * as Emitter from "./Emitter.js"
35
- import * as core from "./internal/core.js"
36
- import * as coreKeyed from "./internal/keyed.js"
37
- import * as protos from "./internal/protos.js"
38
- import * as coreShare from "./internal/share.js"
39
- import * as strategies from "./internal/strategies.js"
40
- import * as coreWithKey from "./internal/withKey.js"
41
- import { type RefSubject, transform } from "./RefSubject.js"
42
- import * as Sink from "./Sink.js"
43
- import type * as Subject from "./Subject.js"
44
- import { FxTypeId } from "./TypeId.js"
45
-
46
- /**
47
- * Fx is a push-based reactive primitive built atop of Effect.
48
- * @since 1.20.0
49
- */
50
- export interface Fx<out A, out E = never, out R = never> extends Pipeable.Pipeable {
51
- readonly [FxTypeId]: Fx.Variance<A, E, R>
52
-
53
- /**
54
- * @since 1.20.0
55
- */
56
- run<R2 = never>(sink: Sink.Sink<A, E, R2>): Effect.Effect<unknown, never, R | R2>
57
- }
58
-
59
- /**
60
- * @since 1.20.0
61
- */
62
- export namespace Fx {
63
- /**
64
- * @since 1.20.0
65
- */
66
- export interface Variance<A, E, R> {
67
- readonly _R: Types.Covariant<R>
68
- readonly _E: Types.Covariant<E>
69
- readonly _A: Types.Covariant<A>
70
- }
71
-
72
- /**
73
- * @since 1.20.0
74
- */
75
- export type Context<T> = T extends Fx<infer _A, infer _E, infer R> ? R : never
76
-
77
- /**
78
- * @since 1.20.0
79
- */
80
- export type Error<T> = T extends Fx<infer _A, infer E, infer _R> ? E : never
81
-
82
- /**
83
- * @since 1.20.0
84
- */
85
- export type Success<T> = T extends Fx<infer A, infer _E, infer _R> ? A : never
86
-
87
- /**
88
- * @since 1.20.0
89
- */
90
- export type Unify<T> = [T] extends [Fx<infer A, infer E, infer R>] ? Fx<A, E, R> : never
91
- }
92
-
93
- /**
94
- * @since 1.20.0
95
- */
96
- export type Context<T> = Fx.Context<T>
97
-
98
- /**
99
- * @since 1.20.0
100
- */
101
- export type Error<T> = Fx.Error<T>
102
-
103
- /**
104
- * @since 1.20.0
105
- */
106
- export type Success<T> = Fx.Success<T>
107
-
108
- /**
109
- * @since 1.20.0
110
- */
111
- export type Unify<T> = Fx.Unify<T>
112
-
113
- /**
114
- * @since 1.20.0
115
- */
116
- export const unify = <T extends Fx<any, any, any>>(fx: T): Unify<T> => fx as any
117
-
118
- /**
119
- * @since 1.20.0
120
- */
121
- export function isFx<A, E, R>(u: unknown): u is Fx<A, E, R> {
122
- return u === null ? false : hasProperty(u, FxTypeId)
123
- }
124
-
125
- /**
126
- * FlattenStrategy is a representation of how higher-order effect operators should flatten
127
- * nested Fx.
128
- *
129
- * @since 1.20.0
130
- * @category FlattenStrategy
131
- */
132
- export type FlattenStrategy = Unbounded | Bounded | Switch | Exhaust | ExhaustLatest
133
-
134
- /**
135
- * Strategy which will allow for an unbounded number of concurrent effects to be run.
136
- * @since 1.20.0
137
- * @category FlattenStrategy
138
- */
139
- export interface Unbounded {
140
- readonly _tag: "Unbounded"
141
- }
142
-
143
- /**
144
- * Singleton instance of Unbounded
145
- * @since 1.20.0
146
- * @category FlattenStrategy
147
- */
148
- export const Unbounded: Unbounded = strategies.Unbounded
149
-
150
- /**
151
- * Strategy which will allow for a bounded number of concurrent effects to be run.
152
- * @since 1.20.0
153
- * @category FlattenStrategy
154
- */
155
- export interface Bounded {
156
- readonly _tag: "Bounded"
157
- readonly capacity: number
158
- }
159
-
160
- /**
161
- * Construct a Bounded strategy
162
- * @since 1.20.0
163
- * @category FlattenStrategy
164
- */
165
- export const Bounded: (capacity: number) => Bounded = strategies.Bounded
166
-
167
- /**
168
- * Strategy which will switch to a new effect as soon as it is available.
169
- * @since 1.20.0
170
- * @category FlattenStrategy
171
- */
172
- export interface Switch {
173
- readonly _tag: "Switch"
174
- }
175
-
176
- /**
177
- * Singleton instance of Switch
178
- * @since 1.20.0
179
- * @category FlattenStrategy
180
- */
181
- export const Switch: Switch = strategies.Switch
182
-
183
- /**
184
- * Strategy which will always favor the first Fx, dropping any Fx emitted while
185
- * the first Fx is still running. When the first Fx finished, the next event
186
- * will execute.
187
- *
188
- * @since 1.20.0
189
- * @category FlattenStrategy
190
- */
191
- export interface Exhaust {
192
- readonly _tag: "Exhaust"
193
- }
194
-
195
- /**
196
- * Singleton instance of Exhaust
197
- * @since 1.20.0
198
- * @category FlattenStrategy
199
- */
200
- export const Exhaust: Exhaust = strategies.Exhaust
201
-
202
- /**
203
- * Strategy which will always favor the latest Fx, dropping any Fx emitted while
204
- * the latest Fx is still running. When the latest Fx finishes, the last seend event
205
- * will execute.
206
- *
207
- * @since 1.20.0
208
- * @category FlattenStrategy
209
- */
210
- export interface ExhaustLatest {
211
- readonly _tag: "ExhaustLatest"
212
- }
213
-
214
- /**
215
- * Singleton instance of ExhaustLatest
216
- * @since 1.20.0
217
- * @category FlattenStrategy
218
- */
219
- export const ExhaustLatest: ExhaustLatest = strategies.ExhaustLatest
220
-
221
- /**
222
- * MergeStrategy is a representation of how multiple Fx should be merged together.
223
- * @since 1.20.0
224
- * @category MergeStrategy
225
- */
226
- export type MergeStrategy = Unordered | Ordered | Switch
227
-
228
- /**
229
- * Strategy which will merge Fx in an unordered fashion.
230
- * @since 1.20.0
231
- * @category MergeStrategy
232
- */
233
- export interface Unordered {
234
- readonly _tag: "Unordered"
235
- readonly concurrency: number
236
- }
237
-
238
- /**
239
- * Construct an Unordered strategy
240
- * @since 1.20.0
241
- * @category MergeStrategy
242
- */
243
- export const Unordered: (concurrency: number) => Unordered = strategies.Unordered
244
-
245
- /**
246
- * Strategy which will merge Fx in an ordered fashion with
247
- * the specified level of concurrency.
248
- * @since 1.20.0
249
- * @category MergeStrategy
250
- */
251
- export interface Ordered {
252
- readonly _tag: "Ordered"
253
- readonly concurrency: number
254
- }
255
-
256
- /**
257
- * Construct an Ordered strategy
258
- * @since 1.20.0
259
- * @category MergeStrategy
260
- */
261
- export const Ordered: (concurrency: number) => Ordered = strategies.Ordered
262
-
263
- /* #endregion */
264
-
265
- /**
266
- * Type-alias for a Effect.forkIn(scope) that returns a Fiber
267
- * @since 1.20.0
268
- * @category models
269
- */
270
- export type ScopedFork = <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>
271
-
272
- /**
273
- * Type-alias for Effect.forkIn(scope) which runs the Effect runtime
274
- * of an Fx in a Scope. Used in for higher-order operators.
275
- *
276
- * @since 1.20.0
277
- * @category models
278
- */
279
- export type FxFork = <R>(
280
- effect: Effect.Effect<void, never, R>
281
- ) => Effect.Effect<void, never, R>
282
-
283
- /**
284
- * @since 1.20.0
285
- */
286
- export const make: {
287
- <A, E, R>(run: (sink: Sink.Sink<A, E>) => Effect.Effect<unknown, never, R>): Fx<A, E, R>
288
- <A, E>(run: (sink: Sink.Sink<A, E>) => Effect.Effect<unknown>): Fx<A, E>
289
- <A>(run: (sink: Sink.Sink<A>) => Effect.Effect<unknown>): Fx<A>
290
- } = core.make
291
-
292
- /**
293
- * @since 1.20.0
294
- */
295
- export const succeed: <A>(value: A) => Fx<A> = core.succeed
296
-
297
- /**
298
- * @since 1.20.0
299
- */
300
- export const sync: <A>(f: () => A) => Fx<A> = core.fromSync
301
-
302
- /**
303
- * @since 1.20.0
304
- */
305
- export const fromArray: <const A extends ReadonlyArray<any>>(array: A) => Fx<A[number]> = core.fromArray
306
-
307
- /**
308
- * @since 1.20.0
309
- */
310
- export const fromIterable: <A>(iterable: Iterable<A>) => Fx<A> = core.fromIterable
311
-
312
- /**
313
- * @since 1.20.0
314
- */
315
- export const fromEffect: <A, E, R>(effect: Effect.Effect<A, E, R>) => Fx<A, E, R> = core.fromEffect
316
-
317
- /**
318
- * @since 1.20.0
319
- */
320
- export const fromScheduled: {
321
- <R2, I, O>(
322
- schedule: Schedule.Schedule<O, I, R2>
323
- ): <E, R>(input: Effect.Effect<I, E, R>) => Fx<O, E, R | R2>
324
-
325
- <I, E, R, R2, O>(
326
- input: Effect.Effect<I, E, R>,
327
- schedule: Schedule.Schedule<O, I, R2>
328
- ): Fx<O, E, R | R2>
329
- } = dual(2, core.fromScheduled)
330
-
331
- /**
332
- * @since 1.20.0
333
- */
334
- export const schedule: {
335
- <R2, O>(
336
- schedule: Schedule.Schedule<O, unknown, R2>
337
- ): <A, E, R>(input: Effect.Effect<A, E, R>) => Fx<A, E, R | R2>
338
-
339
- <A, E, R, R2, O>(
340
- input: Effect.Effect<A, E, R>,
341
- schedule: Schedule.Schedule<O, unknown, R2>
342
- ): Fx<A, E, R | R2>
343
- } = dual(2, core.schedule)
344
-
345
- /**
346
- * @since 1.20.0
347
- */
348
- export const periodic: {
349
- (period: Duration.DurationInput): <A, E, R>(iterator: Effect.Effect<A, E, R>) => Fx<A, E, R>
350
- <A, E, R>(iterator: Effect.Effect<A, E, R>, period: Duration.DurationInput): Fx<A, E, R>
351
- } = dual(2, <A, E, R>(
352
- iterator: Effect.Effect<A, E, R>,
353
- period: Duration.DurationInput
354
- ): Fx<A, E, R> => continueWith(fromEffect(iterator), () => schedule(iterator, Schedule.spaced(period))))
355
-
356
- /**
357
- * @since 1.20.0
358
- */
359
- export const failCause: <E>(cause: Cause.Cause<E>) => Fx<never, E> = core.failCause
360
-
361
- /**
362
- * @since 1.20.0
363
- */
364
- export const fail: <E>(error: E) => Fx<never, E> = core.fail
365
-
366
- /**
367
- * @since 1.20.0
368
- */
369
- export const die: (error: unknown) => Fx<never> = core.die
370
-
371
- /**
372
- * @since 1.20.0
373
- */
374
- export const map: {
375
- <A, B>(f: (a: A) => B): <E, R>(fx: Fx<A, E, R>) => Fx<B, E, R>
376
- <A, E, R, B>(fx: Fx<A, E, R>, f: (a: A) => B): Fx<B, E, R>
377
- } = dual(2, core.map)
378
-
379
- /**
380
- * @since 1.20.0
381
- */
382
- export const filter: {
383
- <A, B extends A>(f: Predicate.Refinement<A, B>): <E, R>(fx: Fx<A, E, R>) => Fx<B, E, R>
384
- <A>(f: Predicate.Predicate<A>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
385
- <A, E, R, B extends A>(fx: Fx<A, E, R>, f: Predicate.Refinement<A, B>): Fx<B, E, R>
386
- <A, E, R>(fx: Fx<A, E, R>, f: Predicate.Predicate<A>): Fx<A, E, R>
387
- } = dual(2, core.filter)
388
-
389
- /**
390
- * @since 1.20.0
391
- */
392
- export const filterMap: {
393
- <A, B>(f: (a: A) => Option.Option<B>): <E, R>(fx: Fx<A, E, R>) => Fx<B, E, R>
394
- <A, E, R, B>(fx: Fx<A, E, R>, f: (a: A) => Option.Option<B>): Fx<B, E, R>
395
- } = dual(2, core.filterMap)
396
-
397
- /**
398
- * @since 1.20.0
399
- */
400
- export const compact = <A, E, R>(fx: Fx<Option.Option<A>, E, R>): Fx<A, E, R> => filterMap(fx, identity)
401
-
402
- /**
403
- * @since 1.20.0
404
- */
405
- export const mapEffect: {
406
- <A, B, E2, R2>(f: (a: A) => Effect.Effect<B, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2>
407
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<B, E2, R2>): Fx<B, E | E2, R | R2>
408
- } = dual(2, core.mapEffect)
409
-
410
- /**
411
- * @since 1.20.0
412
- */
413
- export const filterMapEffect: {
414
- <A, B, E2, R2>(f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2>
415
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>): Fx<B, E | E2, R | R2>
416
- } = dual(2, core.filterMapEffect)
417
-
418
- /**
419
- * @since 1.20.0
420
- */
421
- export const filterEffect: {
422
- <A, E2, R2>(f: (a: A) => Effect.Effect<boolean, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>
423
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<boolean, E2, R2>): Fx<A, E | E2, R | R2>
424
- } = dual(2, core.filterEffect)
425
-
426
- /**
427
- * @since 1.20.0
428
- */
429
- export const tapEffect: {
430
- <A, E2, R2>(f: (a: A) => Effect.Effect<unknown, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>
431
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<unknown, E2, R2>): Fx<A, E | E2, R | R2>
432
- } = dual(2, core.tapEffect)
433
-
434
- /**
435
- * @since 1.20.0
436
- */
437
- export const tap: {
438
- <A>(f: (a: A) => unknown): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
439
- <A, E, R>(fx: Fx<A, E, R>, f: (a: A) => unknown): Fx<A, E, R>
440
- } = dual(2, (fx, f) => tapEffect(fx, (a) => Effect.sync(() => f(a))))
441
-
442
- /**
443
- * @since 1.20.0
444
- */
445
- export const loop: {
446
- <B, A, C>(seed: B, f: (acc: B, a: A) => readonly [C, B]): <E, R>(fx: Fx<A, E, R>) => Fx<C, E, R>
447
- <A, E, R, B, C>(fx: Fx<A, E, R>, seed: B, f: (acc: B, a: A) => readonly [C, B]): Fx<C, E, R>
448
- } = dual(3, core.loop)
449
-
450
- /**
451
- * @since 1.20.0
452
- */
453
- export const filterMapLoop: {
454
- <B, A, C>(seed: B, f: (acc: B, a: A) => readonly [Option.Option<C>, B]): <E, R>(fx: Fx<A, E, R>) => Fx<C, E, R>
455
- <A, E, R, B, C>(fx: Fx<A, E, R>, seed: B, f: (acc: B, a: A) => readonly [Option.Option<C>, B]): Fx<C, E, R>
456
- } = dual(3, core.filterMapLoop)
457
-
458
- /**
459
- * @since 1.20.0
460
- */
461
- export const loopEffect: {
462
- <B, E2, R2, A, C>(
463
- seed: B,
464
- f: (acc: B, a: A) => Effect.Effect<readonly [C, B], E2, R2>
465
- ): <E, R>(fx: Fx<A, E, R>) => Fx<C, E | E2, R | R2>
466
- <A, E, R, B, E2, R2, C>(
467
- fx: Fx<A, E, R>,
468
- seed: B,
469
- f: (acc: B, a: A) => Effect.Effect<readonly [C, B], E2, R2>
470
- ): Fx<C, E | E2, R | R2>
471
- } = dual(3, core.loopEffect)
472
-
473
- /**
474
- * @since 1.20.0
475
- */
476
- export const filterMapLoopEffect: {
477
- <B, E2, R2, A, C>(
478
- seed: B,
479
- f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>
480
- ): <E, R>(fx: Fx<A, E, R>) => Fx<C, E | E2, R | R2>
481
- <A, E, R, B, E2, R2, C>(
482
- fx: Fx<A, E, R>,
483
- seed: B,
484
- f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>
485
- ): Fx<C, E | E2, R | R2>
486
- } = dual(3, core.filterMapLoopEffect)
487
-
488
- /**
489
- * @since 1.20.0
490
- */
491
- export const observe: {
492
- <A, B, E2, R2>(f: (a: A) => Effect.Effect<B, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Effect.Effect<void, E | E2, R | R2>
493
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<B, E2, R2>): Effect.Effect<void, E | E2, R | R2>
494
- } = dual(2, core.observe)
495
-
496
- /**
497
- * @since 1.20.0
498
- */
499
- export const drain: <A, E, R>(fx: Fx<A, E, R>) => Effect.Effect<void, E, R> = core.drain
500
-
501
- /**
502
- * @since 1.20.0
503
- */
504
- export const reduce: {
505
- <A, B>(seed: B, f: (acc: B, a: A) => B): <E, R>(fx: Fx<A, E, R>) => Effect.Effect<B, E, R>
506
- <A, E, R, B>(fx: Fx<A, E, R>, seed: B, f: (acc: B, a: A) => B): Effect.Effect<B, E, R>
507
- } = dual(3, core.reduce)
508
-
509
- /**
510
- * @since 1.20.0
511
- */
512
- export const toReadonlyArray: <A, E, R>(fx: Fx<A, E, R>) => Effect.Effect<ReadonlyArray<A>, E, R> = core.toReadonlyArray
513
-
514
- /**
515
- * @since 1.20.0
516
- */
517
- export const slice: {
518
- (drop: number, take: number): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
519
- <A, E, R>(fx: Fx<A, E, R>, drop: number, take: number): Fx<A, E, R>
520
- } = dual(3, core.slice)
521
-
522
- /**
523
- * @since 1.20.0
524
- */
525
- export const take: {
526
- (n: number): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
527
- <A, E, R>(fx: Fx<A, E, R>, n: number): Fx<A, E, R>
528
- } = dual(2, core.take)
529
-
530
- /**
531
- * @since 1.20.0
532
- */
533
- export const drop: {
534
- (n: number): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
535
- <A, E, R>(fx: Fx<A, E, R>, n: number): Fx<A, E, R>
536
- } = dual(2, core.drop)
537
-
538
- /**
539
- * @since 1.20.0
540
- */
541
- export const skipRepeats: <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R> = core.skipRepeats
542
-
543
- /**
544
- * @since 1.20.0
545
- */
546
- export const skipRepeatsWith: {
547
- <A>(eq: Equivalence.Equivalence<A>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
548
- <A, E, R>(fx: Fx<A, E, R>, eq: Equivalence.Equivalence<A>): Fx<A, E, R>
549
- } = dual(2, core.skipRepeatsWith)
550
-
551
- /**
552
- * @since 1.20.0
553
- */
554
- export const empty: Fx<never> = core.empty
555
-
556
- /**
557
- * @since 1.20.0
558
- */
559
- export const never: Fx<never> = core.never
560
-
561
- /**
562
- * @since 1.20.0
563
- */
564
- export const padWith: {
565
- <B, C>(start: Iterable<B>, end: Iterable<C>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B | C, E, R>
566
- <A, E, R, B, C>(fx: Fx<A, E, R>, start: Iterable<B>, end: Iterable<C>): Fx<A | B | C, E, R>
567
- } = dual(3, core.padWith)
568
-
569
- /**
570
- * @since 1.20.0
571
- */
572
- export const prependAll: {
573
- <B>(start: Iterable<B>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B, E, R>
574
- <A, E, R, B>(fx: Fx<A, E, R>, start: Iterable<B>): Fx<A | B, E, R>
575
- } = dual(2, core.prependAll)
576
-
577
- /**
578
- * @since 1.20.0
579
- */
580
- export const appendAll: {
581
- <C>(end: Iterable<C>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | C, E, R>
582
- <A, E, R, C>(fx: Fx<A, E, R>, end: Iterable<C>): Fx<A | C, E, R>
583
- } = dual(2, core.appendAll)
584
-
585
- /**
586
- * @since 1.20.0
587
- */
588
- export const prepend: {
589
- <B>(start: B): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B, E, R>
590
- <A, E, R, B>(fx: Fx<A, E, R>, start: B): Fx<A | B, E, R>
591
- } = dual(2, core.prepend)
592
-
593
- /**
594
- * @since 1.20.0
595
- */
596
- export const append: {
597
- <C>(end: C): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | C, E, R>
598
- <A, E, R, C>(fx: Fx<A, E, R>, end: C): Fx<A | C, E, R>
599
- } = dual(2, core.append)
600
-
601
- /**
602
- * @since 1.20.0
603
- */
604
- export const scan: {
605
- <B, A>(seed: B, f: (b: B, a: A) => B): <E, R>(fx: Fx<A, E, R>) => Fx<B, E, R>
606
- <A, E, R, B>(fx: Fx<A, E, R>, seed: B, f: (b: B, a: A) => B): Fx<B, E, R>
607
- } = dual(3, core.scan)
608
-
609
- /**
610
- * @since 1.20.0
611
- */
612
- export const flatMapWithStrategy: {
613
- <A, B, E2, R2>(
614
- f: (a: A) => Fx<B, E2, R2>,
615
- strategy: FlattenStrategy,
616
- executionStrategy?: ExecutionStrategy.ExecutionStrategy
617
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
618
-
619
- <A, E, R, B, E2, R2>(
620
- fx: Fx<A, E, R>,
621
- f: (a: A) => Fx<B, E2, R2>,
622
- strategy: FlattenStrategy,
623
- executionStrategy?: ExecutionStrategy.ExecutionStrategy
624
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
625
- } = dual(4, core.flatMapWithStrategy)
626
-
627
- const isDataFirstFx = (args: IArguments) => isFx(args[0])
628
-
629
- /**
630
- * @since 1.20.0
631
- */
632
- export const flatMap: {
633
- <A, B, E2, R2>(
634
- f: (a: A) => Fx<B, E2, R2>,
635
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
636
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
637
-
638
- <A, E, R, B, E2, R2>(
639
- fx: Fx<A, E, R>,
640
- f: (a: A) => Fx<B, E2, R2>,
641
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
642
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
643
- } = dual(isDataFirstFx, core.flatMap)
644
-
645
- /**
646
- * @since 1.20.0
647
- */
648
- export const flatMapEffect: {
649
- <A, B, E2, R2>(
650
- f: (a: A) => Effect.Effect<B, E2, R2>,
651
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
652
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
653
-
654
- <A, E, R, B, E2, R2>(
655
- fx: Fx<A, E, R>,
656
- f: (a: A) => Effect.Effect<B, E2, R2>,
657
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
658
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
659
- } = dual(isDataFirstFx, core.flatMapEffect)
660
-
661
- /**
662
- * @since 1.20.0
663
- */
664
- export const switchMap: {
665
- <A, B, E2, R2>(
666
- f: (a: A) => Fx<B, E2, R2>,
667
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
668
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
669
-
670
- <A, E, R, B, E2, R2>(
671
- fx: Fx<A, E, R>,
672
- f: (a: A) => Fx<B, E2, R2>,
673
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
674
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
675
- } = dual(isDataFirstFx, core.switchMap)
676
-
677
- /**
678
- * @since 1.20.0
679
- */
680
- export const switchMapEffect: {
681
- <A, B, E2, R2>(
682
- f: (a: A) => Effect.Effect<B, E2, R2>,
683
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
684
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
685
-
686
- <A, E, R, B, E2, R2>(
687
- fx: Fx<A, E, R>,
688
- f: (a: A) => Effect.Effect<B, E2, R2>,
689
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
690
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
691
- } = dual(isDataFirstFx, core.switchMapEffect)
692
-
693
- /**
694
- * @since 1.20.0
695
- */
696
- export const exhaustMap: {
697
- <A, B, E2, R2>(
698
- f: (a: A) => Fx<B, E2, R2>,
699
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
700
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
701
-
702
- <A, E, R, B, E2, R2>(
703
- fx: Fx<A, E, R>,
704
- f: (a: A) => Fx<B, E2, R2>,
705
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
706
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
707
- } = dual(isDataFirstFx, core.exhaustMap)
708
-
709
- /**
710
- * @since 1.20.0
711
- */
712
- export const exhaustMapEffect: {
713
- <A, B, E2, R2>(
714
- f: (a: A) => Effect.Effect<B, E2, R2>,
715
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
716
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
717
-
718
- <A, E, R, B, E2, R2>(
719
- fx: Fx<A, E, R>,
720
- f: (a: A) => Effect.Effect<B, E2, R2>,
721
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
722
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
723
- } = dual(isDataFirstFx, core.exhaustMapEffect)
724
-
725
- /**
726
- * @since 1.20.0
727
- */
728
- export const exhaustMapLatest: {
729
- <A, B, E2, R2>(
730
- f: (a: A) => Fx<B, E2, R2>,
731
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
732
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
733
-
734
- <A, E, R, B, E2, R2>(
735
- fx: Fx<A, E, R>,
736
- f: (a: A) => Fx<B, E2, R2>,
737
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
738
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
739
- } = dual(isDataFirstFx, core.exhaustMapLatest)
740
-
741
- /**
742
- * @since 1.20.0
743
- */
744
- export const exhaustMapLatestEffect: {
745
- <A, B, E2, R2>(
746
- f: (a: A) => Effect.Effect<B, E2, R2>,
747
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
748
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
749
-
750
- <A, E, R, B, E2, R2>(
751
- fx: Fx<A, E, R>,
752
- f: (a: A) => Effect.Effect<B, E2, R2>,
753
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
754
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
755
- } = dual(isDataFirstFx, core.exhaustMapLatestEffect)
756
-
757
- /**
758
- * @since 1.20.0
759
- */
760
- export const flatMapConcurrently: {
761
- <A, B, E2, R2>(
762
- f: (a: A) => Fx<B, E2, R2>,
763
- capacity: number,
764
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
765
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
766
-
767
- <A, E, R, B, E2, R2>(
768
- fx: Fx<A, E, R>,
769
- f: (a: A) => Fx<B, E2, R2>,
770
- capacity: number,
771
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
772
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
773
- } = dual(isDataFirstFx, core.flatMapConcurrently)
774
-
775
- /**
776
- * @since 1.20.0
777
- */
778
- export const flatMapConcurrentlyEffect: {
779
- <A, B, E2, R2>(
780
- f: (a: A) => Effect.Effect<B, E2, R2>,
781
- capacity: number,
782
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
783
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, R | R2 | Scope.Scope>
784
-
785
- <A, E, R, B, E2, R2>(
786
- fx: Fx<A, E, R>,
787
- f: (a: A) => Effect.Effect<B, E2, R2>,
788
- capacity: number,
789
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
790
- ): Fx<B, E | E2, R | R2 | Scope.Scope>
791
- } = dual(isDataFirstFx, core.flatMapConcurrentlyEffect)
792
-
793
- /**
794
- * @since 1.20.0
795
- */
796
- export const concatMap: {
797
- <A, B, E2, R2>(
798
- f: (a: A) => Fx<B, E2, R2>,
799
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
800
- ): <E, R>(fx: Fx<A, E, R>) => Fx<B, E | E2, Scope.Scope | R | R2>
801
- <A, E, R, B, E2, R2>(
802
- fx: Fx<A, E, R>,
803
- f: (a: A) => Fx<B, E2, R2>,
804
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
805
- ): Fx<B, E | E2, Scope.Scope | R | R2>
806
- } = dual(isDataFirstFx, core.concatMap)
807
-
808
- /**
809
- * @since 1.20.0
810
- */
811
- export const fromFxEffect: <B, E, R, E2, R2>(effect: Effect.Effect<Fx<B, E2, R2>, E, R>) => Fx<B, E | E2, R | R2> =
812
- core.fromFxEffect
813
-
814
- /**
815
- * @since 1.20.0
816
- */
817
- export const continueWith: {
818
- <B, E2, R2>(f: () => Fx<B, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B, E | E2, R | R2>
819
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, f: () => Fx<B, E2, R2>): Fx<A | B, E | E2, R | R2>
820
- } = dual(2, core.continueWith)
821
-
822
- /**
823
- * @since 1.20.0
824
- */
825
- export const orElseCause: {
826
- <E, B, E2, R2>(f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2>
827
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>): Fx<A | B, E2, R | R2>
828
- } = dual(2, core.orElseCause)
829
-
830
- /**
831
- * @since 1.20.0
832
- */
833
- export const orElse: {
834
- <E, B, E2, R2>(f: (error: E) => Fx<B, E2, R2>): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2>
835
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, f: (error: E) => Fx<B, E2, R2>): Fx<A | B, E2, R | R2>
836
- } = dual(2, core.orElse)
837
-
838
- /**
839
- * @since 1.20.0
840
- */
841
- export const suspend: <A, E, R>(f: () => Fx<A, E, R>) => Fx<A, E, R> = core.suspend
842
-
843
- /**
844
- * @since 1.20.0
845
- */
846
- export const mergeWithStrategy: {
847
- (strategy: MergeStrategy): <FX extends ReadonlyArray<Fx<any, any, any>>>(
848
- fx: FX
849
- ) => Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Context<FX[number]>>
850
-
851
- <const FX extends ReadonlyArray<Fx<any, any, any>>>(
852
- fx: FX,
853
- stategy: MergeStrategy
854
- ): Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Context<FX[number]>>
855
- } = dual(2, core.mergeWithStrategy)
856
-
857
- /**
858
- * @since 1.20.0
859
- */
860
- export const merge: {
861
- <B, E2, R2>(other: Fx<B, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B, E | E2, R | R2>
862
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, other: Fx<B, E2, R2>): Fx<A | B, E | E2, R | R2>
863
- } = dual(
864
- 2,
865
- core.merge
866
- )
867
-
868
- /**
869
- * @since 1.20.0
870
- */
871
- export const mergeAll: <FX extends ReadonlyArray<Fx<any, any, any>>>(
872
- fx: FX
873
- ) => Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Context<FX[number]>> = core.mergeAll
874
-
875
- /**
876
- * @since 1.20.0
877
- */
878
- export const mergeOrdered: <FX extends ReadonlyArray<Fx<any, any, any>>>(
879
- fx: FX
880
- ) => Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Context<FX[number]>> = core.mergeOrdered
881
-
882
- /**
883
- * @since 1.20.0
884
- */
885
- export const mergeOrderedConcurrently: <FX extends ReadonlyArray<Fx<any, any, any>>>(
886
- fx: FX,
887
- concurrency: number
888
- ) => Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Context<FX[number]>> = core.mergeOrderedConcurrently
889
-
890
- /**
891
- * @since 1.20.0
892
- */
893
- export const mergeSwitch: <FX extends ReadonlyArray<Fx<any, any, any>>>(
894
- fx: FX
895
- ) => Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Context<FX[number]>> = core.mergeSwitch
896
-
897
- /**
898
- * @since 1.20.0
899
- */
900
- export const takeWhile: {
901
- <A, B extends A>(f: Predicate.Refinement<A, B>): <E, R>(fx: Fx<A, E, R>) => Fx<B, E, R>
902
- <A>(f: Predicate.Predicate<A>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
903
- <A, E, R, B extends A>(fx: Fx<A, E, R>, f: Predicate.Refinement<A, B>): Fx<B, E, R>
904
- <A, E, R>(fx: Fx<A, E, R>, f: Predicate.Predicate<A>): Fx<A, E, R>
905
- } = dual(2, core.takeWhile)
906
-
907
- /**
908
- * @since 1.20.0
909
- */
910
- export const takeUntil: {
911
- <A, B extends A>(f: Predicate.Refinement<A, B>): <E, R>(fx: Fx<A, E, R>) => Fx<Exclude<A, B>, E, R>
912
- <A>(f: Predicate.Predicate<A>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
913
- <A, E, R, B extends A>(fx: Fx<A, E, R>, f: Predicate.Refinement<A, B>): Fx<Exclude<A, B>, E, R>
914
- <A, E, R>(fx: Fx<A, E, R>, f: Predicate.Predicate<A>): Fx<A, E, R>
915
- } = dual(2, core.takeUntil)
916
-
917
- /**
918
- * @since 1.20.0
919
- */
920
- export const dropWhile: {
921
- <A, B extends A>(f: Predicate.Refinement<A, B>): <E, R>(fx: Fx<A, E, R>) => Fx<Exclude<A, B>, E, R>
922
- <A>(f: Predicate.Predicate<A>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
923
- <A, E, R, B extends A>(fx: Fx<A, E, R>, f: Predicate.Refinement<A, B>): Fx<Exclude<A, B>, E, R>
924
- <A, E, R>(fx: Fx<A, E, R>, f: Predicate.Predicate<A>): Fx<A, E, R>
925
- } = dual(2, core.dropWhile)
926
-
927
- /**
928
- * @since 1.20.0
929
- */
930
- export const dropUntil: {
931
- <A, B extends A>(f: Predicate.Refinement<A, B>): <E, R>(fx: Fx<A, E, R>) => Fx<A | B, E, R>
932
- <A>(f: Predicate.Predicate<A>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
933
- <A, E, R, B extends A>(fx: Fx<A, E, R>, f: Predicate.Refinement<A, B>): Fx<A | B, E, R>
934
- <A, E, R>(fx: Fx<A, E, R>, f: Predicate.Predicate<A>): Fx<A, E, R>
935
- } = dual(2, core.dropUntil)
936
-
937
- /**
938
- * @since 1.20.0
939
- */
940
- export const dropAfter: {
941
- <A, B extends A>(f: Predicate.Refinement<A, B>): <E, R>(fx: Fx<A, E, R>) => Fx<Exclude<A, B>, E, R>
942
- <A>(f: Predicate.Predicate<A>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
943
- <A, E, R, B extends A>(fx: Fx<A, E, R>, f: Predicate.Refinement<A, B>): Fx<Exclude<A, B>, E, R>
944
- <A, E, R>(fx: Fx<A, E, R>, f: Predicate.Predicate<A>): Fx<A, E, R>
945
- } = dual(2, core.dropAfter)
946
-
947
- /**
948
- * @since 1.20.0
949
- */
950
- export const takeWhileEffect: {
951
- <A, E2, R2>(f: (a: A) => Effect.Effect<boolean, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>
952
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<boolean, E2, R2>): Fx<A, E | E2, R | R2>
953
- } = dual(2, core.takeWhileEffect)
954
-
955
- /**
956
- * @since 1.20.0
957
- */
958
- export const takeUntiEffect: {
959
- <A, E2, R2>(f: (a: A) => Effect.Effect<boolean, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>
960
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<boolean, E2, R2>): Fx<A, E | E2, R | R2>
961
- } = dual(2, core.takeUntilEffect)
962
-
963
- /**
964
- * @since 1.20.0
965
- */
966
- export const dropWhileEffect: {
967
- <A, E2, R2>(f: (a: A) => Effect.Effect<boolean, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>
968
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<boolean, E2, R2>): Fx<A, E | E2, R | R2>
969
- } = dual(2, core.dropWhileEffect)
970
-
971
- /**
972
- * @since 1.20.0
973
- */
974
- export const dropUntilEffect: {
975
- <A, E2, R2>(f: (a: A) => Effect.Effect<boolean, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>
976
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<boolean, E2, R2>): Fx<A, E | E2, R | R2>
977
- } = dual(2, core.dropUntilEffect)
978
-
979
- /**
980
- * @since 1.20.0
981
- */
982
- export const dropAfterEffect: {
983
- <A, E2, R2>(f: (a: A) => Effect.Effect<boolean, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2>
984
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (a: A) => Effect.Effect<boolean, E2, R2>): Fx<A, E | E2, R | R2>
985
- } = dual(2, core.dropAfterEffect)
986
-
987
- /**
988
- * @since 1.20.0
989
- */
990
- export const during: {
991
- <E2, R2, A, R3, E3, B>(
992
- window: Fx<Fx<B, E3, R3>, E2, R2>
993
- ): <E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2 | E3, R | R2 | R3 | Scope.Scope>
994
- <A, E, R, E2, R2, R3, E3, B>(
995
- fx: Fx<A, E, R>,
996
- window: Fx<Fx<B, E3, R3>, E2, R2>
997
- ): Fx<A, E | E2 | E3, R | R2 | R3 | Scope.Scope>
998
- } = dual(2, core.during)
999
-
1000
- /**
1001
- * @since 1.20.0
1002
- */
1003
- export const since: {
1004
- <B, E2, R2>(window: Fx<B, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2 | Scope.Scope>
1005
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, window: Fx<B, E2, R2>): Fx<A, E | E2, R | R2 | Scope.Scope>
1006
- } = dual(2, core.since)
1007
-
1008
- /**
1009
- * @since 1.20.0
1010
- */
1011
- export const until: {
1012
- <B, E2, R2>(window: Fx<B, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R | R2 | Scope.Scope>
1013
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, window: Fx<B, E2, R2>): Fx<A, E | E2, R | R2 | Scope.Scope>
1014
- } = dual(2, core.until)
1015
-
1016
- /**
1017
- * @since 1.20.0
1018
- */
1019
- export const middleware: {
1020
- <R, A, E, R3>(
1021
- effect: (effect: Effect.Effect<unknown, never, R>) => Effect.Effect<unknown, never, R3>,
1022
- sink?: ((sink: Sink.Sink<A, E>) => Sink.Sink<A, E, R>) | undefined
1023
- ): <A, E>(fx: Fx<A, E, R>) => Fx<A, E, R3>
1024
-
1025
- <A, E, R, R3>(
1026
- fx: Fx<A, E, R>,
1027
- effect: (effect: Effect.Effect<unknown, never, R>) => Effect.Effect<unknown, never, R3>,
1028
- sink?: ((sink: Sink.Sink<A, E>) => Sink.Sink<A, E, R>) | undefined
1029
- ): Fx<A, E, R3>
1030
- } = dual(isDataFirstFx, core.middleware)
1031
-
1032
- /**
1033
- * @since 1.20.0
1034
- */
1035
- export const onExit: {
1036
- <R2>(
1037
- f: (exit: Exit.Exit<unknown>) => Effect.Effect<unknown, never, R2>
1038
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | R2>
1039
-
1040
- <A, E, R, R2>(
1041
- fx: Fx<A, E, R>,
1042
- f: (exit: Exit.Exit<unknown>) => Effect.Effect<unknown, never, R | R2>
1043
- ): Fx<A, E, R | R2>
1044
- } = dual(2, core.onExit)
1045
-
1046
- /**
1047
- * @since 1.20.0
1048
- */
1049
- export const onInterrupt: {
1050
- <R2>(
1051
- f: (interruptors: HashSet.HashSet<FiberId.FiberId>) => Effect.Effect<unknown, never, R2>
1052
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R2>
1053
- <A, E, R, R2>(
1054
- fx: Fx<A, E, R>,
1055
- f: (interruptors: HashSet.HashSet<FiberId.FiberId>) => Effect.Effect<unknown, never, R2>
1056
- ): Fx<A, E, R | R2>
1057
- } = dual(2, core.onInterrupt)
1058
-
1059
- /**
1060
- * @since 1.20.0
1061
- */
1062
- export const onError: {
1063
- <R2>(f: (cause: Cause.Cause<never>) => Effect.Effect<unknown, never, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R2>
1064
- <A, E, R, R2>(fx: Fx<A, E, R>, f: (cause: Cause.Cause<never>) => Effect.Effect<unknown, never, R2>): Fx<A, E, R | R2>
1065
- } = dual(2, core.onError)
1066
-
1067
- /**
1068
- * @since 1.20.0
1069
- */
1070
- export const scoped: <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, Scope.Scope>> = core.scoped
1071
-
1072
- /**
1073
- * @since 1.20.0
1074
- */
1075
- export const annotateLogs: {
1076
- (key: string | Record<string, unknown>, value?: unknown): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1077
- <A, E, R>(fx: Fx<A, E, R>, key: string | Record<string, unknown>, value?: unknown): Fx<A, E, R>
1078
- } = dual(isDataFirstFx, core.annotateLogs)
1079
-
1080
- /**
1081
- * @since 1.20.0
1082
- */
1083
- export const annotateSpans: {
1084
- (key: string | Record<string, unknown>, value?: unknown): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1085
- <A, E, R>(fx: Fx<A, E, R>, key: string | Record<string, unknown>, value?: unknown): Fx<A, E, R>
1086
- } = dual(isDataFirstFx, core.annotateSpans)
1087
-
1088
- /**
1089
- * @since 1.20.0
1090
- */
1091
- export const interruptible: <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R> = core.interruptible
1092
-
1093
- /**
1094
- * @since 1.20.0
1095
- */
1096
- export const uninterruptible: <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R> = core.uninterruptible
1097
-
1098
- /**
1099
- * @since 1.20.0
1100
- */
1101
- export const locally: {
1102
- <A>(self: FiberRef.FiberRef<A>, value: A): <B, E, R>(fx: Fx<B, E, R>) => Fx<B, E, R>
1103
- <B, E, R, A>(use: Fx<B, E, R>, self: FiberRef.FiberRef<A>, value: A): Fx<B, E, R>
1104
- } = dual(3, core.locally)
1105
-
1106
- /**
1107
- * @since 1.20.0
1108
- */
1109
- export const locallyWith: {
1110
- <A>(self: FiberRef.FiberRef<A>, f: (a: A) => A): <B, E, R>(fx: Fx<B, E, R>) => Fx<B, E, R>
1111
- <B, E, R, A>(use: Fx<B, E, R>, self: FiberRef.FiberRef<A>, f: (a: A) => A): Fx<B, E, R>
1112
- } = dual(3, core.locallyWith)
1113
-
1114
- /**
1115
- * @since 1.20.0
1116
- */
1117
- export const withTracerTiming: {
1118
- (enabled: boolean): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1119
- <A, E, R>(fx: Fx<A, E, R>, enabled: boolean): Fx<A, E, R>
1120
- } = dual(2, core.withTracerTiming)
1121
-
1122
- /**
1123
- * @since 1.20.0
1124
- */
1125
- export const withConcurrency: {
1126
- (concurrency: number | "unbounded"): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1127
- <A, E, R>(fx: Fx<A, E, R>, concurrency: number | "unbounded"): Fx<A, E, R>
1128
- } = dual(2, core.withConcurrency)
1129
-
1130
- /**
1131
- * @since 1.20.0
1132
- */
1133
- export const withConfigProvider: {
1134
- (configProvider: ConfigProvider.ConfigProvider): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1135
- <A, E, R>(fx: Fx<A, E, R>, configProvider: ConfigProvider.ConfigProvider): Fx<A, E, R>
1136
- } = dual(2, core.withConfigProvider)
1137
-
1138
- /**
1139
- * @since 1.20.0
1140
- */
1141
- export const withLogSpan: {
1142
- (span: string): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1143
- <A, E, R>(fx: Fx<A, E, R>, span: string): Fx<A, E, R>
1144
- } = dual(2, core.withLogSpan)
1145
-
1146
- /**
1147
- * @since 1.20.0
1148
- */
1149
- export const withMaxOpsBeforeYield: {
1150
- (maxOps: number): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1151
- <A, E, R>(fx: Fx<A, E, R>, maxOps: number): Fx<A, E, R>
1152
- } = dual(2, core.withMaxOpsBeforeYield)
1153
-
1154
- /**
1155
- * @since 1.20.0
1156
- */
1157
- export const withParentSpan: {
1158
- (parentSpan: Tracer.ParentSpan): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1159
- <A, E, R>(fx: Fx<A, E, R>, parentSpan: Tracer.ParentSpan): Fx<A, E, R>
1160
- } = dual(2, core.withParentSpan)
1161
-
1162
- /**
1163
- * @since 1.20.0
1164
- */
1165
- export const withRequestBatching: {
1166
- (requestBatching: boolean): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1167
- <A, E, R>(fx: Fx<A, E, R>, requestBatching: boolean): Fx<A, E, R>
1168
- } = dual(2, core.withRequestBatching)
1169
-
1170
- /**
1171
- * @since 1.20.0
1172
- */
1173
- export const withRequestCache: {
1174
- (cache: Request.Cache): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1175
- <A, E, R>(fx: Fx<A, E, R>, cache: Request.Cache): Fx<A, E, R>
1176
- } = dual(2, core.withRequestCache)
1177
-
1178
- /**
1179
- * @since 1.20.0
1180
- */
1181
- export const withRequestCaching: {
1182
- (requestCaching: boolean): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1183
- <A, E, R>(fx: Fx<A, E, R>, requestCaching: boolean): Fx<A, E, R>
1184
- } = dual(2, core.withRequestCaching)
1185
-
1186
- /**
1187
- * @since 1.20.0
1188
- */
1189
- export const withTracer: {
1190
- (tracer: Tracer.Tracer): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R>
1191
- <A, E, R>(fx: Fx<A, E, R>, tracer: Tracer.Tracer): Fx<A, E, R>
1192
- } = dual(2, core.withTracer)
1193
-
1194
- /**
1195
- * @since 1.20.0
1196
- */
1197
- export const acquireUseRelease: {
1198
- <A, B, E2, R2, C, E3, R3>(
1199
- use: (a: A) => Fx<B, E2, R2>,
1200
- release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<C, E3, R3>
1201
- ): <E, R>(acquire: Effect.Effect<A, E, R>) => Fx<B, E | E2 | E3, R | R2 | R3>
1202
- <A, E, R, B, E2, R2, C, E3, R3>(
1203
- acquire: Effect.Effect<A, E, R>,
1204
- use: (a: A) => Fx<B, E2, R2>,
1205
- release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<C, E3, R3>
1206
- ): Fx<B, E | E2 | E3, R | R2 | R3>
1207
- } = dual(3, core.acquireUseRelease)
1208
-
1209
- /**
1210
- * @since 1.20.0
1211
- */
1212
- export const withSpan: {
1213
- (name: string, options?: {
1214
- readonly attributes?: Record<string, unknown>
1215
- readonly links?: ReadonlyArray<Tracer.SpanLink>
1216
- readonly parent?: Tracer.ParentSpan
1217
- readonly root?: boolean
1218
- readonly context?: Ctx.Context<never>
1219
- }): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E, R>
1220
-
1221
- <A, E, R>(self: Fx<A, E, R>, name: string, options?: {
1222
- readonly attributes?: Record<string, unknown>
1223
- readonly links?: ReadonlyArray<Tracer.SpanLink>
1224
- readonly parent?: Tracer.ParentSpan
1225
- readonly root?: boolean
1226
- readonly context?: Ctx.Context<never>
1227
- }): Fx<A, E, R>
1228
- } = dual((args) => isFx(args[0]), core.withSpan)
1229
-
1230
- /**
1231
- * @since 1.20.0
1232
- */
1233
- export const provideContext: {
1234
- <R2>(context: Ctx.Context<R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, R2>>
1235
- <A, E, R, R2>(fx: Fx<A, E, R>, context: Ctx.Context<R2>): Fx<A, E, Exclude<R, R2>>
1236
- } = dual(2, core.provideContext)
1237
-
1238
- /**
1239
- * @since 1.20.0
1240
- */
1241
- export const provideLayer: {
1242
- <E2, R2, S>(layer: Layer.Layer<S, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R2 | Exclude<R, S>>
1243
- <A, E, R, E2, R2, S>(fx: Fx<A, E, R>, layer: Layer.Layer<S, E2, R2>): Fx<A, E | E2, R2 | Exclude<R, S>>
1244
- } = dual(2, core.provideLayer)
1245
-
1246
- /**
1247
- * @since 1.20.0
1248
- */
1249
- export const provideRuntime: {
1250
- <R2>(runtime: Runtime.Runtime<R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, R2>>
1251
- <A, E, R, R2>(fx: Fx<A, E, R>, runtime: Runtime.Runtime<R2>): Fx<A, E, Exclude<R, R2>>
1252
- } = dual(2, core.provideRuntime)
1253
-
1254
- /**
1255
- * @since 1.20.0
1256
- */
1257
- export const provideService: {
1258
- <I, S>(service: Ctx.Tag<I, S>, instance: S): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, I>>
1259
- <A, E, R, I, S>(fx: Fx<A, E, R>, service: Ctx.Tag<I, S>, instance: S): Fx<A, E, Exclude<R, I>>
1260
- } = dual(3, core.provideService)
1261
-
1262
- /**
1263
- * @since 1.20.0
1264
- */
1265
- export const provideServiceEffect: {
1266
- <I, S, E2, R2>(
1267
- service: Ctx.Tag<I, S>,
1268
- instance: Effect.Effect<S, E2, R2>
1269
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R2 | Exclude<R, I>>
1270
- <A, E, R, I, S, E2, R2>(
1271
- fx: Fx<A, E, R>,
1272
- service: Ctx.Tag<I, S>,
1273
- instance: Effect.Effect<S, E2, R2>
1274
- ): Fx<A, E | E2, R2 | Exclude<R, I>>
1275
- } = dual(3, core.provideServiceEffect)
1276
-
1277
- /**
1278
- * @since 1.20.0
1279
- */
1280
- export const provide: {
1281
- <R2>(context: Ctx.Context<R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, R2>>
1282
- <R2>(runtime: Runtime.Runtime<R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Exclude<R, R2>>
1283
- <S, E2, R2>(layer: Layer.Layer<S, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R2 | Exclude<R, S>>
1284
- <S, E2 = never, R2 = never>(
1285
- provide: Layer.Layer<S, E2, R2> | Ctx.Context<S> | Runtime.Runtime<S>
1286
- ): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E | E2, R2 | Exclude<R, S>>
1287
-
1288
- <A, E, R, R2>(fx: Fx<A, E, R>, context: Ctx.Context<R2>): Fx<A, E, Exclude<R, R2>>
1289
- <A, E, R, R2>(fx: Fx<A, E, R>, runtime: Runtime.Runtime<R2>): Fx<A, E, Exclude<R, R2>>
1290
- <A, E, R, S, E2, R2>(fx: Fx<A, E, R>, layer: Layer.Layer<S, E2, R2>): Fx<A, E | E2, R2 | Exclude<R, S>>
1291
- <A, E, R, S, E2 = never, R2 = never>(
1292
- fx: Fx<A, E, R>,
1293
- provide: Layer.Layer<S, E2, R2> | Ctx.Context<S> | Runtime.Runtime<S>
1294
- ): Fx<A, E | E2, R2 | Exclude<R, S>>
1295
- } = dual(2, core.provide)
1296
-
1297
- /**
1298
- * @since 1.20.0
1299
- */
1300
- export const share: {
1301
- <E2, R2, A>(subject: Subject.Subject<A, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | R2 | Scope.Scope>
1302
- <A, E, R, R2>(fx: Fx<A, E, R>, subject: Subject.Subject<A, E, R2>): Fx<A, E, R | R2 | Scope.Scope>
1303
- } = dual(2, coreShare.share)
1304
-
1305
- /**
1306
- * @since 1.20.0
1307
- */
1308
- export const multicast: <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Scope.Scope | R> = coreShare.multicast
1309
-
1310
- /**
1311
- * @since 1.20.0
1312
- */
1313
- export const hold: <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Scope.Scope | R> = coreShare.hold
1314
-
1315
- /**
1316
- * @since 1.20.0
1317
- */
1318
- export const replay: {
1319
- (capacity: number): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, Scope.Scope | R>
1320
- <A, E, R>(fx: Fx<A, E, R>, capacity: number): Fx<A, E, Scope.Scope | R>
1321
- } = dual(2, coreShare.replay)
1322
-
1323
- /**
1324
- * @since 1.20.0
1325
- */
1326
- export const mapCause: {
1327
- <E, E2>(f: (cause: Cause.Cause<E>) => Cause.Cause<E2>): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2, R>
1328
- <A, E, R, E2>(fx: Fx<A, E, R>, f: (cause: Cause.Cause<E>) => Cause.Cause<E2>): Fx<A, E2, R>
1329
- } = dual(2, core.mapCause)
1330
-
1331
- /**
1332
- * @since 1.20.0
1333
- */
1334
- export const mapError: {
1335
- <E, E2>(f: (e: E) => E2): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2, R>
1336
- <A, E, R, E2>(fx: Fx<A, E, R>, f: (e: E) => E2): Fx<A, E2, R>
1337
- } = dual(2, core.mapError)
1338
-
1339
- /**
1340
- * @since 1.20.0
1341
- */
1342
- export const mapBoth: {
1343
- <E, E2, A, B>(f: (e: E) => E2, g: (a: A) => B): <R>(fx: Fx<A, E, R>) => Fx<B, E2, R>
1344
- <A, E, R, B, C>(fx: Fx<A, E, R>, f: (e: E) => B, g: (a: A) => C): Fx<C, B, R>
1345
- } = dual(3, core.mapBoth)
1346
-
1347
- /**
1348
- * @since 1.20.0
1349
- */
1350
- export const filterCause: {
1351
- <E>(f: (cause: Cause.Cause<E>) => boolean): <R, A>(fx: Fx<A, E, R>) => Fx<A, E, R>
1352
- <A, E, R>(fx: Fx<A, E, R>, f: (cause: Cause.Cause<E>) => boolean): Fx<A, E, R>
1353
- } = dual(2, core.filterCause)
1354
-
1355
- /**
1356
- * @since 1.20.0
1357
- */
1358
- export const filterError: {
1359
- <E>(f: (e: E) => boolean): <R, A>(fx: Fx<A, E, R>) => Fx<A, E, R>
1360
- <A, E, R>(fx: Fx<A, E, R>, f: (e: E) => boolean): Fx<A, E, R>
1361
- } = dual(2, core.filterError)
1362
-
1363
- /**
1364
- * @since 1.20.0
1365
- */
1366
- export const filterMapCause: {
1367
- <E, E2>(f: (cause: Cause.Cause<E>) => Option.Option<Cause.Cause<E2>>): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2, R>
1368
- <A, E, R, E2>(fx: Fx<A, E, R>, f: (cause: Cause.Cause<E>) => Option.Option<Cause.Cause<E2>>): Fx<A, E2, R>
1369
- } = dual(2, core.filterMapCause)
1370
-
1371
- /**
1372
- * @since 1.20.0
1373
- */
1374
- export const filterMapError: {
1375
- <E, E2>(f: (e: E) => Option.Option<E2>): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2, R>
1376
- <A, E, R, E2>(fx: Fx<A, E, R>, f: (e: E) => Option.Option<E2>): Fx<A, E2, R>
1377
- } = dual(2, core.filterMapError)
1378
-
1379
- /**
1380
- * @since 1.20.0
1381
- */
1382
- export const mapCauseEffect: {
1383
- <E3, E2, R2>(f: (cause: Cause.Cause<E2>) => Effect.Effect<Cause.Cause<E3>, E3, R2>): <A, E, R>(
1384
- fx: Fx<A, E, R>
1385
- ) => Fx<A, E2 | E3, R | R2>
1386
- <A, E, R, E3, E2, R2>(
1387
- fx: Fx<A, E, R>,
1388
- f: (cause: Cause.Cause<E>) => Effect.Effect<Cause.Cause<E3>, E2, R2>
1389
- ): Fx<A, E2 | E3, R | R2>
1390
- } = dual(2, core.mapCauseEffect)
1391
-
1392
- /**
1393
- * @since 1.20.0
1394
- */
1395
- export const mapErrorEffect: {
1396
- <E3, E2, R2>(f: (e: E2) => Effect.Effect<E3, E3, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E2 | E3, R | R2>
1397
- <A, E, R, E3, E2, R2>(fx: Fx<A, E, R>, f: (e: E) => Effect.Effect<E3, E2, R2>): Fx<A, E2 | E3, R | R2>
1398
- } = dual(2, core.mapErrorEffect)
1399
-
1400
- /**
1401
- * @since 1.20.0
1402
- */
1403
- export const filterCauseEffect: {
1404
- <E, E2, R2>(f: (cause: Cause.Cause<E>) => Effect.Effect<boolean, E2, R2>): <R, A>(
1405
- fx: Fx<A, E, R>
1406
- ) => Fx<A, E2, R | R2>
1407
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (cause: Cause.Cause<E>) => Effect.Effect<boolean, E2, R2>): Fx<A, E2, R | R2>
1408
- } = dual(2, core.filterCauseEffect)
1409
-
1410
- /**
1411
- * @since 1.20.0
1412
- */
1413
- export const filterErrorEffect: {
1414
- <E, E2, R2>(f: (e: E) => Effect.Effect<boolean, E2, R2>): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2, R | R2>
1415
- <A, E, R, E2, R2>(fx: Fx<A, E, R>, f: (e: E) => Effect.Effect<boolean, E2, R2>): Fx<A, E2, R | R2>
1416
- } = dual(2, core.filterErrorEffect)
1417
-
1418
- /**
1419
- * @since 1.20.0
1420
- */
1421
- export const filterMapCauseEffect: {
1422
- <E3, E2, R2>(f: (cause: Cause.Cause<E2>) => Effect.Effect<Option.Option<Cause.Cause<E3>>, E2, R2>): <A, E, R>(
1423
- fx: Fx<A, E, R>
1424
- ) => Fx<A, E2 | E3, R | R2>
1425
- <A, E, R, E3, E2, R2>(
1426
- fx: Fx<A, E, R>,
1427
- f: (cause: Cause.Cause<E>) => Effect.Effect<Option.Option<Cause.Cause<E3>>, E2, R2>
1428
- ): Fx<A, E2 | E3, R | R2>
1429
- } = dual(2, core.filterMapCauseEffect)
1430
-
1431
- /**
1432
- * @since 1.20.0
1433
- */
1434
- export const filterMapErrorEffect: {
1435
- <E, E3, E2, R2>(
1436
- f: (e: E) => Effect.Effect<Option.Option<E3>, E2, R2>
1437
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2 | E3, R | R2>
1438
- <A, E, R, E3, E2, R2>(fx: Fx<A, E, R>, f: (e: E) => Effect.Effect<Option.Option<E3>, E2, R2>): Fx<A, E2 | E3, R | R2>
1439
- } = dual(2, core.filterMapErrorEffect)
1440
-
1441
- /**
1442
- * @since 1.20.0
1443
- */
1444
- export const loopCause: {
1445
- <B, E, C>(
1446
- seed: B,
1447
- f: (b: B, cause: Cause.Cause<E>) => readonly [Cause.Cause<C>, B]
1448
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A, C, R>
1449
-
1450
- <A, E, R, B, C>(
1451
- fx: Fx<A, E, R>,
1452
- seed: B,
1453
- f: (b: B, cause: Cause.Cause<E>) => readonly [Cause.Cause<C>, B]
1454
- ): Fx<A, C, R>
1455
- } = dual(3, core.loopCause)
1456
-
1457
- /**
1458
- * @since 1.20.0
1459
- */
1460
- export const loopError: {
1461
- <B, E, C>(seed: B, f: (b: B, e: E) => readonly [C, B]): <R, A>(fx: Fx<A, E, R>) => Fx<A, C, R>
1462
- <A, E, R, B, C>(fx: Fx<A, E, R>, seed: B, f: (b: B, e: E) => readonly [C, B]): Fx<A, C, R>
1463
- } = dual(3, core.loopError)
1464
-
1465
- /**
1466
- * @since 1.20.0
1467
- */
1468
- export const loopCauseEffect: {
1469
- <B, E, E2, R2, C>(
1470
- seed: B,
1471
- f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<readonly [Cause.Cause<C>, B], E2, R2>
1472
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2 | C, R | R2>
1473
- <A, E, R, B, E2, R2, C>(
1474
- fx: Fx<A, E, R>,
1475
- seed: B,
1476
- f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<readonly [Cause.Cause<C>, B], E2, R2>
1477
- ): Fx<A, E2 | C, R | R2>
1478
- } = dual(3, core.loopCauseEffect)
1479
-
1480
- /**
1481
- * @since 1.20.0
1482
- */
1483
- export const loopErrorEffect: {
1484
- <B, E, E2, R2, C>(seed: B, f: (b: B, e: E) => Effect.Effect<readonly [C, B], E2, R2>): <R, A>(
1485
- fx: Fx<A, E, R>
1486
- ) => Fx<A, E2 | C, R | R2>
1487
- <A, E, R, B, E2, R2, C>(
1488
- fx: Fx<A, E, R>,
1489
- seed: B,
1490
- f: (b: B, e: E) => Effect.Effect<readonly [C, B], E2, R2>
1491
- ): Fx<A, E2 | C, R | R2>
1492
- } = dual(3, core.loopErrorEffect)
1493
-
1494
- /**
1495
- * @since 1.20.0
1496
- */
1497
- export const filterMapLoopCause: {
1498
- <B, E, E2, R2, C>(
1499
- seed: B,
1500
- f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], E2, R2>
1501
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2 | C, R | R2>
1502
- <A, E, R, B, C>(
1503
- fx: Fx<A, E, R>,
1504
- seed: B,
1505
- f: (b: B, cause: Cause.Cause<E>) => readonly [Option.Option<Cause.Cause<C>>, B]
1506
- ): Fx<A, C, R>
1507
- } = dual(3, core.filterMapLoopCause)
1508
-
1509
- /**
1510
- * @since 1.20.0
1511
- */
1512
- export const filterMapLoopError: {
1513
- <B, E, E2, R2, C>(seed: B, f: (b: B, e: E) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>): <R, A>(
1514
- fx: Fx<A, E, R>
1515
- ) => Fx<A, E2 | C, R | R2>
1516
- <A, E, R, B, C>(fx: Fx<A, E, R>, seed: B, f: (b: B, e: E) => readonly [Option.Option<C>, B]): Fx<A, C, R>
1517
- } = dual(3, core.filterMapLoopError)
1518
-
1519
- /**
1520
- * @since 1.20.0
1521
- */
1522
- export const filterMapLoopCauseEffect: {
1523
- <B, E, E2, R2, C>(
1524
- seed: B,
1525
- f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], E2, R2>
1526
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A, E2 | C, R | R2>
1527
- <A, E, R, B, E2, R2, C>(
1528
- fx: Fx<A, E, R>,
1529
- seed: B,
1530
- f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], E2, R2>
1531
- ): Fx<A, E2 | C, R | R2>
1532
- } = dual(3, core.filterMapLoopCauseEffect)
1533
-
1534
- /**
1535
- * @since 1.20.0
1536
- */
1537
- export const filterMapLoopErrorEffect: {
1538
- <B, E, E2, R2, C>(seed: B, f: (b: B, e: E) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>): <R, A>(
1539
- fx: Fx<A, E, R>
1540
- ) => Fx<A, E2 | C, R | R2>
1541
- <A, E, R, B, E2, R2, C>(
1542
- fx: Fx<A, E, R>,
1543
- seed: B,
1544
- f: (b: B, e: E) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>
1545
- ): Fx<A, E2 | C, R | R2>
1546
- } = dual(3, core.filterMapLoopErrorEffect)
1547
-
1548
- /**
1549
- * @since 1.20.0
1550
- */
1551
- export const flatMapCauseWithStrategy: {
1552
- <E, B, E2, R2>(
1553
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1554
- flattenStrategy: FlattenStrategy,
1555
- executionStrategy?: ExecutionStrategy.ExecutionStrategy
1556
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1557
- <A, E, R, B, E2, R2>(
1558
- fx: Fx<A, E, R>,
1559
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1560
- flattenStrategy: FlattenStrategy,
1561
- executionStrategy?: ExecutionStrategy.ExecutionStrategy
1562
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1563
- } = dual(isDataFirstFx, core.flatMapCauseWithStrategy)
1564
-
1565
- /**
1566
- * @since 1.20.0
1567
- */
1568
- export const flatMapErrorWithStrategy: {
1569
- <E, B, E2, R2>(
1570
- f: (e: E) => Fx<B, E2, R2>,
1571
- flattenStrategy: FlattenStrategy,
1572
- executionStrategy?: ExecutionStrategy.ExecutionStrategy
1573
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1574
- <A, E, R, B, E2, R2>(
1575
- fx: Fx<A, E, R>,
1576
- f: (e: E) => Fx<B, E2, R2>,
1577
- flattenStrategy: FlattenStrategy,
1578
- executionStrategy?: ExecutionStrategy.ExecutionStrategy
1579
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1580
- } = dual(isDataFirstFx, core.flatMapErrorWithStrategy)
1581
-
1582
- /**
1583
- * @since 1.20.0
1584
- */
1585
- export const switchMapCause: {
1586
- <A, E, R, B, E2, R2>(
1587
- fx: Fx<A, E, R>,
1588
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1589
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1590
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1591
-
1592
- <E, B, E2, R2>(
1593
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1594
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1595
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1596
- } = dual(isDataFirstFx, core.switchMapCause)
1597
-
1598
- /**
1599
- * @since 1.20.0
1600
- */
1601
- export const switchMapError: {
1602
- <E, B, E2, R2>(
1603
- f: (e: E) => Fx<B, E2, R2>,
1604
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1605
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1606
-
1607
- <A, E, R, B, E2, R2>(
1608
- fx: Fx<A, E, R>,
1609
- f: (e: E) => Fx<B, E2, R2>,
1610
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1611
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1612
- } = dual(isDataFirstFx, core.switchMapError)
1613
-
1614
- /**
1615
- * @since 1.20.0
1616
- */
1617
- export const flatMapCause: {
1618
- <E, B, E2, R2>(
1619
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1620
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1621
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1622
-
1623
- <A, E, R, B, E2, R2>(
1624
- fx: Fx<A, E, R>,
1625
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1626
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1627
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1628
- } = dual(isDataFirstFx, core.flatMapCause)
1629
-
1630
- /**
1631
- * @since 1.20.0
1632
- */
1633
- export const flatMapError: {
1634
- <E, B, E2, R2>(
1635
- f: (e: E) => Fx<B, E2, R2>,
1636
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1637
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1638
-
1639
- <A, E, R, B, E2, R2>(
1640
- fx: Fx<A, E, R>,
1641
- f: (e: E) => Fx<B, E2, R2>,
1642
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1643
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1644
- } = dual(isDataFirstFx, core.flatMapError)
1645
-
1646
- /**
1647
- * @since 1.20.0
1648
- */
1649
- export const flatMapCauseConcurrently: {
1650
- <E, B, E2, R2>(
1651
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1652
- concurrency: number,
1653
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1654
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1655
- <A, E, R, B, E2, R2>(
1656
- fx: Fx<A, E, R>,
1657
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1658
- concurrency: number,
1659
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1660
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1661
- } = dual(isDataFirstFx, core.flatMapCauseConcurrently)
1662
-
1663
- /**
1664
- * @since 1.20.0
1665
- */
1666
- export const flatMapErrorConcurrently: {
1667
- <E, B, E2, R2>(
1668
- f: (e: E) => Fx<B, E2, R2>,
1669
- concurrency: number,
1670
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1671
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1672
-
1673
- <A, E, R, B, E2, R2>(
1674
- fx: Fx<A, E, R>,
1675
- f: (e: E) => Fx<B, E2, R2>,
1676
- concurrency: number,
1677
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1678
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1679
- } = dual(isDataFirstFx, core.flatMapErrorConcurrently)
1680
-
1681
- /**
1682
- * @since 1.20.0
1683
- */
1684
- export const exhaustMapCause: {
1685
- <E, B, E2, R2>(
1686
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1687
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1688
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1689
-
1690
- <A, E, R, B, E2, R2>(
1691
- fx: Fx<A, E, R>,
1692
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1693
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1694
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1695
- } = dual(isDataFirstFx, core.exhaustMapCause)
1696
-
1697
- /**
1698
- * @since 1.20.0
1699
- */
1700
- export const exhaustMapError: {
1701
- <E, B, E2, R2>(
1702
- f: (e: E) => Fx<B, E2, R2>,
1703
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1704
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1705
-
1706
- <A, E, R, B, E2, R2>(
1707
- fx: Fx<A, E, R>,
1708
- f: (e: E) => Fx<B, E2, R2>,
1709
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1710
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1711
- } = dual(isDataFirstFx, core.exhaustMapError)
1712
-
1713
- /**
1714
- * @since 1.20.0
1715
- */
1716
- export const exhaustMapLatestCause: {
1717
- <E, B, E2, R2>(
1718
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1719
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1720
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1721
-
1722
- <A, E, R, B, E2, R2>(
1723
- fx: Fx<A, E, R>,
1724
- f: (cause: Cause.Cause<E>) => Fx<B, E2, R2>,
1725
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1726
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1727
- } = dual(isDataFirstFx, core.exhaustMapLatestCause)
1728
-
1729
- /**
1730
- * @since 1.20.0
1731
- */
1732
- export const exhaustMapLatestError: {
1733
- <E, B, E2, R2>(
1734
- f: (e: E) => Fx<B, E2, R2>,
1735
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1736
- ): <R, A>(fx: Fx<A, E, R>) => Fx<A | B, E2, R | R2 | Scope.Scope>
1737
-
1738
- <A, E, R, B, E2, R2>(
1739
- fx: Fx<A, E, R>,
1740
- f: (e: E) => Fx<B, E2, R2>,
1741
- executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1742
- ): Fx<A | B, E2, R | R2 | Scope.Scope>
1743
- } = dual(isDataFirstFx, core.exhaustMapLatestError)
1744
-
1745
- /**
1746
- * @since 1.20.0
1747
- */
1748
- export type MatchCauseOptions<E, A, B, E2, R2, C, E3, R3> = {
1749
- readonly onFailure: (cause: Cause.Cause<E>) => Fx<B, E2, R2>
1750
- readonly onSuccess: (a: A) => Fx<C, E3, R3>
1751
- readonly executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1752
- }
1753
-
1754
- /**
1755
- * @since 1.20.0
1756
- */
1757
- export type MatchErrorOptions<E, A, B, E2, R2, C, E3, R3> = {
1758
- readonly onFailure: (e: E) => Fx<B, E2, R2>
1759
- readonly onSuccess: (a: A) => Fx<C, E3, R3>
1760
- readonly executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1761
- }
1762
-
1763
- /**
1764
- * @since 1.20.0
1765
- */
1766
- export type MatchCauseOptionsEffect<E, A, B, E2, R2, C, E3, R3> = {
1767
- readonly onFailure: (cause: Cause.Cause<E>) => Effect.Effect<B, E2, R2>
1768
- readonly onSuccess: (a: A) => Effect.Effect<C, E3, R3>
1769
- readonly executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1770
- }
1771
-
1772
- /**
1773
- * @since 1.20.0
1774
- */
1775
- export type MatchErrorOptionsEffect<E, A, B, E2, R2, C, E3, R3> = {
1776
- readonly onFailure: (e: E) => Effect.Effect<B, E2, R2>
1777
- readonly onSuccess: (a: A) => Effect.Effect<C, E3, R3>
1778
- readonly executionStrategy?: ExecutionStrategy.ExecutionStrategy | undefined
1779
- }
1780
-
1781
- /**
1782
- * @since 1.20.0
1783
- */
1784
- export const matchCauseWithStrategy: {
1785
- <E, A, B, E2, R2, C, E3, R3>(
1786
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1787
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1788
-
1789
- <A, E, R, B, E2, R2, C, E3, R3>(
1790
- fx: Fx<A, E, R>,
1791
- flattenStrategy: FlattenStrategy,
1792
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1793
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1794
- } = dual(3, core.matchCauseWithStrategy)
1795
-
1796
- /**
1797
- * @since 1.20.0
1798
- */
1799
- export const matchErrorWithStrategy: {
1800
- <E, A, B, E2, R2, C, E3, R3>(
1801
- { executionStrategy, onFailure, onSuccess }: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1802
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1803
- <A, E, R, B, E2, R2, C, E3, R3>(
1804
- fx: Fx<A, E, R>,
1805
- flattenStrategy: FlattenStrategy,
1806
- { executionStrategy, onFailure, onSuccess }: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1807
- ): Fx<B | C, E2 | E3, Scope.Scope | R | R2 | R3>
1808
- } = dual(3, core.matchErrorWithStrategy)
1809
-
1810
- /**
1811
- * @since 1.20.0
1812
- */
1813
- export const matchCause: {
1814
- <E, A, B, E2, R2, C, E3, R3>(
1815
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1816
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1817
-
1818
- <A, E, R, B, E2, R2, C, E3, R3>(
1819
- fx: Fx<A, E, R>,
1820
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1821
- ): Fx<B | C, E2 | E3, Scope.Scope | R | R2 | R3>
1822
- } = dual(2, core.matchCause)
1823
-
1824
- /**
1825
- * @since 1.20.0
1826
- */
1827
- export const matchError: {
1828
- <E, A, B, E2, R2, C, E3, R3>(
1829
- opts: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1830
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1831
- <A, E, R, B, E2, R2, C, E3, R3>(
1832
- fx: Fx<A, E, R>,
1833
- opts: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1834
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1835
- } = dual(2, core.matchError)
1836
-
1837
- /**
1838
- * @since 1.20.0
1839
- */
1840
- export const matchCauseConcurrently: {
1841
- <E, A, B, E2, R2, C, E3, R3>(
1842
- concurrency: number,
1843
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1844
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1845
- <A, E, R, B, E2, R2, C, E3, R3>(
1846
- fx: Fx<A, E, R>,
1847
- concurrency: number,
1848
- opts: core.MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1849
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1850
- } = dual(3, core.matchCauseConcurrently)
1851
-
1852
- /**
1853
- * @since 1.20.0
1854
- */
1855
- export const matchErrorConcurrently: {
1856
- <E, A, B, E2, R2, C, E3, R3>(
1857
- concurrency: number,
1858
- opts: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1859
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1860
- <A, E, R, B, E2, R2, C, E3, R3>(
1861
- fx: Fx<A, E, R>,
1862
- concurrency: number,
1863
- opts: core.MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1864
- ): Fx<B | C, E2 | E3, Scope.Scope | R | R2 | R3>
1865
- } = dual(3, core.matchErrorConcurrently)
1866
-
1867
- /**
1868
- * @since 1.20.0
1869
- */
1870
- export const switchMatchCause: {
1871
- <E, A, B, E2, R2, C, E3, R3>(
1872
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1873
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1874
-
1875
- <A, E, R, B, E2, R2, C, E3, R3>(
1876
- fx: Fx<A, E, R>,
1877
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1878
- ): Fx<B | C, E2 | E3, Scope.Scope | R | R2 | R3>
1879
- } = dual(2, core.switchMatchCause)
1880
-
1881
- /**
1882
- * @since 2.0.0
1883
- */
1884
- export const switchMatchCauseEffect: {
1885
- <E, A, B, E2, R2, C, E3, R3>(
1886
- opts: MatchCauseOptionsEffect<E, A, B, E2, R2, C, E3, R3>
1887
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1888
- <A, E, R, B, E2, R2, C, E3, R3>(
1889
- fx: Fx<A, E, R>,
1890
- opts: MatchCauseOptionsEffect<E, A, B, E2, R2, C, E3, R3>
1891
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1892
- } = dual(2, (fx, opts) =>
1893
- switchMatchCause(fx, {
1894
- onFailure: (e) => core.fromEffect(opts.onFailure(e)),
1895
- onSuccess: (a) => core.fromEffect(opts.onSuccess(a))
1896
- }))
1897
-
1898
- /**
1899
- * @since 1.20.0
1900
- */
1901
- export const switchMatchError: {
1902
- <E, A, B, E2, R2, C, E3, R3>(
1903
- opts: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1904
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1905
- <A, E, R, B, E2, R2, C, E3, R3>(
1906
- fx: Fx<A, E, R>,
1907
- opts: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1908
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1909
- } = dual(2, core.switchMatchError)
1910
-
1911
- /**
1912
- * @since 2.0.0
1913
- */
1914
- export const switchMatchErrorEffect: {
1915
- <E, A, B, E2, R2, C, E3, R3>(
1916
- opts: MatchErrorOptionsEffect<E, A, B, E2, R2, C, E3, R3>
1917
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1918
- <A, E, R, B, E2, R2, C, E3, R3>(
1919
- fx: Fx<A, E, R>,
1920
- opts: MatchErrorOptionsEffect<E, A, B, E2, R2, C, E3, R3>
1921
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1922
- } = dual(2, (fx, opts) =>
1923
- switchMatchError(fx, {
1924
- onFailure: (e) => core.fromEffect(opts.onFailure(e)),
1925
- onSuccess: (a) => core.fromEffect(opts.onSuccess(a))
1926
- }))
1927
-
1928
- /**
1929
- * @since 1.20.0
1930
- */
1931
- export const exhaustMatchCause: {
1932
- <E, A, B, E2, R2, C, E3, R3>(
1933
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1934
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1935
-
1936
- <A, E, R, B, E2, R2, C, E3, R3>(
1937
- fx: Fx<A, E, R>,
1938
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1939
- ): Fx<B | C, E2 | E3, Scope.Scope | R | R2 | R3>
1940
- } = dual(2, core.exhaustMatchCause)
1941
-
1942
- /**
1943
- * @since 1.20.0
1944
- */
1945
- export const exhaustMatchError: {
1946
- <E, A, B, E2, R2, C, E3, R3>(
1947
- opts: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1948
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1949
- <A, E, R, B, E2, R2, C, E3, R3>(
1950
- fx: Fx<A, E, R>,
1951
- opts: core.MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1952
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1953
- } = dual(2, core.exhaustMatchError)
1954
-
1955
- /**
1956
- * @since 1.20.0
1957
- */
1958
- export const exhaustMatchLatestCause: {
1959
- <E, A, B, E2, R2, C, E3, R3>(
1960
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1961
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1962
-
1963
- <A, E, R, B, E2, R2, C, E3, R3>(
1964
- fx: Fx<A, E, R>,
1965
- opts: MatchCauseOptions<E, A, B, E2, R2, C, E3, R3>
1966
- ): Fx<B | C, E2 | E3, Scope.Scope | R | R2 | R3>
1967
- } = dual(2, core.exhaustMatchLatestCause)
1968
-
1969
- /**
1970
- * @since 1.20.0
1971
- */
1972
- export const exhaustMatchLatestError: {
1973
- <E, A, B, E2, R2, C, E3, R3>(
1974
- opts: MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1975
- ): <R>(fx: Fx<A, E, R>) => Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1976
- <A, E, R, B, E2, R2, C, E3, R3>(
1977
- fx: Fx<A, E, R>,
1978
- opts: core.MatchErrorOptions<E, A, B, E2, R2, C, E3, R3>
1979
- ): Fx<B | C, E2 | E3, R | R2 | R3 | Scope.Scope>
1980
- } = dual(2, core.exhaustMatchLatestError)
1981
-
1982
- /**
1983
- * @since 1.20.0
1984
- */
1985
- export const exit: <A, E, R>(fx: Fx<A, E, R>) => Fx<Exit.Exit<A, E>, never, R> = core.exit
1986
-
1987
- /**
1988
- * @since 1.20.0
1989
- */
1990
- export const either: <A, E, R>(fx: Fx<A, E, R>) => Fx<Either.Either<A, E>, never, R> = core.either
1991
-
1992
- /**
1993
- * @since 1.20.0
1994
- */
1995
- export const tuple: <const FX extends ReadonlyArray<Fx<any, any, any>>>(
1996
- fx: FX
1997
- ) => Fx<{ readonly [K in keyof FX]: Fx.Success<FX[K]> }, Fx.Error<FX[number]>, Fx.Context<FX[number]>> = core.tuple
1998
-
1999
- /**
2000
- * @since 1.20.0
2001
- */
2002
- export const struct: <const FX extends Readonly<Record<string, Fx<any, any, any>>>>(
2003
- fx: FX
2004
- ) => Fx<{ readonly [K in keyof FX]: Fx.Success<FX[K]> }, Fx.Error<FX[string]>, Fx.Context<FX[string]>> = core.struct
2005
-
2006
- /**
2007
- * @since 1.20.0
2008
- */
2009
- export const all: {
2010
- <const FX extends ReadonlyArray<Fx<any, any, any>>>(
2011
- fx: FX
2012
- ): Fx<{ readonly [K in keyof FX]: Fx.Success<FX[K]> }, Fx.Error<FX[number]>, Fx.Context<FX[number]>>
2013
- <const FX extends Readonly<Record<string, Fx<any, any, any>>>>(
2014
- fx: FX
2015
- ): Fx<{ readonly [K in keyof FX]: Fx.Success<FX[K]> }, Fx.Error<FX[string]>, Fx.Context<FX[string]>>
2016
- } = core.all
2017
-
2018
- /**
2019
- * @since 1.20.0
2020
- */
2021
- export const toEnqueue: {
2022
- <R2 = never, A = never>(
2023
- queue: Ctx.Enqueue<R2, A> | Queue.Enqueue<A>
2024
- ): <E, R>(fx: Fx<A, E, R>) => Effect.Effect<void, E, R | R2>
2025
- <A, E, R, R2 = never>(fx: Fx<A, E, R>, queue: Ctx.Enqueue<R2, A> | Queue.Enqueue<A>): Effect.Effect<void, E, R | R2>
2026
- } = dual(2, core.toEnqueue)
2027
-
2028
- /**
2029
- * @since 1.20.0
2030
- */
2031
- export const debounce: {
2032
- (delay: Duration.DurationInput): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | Scope.Scope>
2033
- <A, E, R>(fx: Fx<A, E, R>, delay: Duration.DurationInput): Fx<A, E, R | Scope.Scope>
2034
- } = dual(2, core.debounce)
2035
-
2036
- /**
2037
- * @since 1.20.0
2038
- */
2039
- export const throttle: {
2040
- (delay: Duration.DurationInput): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | Scope.Scope>
2041
- <A, E, R>(fx: Fx<A, E, R>, delay: Duration.DurationInput): Fx<A, E, R | Scope.Scope>
2042
- } = dual(2, core.throttle)
2043
-
2044
- /**
2045
- * @since 1.20.0
2046
- */
2047
- export const throttleLatest: {
2048
- (delay: Duration.DurationInput): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | Scope.Scope>
2049
- <A, E, R>(fx: Fx<A, E, R>, delay: Duration.DurationInput): Fx<A, E, R | Scope.Scope>
2050
- } = dual(2, core.throttleLatest)
2051
-
2052
- /**
2053
- * @since 1.20.0
2054
- */
2055
- export interface KeyedOptions<A, B, C, E2, R2> {
2056
- readonly getKey: (a: A) => B
2057
- readonly onValue: (ref: RefSubject<A>, key: B) => Fx<C, E2, R2>
2058
- readonly debounce?: Duration.DurationInput
2059
- }
2060
-
2061
- /**
2062
- * @since 1.20.0
2063
- */
2064
- export const keyed: {
2065
- <A, B extends PropertyKey, E2, R2, C>(
2066
- options: KeyedOptions<A, B, C, E2, R2>
2067
- ): <E, R>(fx: Fx<ReadonlyArray<A>, E, R>) => Fx<ReadonlyArray<C>, E | E2, R | R2>
2068
-
2069
- <A, E, R, B extends PropertyKey, E2, R2, C>(
2070
- fx: Fx<ReadonlyArray<A>, E, R>,
2071
- options: KeyedOptions<A, B, C, E2, R2>
2072
- ): Fx<ReadonlyArray<C>, E | E2, R | R2>
2073
- } = dual(2, coreKeyed.keyed)
2074
-
2075
- /**
2076
- * @since 1.20.0
2077
- */
2078
- export interface WithKeyOptions<A, B, C, E2, R2> {
2079
- readonly getKey: (a: A) => B
2080
- readonly onValue: (ref: RefSubject<A>, key: B) => Fx<C, E2, R2>
2081
- }
2082
-
2083
- /**
2084
- * @since 1.20.0
2085
- */
2086
- export const withKey: {
2087
- <A, B extends PropertyKey, E2, R2, C>(
2088
- options: WithKeyOptions<A, B, C, E2, R2>
2089
- ): <E, R>(fx: Fx<A, E, R>) => Fx<C, E | E2, R | R2>
2090
-
2091
- <A, E, R, B extends PropertyKey, E2, R2, C>(
2092
- fx: Fx<A, E, R>,
2093
- options: WithKeyOptions<A, B, C, E2, R2>
2094
- ): Fx<C, E | E2, R | R2>
2095
- } = dual(2, coreWithKey.withKey)
2096
-
2097
- const getTag = (a: { readonly _tag: string }): string => a._tag
2098
-
2099
- /**
2100
- * Match over a tagged union of values into a set of persistent workflows
2101
- * that allow listening to changes of values with the same tag using the same
2102
- * Fx.
2103
- *
2104
- * @since 1.20.0
2105
- * @category combinators
2106
- */
2107
- export const matchTags: {
2108
- <A extends { readonly _tag: string }, Matchers extends DefaultMatchersFrom<A>>(
2109
- matchers: Matchers
2110
- ): <E, R>(
2111
- fx: Fx<A, E, R>
2112
- ) => Fx<
2113
- Fx.Success<ReturnType<Matchers[keyof Matchers]>>,
2114
- E | Fx.Error<ReturnType<Matchers[keyof Matchers]>>,
2115
- R | Fx.Context<ReturnType<Matchers[keyof Matchers]>>
2116
- >
2117
-
2118
- <A extends { readonly _tag: string }, E, R, Matchers extends DefaultMatchersFrom<A>>(
2119
- fx: Fx<A, E, R>,
2120
- matchers: Matchers
2121
- ): Fx<
2122
- Fx.Success<ReturnType<Matchers[keyof Matchers]>>,
2123
- E | Fx.Error<ReturnType<Matchers[keyof Matchers]>>,
2124
- R | Fx.Context<ReturnType<Matchers[keyof Matchers]>>
2125
- >
2126
- } = dual(
2127
- 2,
2128
- function matchTags<A extends { readonly _tag: string }, E, R, Matchers extends DefaultMatchersFrom<A>>(
2129
- fx: Fx<A, E, R>,
2130
- matchers: Matchers
2131
- ): Fx<
2132
- Fx.Success<ReturnType<Matchers[keyof Matchers]>>,
2133
- E | Fx.Error<ReturnType<Matchers[keyof Matchers]>>,
2134
- R | Fx.Context<ReturnType<Matchers[keyof Matchers]>>
2135
- > {
2136
- return withKey(fx, {
2137
- getKey: getTag,
2138
- onValue: (ref, tag: A["_tag"]) => matchers[tag](ref as any)
2139
- })
2140
- }
2141
- )
2142
-
2143
- /**
2144
- * @since 1.20.0
2145
- */
2146
- export type DefaultMatchersFrom<A extends { readonly _tag: string }> = {
2147
- readonly [Tag in A["_tag"]]: (
2148
- value: RefSubject<Extract<A, { readonly _tag: Tag }>>
2149
- ) => Fx<any, any, any>
2150
- }
2151
-
2152
- /**
2153
- * @since 1.20.0
2154
- */
2155
- export const matchOption: {
2156
- <A, B = never, E2 = never, R2 = never, C = never, E3 = never, R3 = never>(
2157
- onNone: () => Fx<B, E2, R2>,
2158
- onSome: (a: RefSubject<A>) => Fx<C, E3, R3>
2159
- ): <E, R>(fx: Fx<Option.Option<A>, E, R>) => Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope>
2160
-
2161
- <A, E, R, B = never, E2 = never, R2 = never, C = never, E3 = never, R3 = never>(
2162
- fx: Fx<Option.Option<A>, E, R>,
2163
- onNone: () => Fx<B, E2, R2>,
2164
- onSome: (a: RefSubject<A>) => Fx<C, E3, R3>
2165
- ): Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope>
2166
- } = dual(
2167
- 3,
2168
- function matchOption<A, E, R, B = never, E2 = never, R2 = never, C = never, E3 = never, R3 = never>(
2169
- fx: Fx<Option.Option<A>, E, R>,
2170
- onNone: () => Fx<B, E2, R2>,
2171
- onSome: (a: RefSubject<A>) => Fx<C, E3, R3>
2172
- ): Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope> {
2173
- return matchTags(fx, {
2174
- None: onNone,
2175
- Some: (some) => onSome(transform(some, (s) => s.value, (value) => Option.some(value) as Option.Some<A>))
2176
- })
2177
- }
2178
- )
2179
-
2180
- /**
2181
- * @since 1.20.0
2182
- */
2183
- export const getOrElse: {
2184
- <A, B = never, E2 = never, R2 = never>(
2185
- orElse: () => Fx<B, E2, R2>
2186
- ): <E, R>(fx: Fx<Option.Option<A>, E, R>) => Fx<A | B, E | E2, R | R2 | Scope.Scope>
2187
-
2188
- <A, E, R, B = never, E2 = never, R2 = never>(
2189
- fx: Fx<Option.Option<A>, E, R>,
2190
- orElse: () => Fx<B, E2, R2>
2191
- ): Fx<A | B, E | E2, R | R2 | Scope.Scope>
2192
- } = dual(
2193
- 2,
2194
- function getOrElse<A, E, R, B = never, E2 = never, R2 = never>(
2195
- fx: Fx<Option.Option<A>, E, R>,
2196
- orElse: () => Fx<B, E2, R2>
2197
- ): Fx<A | B, E | E2, R | R2 | Scope.Scope> {
2198
- return matchOption(fx, () => orElse(), (ref) => ref)
2199
- }
2200
- )
2201
-
2202
- /**
2203
- * @since 1.20.0
2204
- */
2205
- export const matchEither: {
2206
- <E1, A, B = never, E2 = never, R2 = never, C = never, E3 = never, R3 = never>(
2207
- onLeft: (e: RefSubject<E1>) => Fx<B, E2, R2>,
2208
- onRight: (a: RefSubject<A>) => Fx<C, E3, R3>
2209
- ): <E, R>(fx: Fx<Either.Either<A, E1>, E, R>) => Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope>
2210
-
2211
- <R, E, E1, A, B = never, E2 = never, R2 = never, C = never, E3 = never, R3 = never>(
2212
- fx: Fx<Either.Either<A, E1>, E, R>,
2213
- onLeft: (e: RefSubject<E1>) => Fx<B, E2, R2>,
2214
- onRight: (a: RefSubject<A>) => Fx<C, E3, R3>
2215
- ): Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope>
2216
- } = dual(
2217
- 3,
2218
- function matchEither<R, E, E1, A, B = never, E2 = never, R2 = never, C = never, E3 = never, R3 = never>(
2219
- fx: Fx<Either.Either<A, E1>, E, R>,
2220
- onLeft: (e: RefSubject<E1>) => Fx<B, E2, R2>,
2221
- onRight: (a: RefSubject<A>) => Fx<C, E3, R3>
2222
- ): Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope> {
2223
- return matchTags(fx, {
2224
- Left: (left) => onLeft(transform(left, (a) => a.left, (a) => Either.left(a) as Either.Left<E1, A>)),
2225
- Right: (right) => onRight(transform(right, (s) => s.right, (value) => Either.right(value) as Either.Right<E1, A>))
2226
- })
2227
- }
2228
- )
2229
-
2230
- /**
2231
- * @since 1.20.0
2232
- */
2233
- export const at: {
2234
- (duration: Duration.DurationInput): <A>(value: A) => Fx<A>
2235
- <A>(value: A, duration: Duration.DurationInput): Fx<A>
2236
- } = dual(
2237
- 2,
2238
- <A>(value: A, duration: Duration.DurationInput): Fx<A> => fromEffect(Effect.delay(Effect.succeed(value), duration))
2239
- )
2240
-
2241
- /**
2242
- * @since 1.20.0
2243
- */
2244
- export function drainLayer<FXS extends ReadonlyArray<Fx<any, never, any>>>(
2245
- ...fxs: FXS
2246
- ): Layer.Layer<never, never, Exclude<Fx.Context<FXS[number]>, Scope.Scope>> {
2247
- return Layer.scopedDiscard(
2248
- Effect.forkWithErrorHandler(
2249
- core.drain(core.mergeAll(fxs)),
2250
- (e) => Effect.logError(`Error originating from Fx.drainLayer`, Cause.fail(e))
2251
- )
2252
- )
2253
- }
2254
-
2255
- /**
2256
- * @since 1.20.0
2257
- */
2258
- export const fork = <A, E, R>(fx: Fx<A, E, R>): Effect.Effect<Fiber.RuntimeFiber<void, E>, never, R> =>
2259
- Effect.fork(drain(fx))
2260
-
2261
- /**
2262
- * @since 1.20.0
2263
- */
2264
- export const forkScoped = <A, E, R>(
2265
- fx: Fx<A, E, R>
2266
- ): Effect.Effect<Fiber.RuntimeFiber<void, E>, never, R | Scope.Scope> => Effect.forkScoped(drain(fx))
2267
-
2268
- /**
2269
- * @since 1.20.0
2270
- */
2271
- export const forkDaemon = <A, E, R>(fx: Fx<A, E, R>): Effect.Effect<Fiber.RuntimeFiber<void, E>, never, R> =>
2272
- Effect.forkDaemon(drain(fx))
2273
-
2274
- /**
2275
- * @since 1.20.0
2276
- */
2277
- export const forkIn: {
2278
- (scope: Scope.Scope): <A, E, R>(fx: Fx<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<void, E>, never, R>
2279
- <A, E, R>(fx: Fx<A, E, R>, scope: Scope.Scope): Effect.Effect<Fiber.RuntimeFiber<void, E>, never, R>
2280
- } = dual(2, <A, E, R>(
2281
- fx: Fx<A, E, R>,
2282
- scope: Scope.Scope
2283
- ): Effect.Effect<Fiber.RuntimeFiber<void, E>, never, R> => Effect.forkIn(drain(fx), scope))
2284
-
2285
- /**
2286
- * @since 1.20.0
2287
- */
2288
- export const fromAsyncIterable: <A>(iterable: AsyncIterable<A>) => Fx<A> = core.fromAsyncIterable
2289
-
2290
- /**
2291
- * @since 1.20.0
2292
- */
2293
- export const partitionMap: {
2294
- <A, B, C>(
2295
- f: (a: A) => Either.Either<C, B>
2296
- ): <E, R>(fx: Fx<A, E, R>) => readonly [Fx<B, E, Scope.Scope | R>, Fx<C, E, Scope.Scope | R>]
2297
- <A, E, R, B, C>(
2298
- fx: Fx<A, E, R>,
2299
- f: (a: A) => Either.Either<C, B>
2300
- ): readonly [Fx<B, E, Scope.Scope | R>, Fx<C, E, Scope.Scope | R>]
2301
- } = dual(2, function partitionMap<A, E, R, B, C>(
2302
- fx: Fx<A, E, R>,
2303
- f: (a: A) => Either.Either<C, B>
2304
- ): readonly [Fx<B, E, R | Scope.Scope>, Fx<C, E, R | Scope.Scope>] {
2305
- const source = coreShare.multicast(core.map(fx, f))
2306
-
2307
- return [
2308
- core.filterMap(source, Either.getLeft),
2309
- core.filterMap(source, Either.getRight)
2310
- ]
2311
- })
2312
-
2313
- /**
2314
- * @since 1.20.0
2315
- */
2316
- export const gen: <Y extends Utils.YieldWrap<Effect.Effect<any, any, any>>, FX extends Fx<any, any, any>>(
2317
- f: (_: Effect.Adapter) => Generator<Y, FX, any>
2318
- ) => Fx<
2319
- Fx.Success<FX>,
2320
- (Y extends Utils.YieldWrap<Effect.Effect<infer _, infer E, any>> ? E : never) | Fx.Error<FX>,
2321
- (Y extends Utils.YieldWrap<Effect.Effect<any, any, infer R>> ? R : never) | Fx.Context<FX>
2322
- > = core.gen
2323
-
2324
- /**
2325
- * @since 1.20.0
2326
- */
2327
- export const genScoped: <Y extends Utils.YieldWrap<Effect.Effect<any, any, any>>, FX extends Fx<any, any, any>>(
2328
- f: (_: Effect.Adapter) => Generator<Y, FX, any>
2329
- ) => Fx<
2330
- Fx.Success<FX>,
2331
- (Y extends Utils.YieldWrap<Effect.Effect<infer _, infer E, any>> ? E : never) | Fx.Error<FX>,
2332
- | Exclude<Y extends Utils.YieldWrap<Effect.Effect<any, any, infer R>> ? R : never, Scope.Scope>
2333
- | Exclude<Fx.Context<FX>, Scope.Scope>
2334
- > = core.genScoped
2335
-
2336
- /**
2337
- * @since 1.20.0
2338
- */
2339
- export const findFirst: {
2340
- <A, B extends A>(refinement: Predicate.Refinement<A, B>): <E, R>(fx: Fx<A, E, R>) => Effect.Effect<B, E, R>
2341
- <A>(predicate: Predicate.Predicate<A>): <E, R>(fx: Fx<A, E, R>) => Effect.Effect<A, E, R>
2342
- <A, E, R, B extends A>(fx: Fx<A, E, R>, refinement: Predicate.Refinement<A, B>): Effect.Effect<B, E, R>
2343
- <A, E, R>(fx: Fx<A, E, R>, predicate: Predicate.Predicate<A>): Effect.Effect<A, E, R>
2344
- } = dual(2, core.findFirst)
2345
-
2346
- /**
2347
- * @since 1.20.0
2348
- */
2349
- export const first: <A, E, R>(fx: Fx<A, E, R>) => Effect.Effect<A, E, R> = core.first
2350
-
2351
- /**
2352
- * @since 1.20.0
2353
- */
2354
- export const mergeFirst: {
2355
- <B, E2, R2>(that: Fx<B, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B, E | E2, R | R2>
2356
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, that: Fx<B, E2, R2>): Fx<A, E | E2, R | R2>
2357
- } = dual(2, core.mergeFirst)
2358
-
2359
- /**
2360
- * @since 1.20.0
2361
- */
2362
- export const mergeRace: {
2363
- <B, E2, R2>(that: Fx<B, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B, E | E2, R | R2>
2364
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, that: Fx<B, E2, R2>): Fx<A | B, E | E2, R | R2>
2365
- } = dual(2, core.mergeRace)
2366
-
2367
- /**
2368
- * @since 1.20.0
2369
- */
2370
- export const raceAll: <const FX extends ReadonlyArray<Fx<any, any, any>>>(
2371
- fx: FX
2372
- ) => Fx<Fx.Success<FX[number]>, Fx.Error<FX[number]>, Fx.Context<FX[number]>> = core.raceAll
2373
-
2374
- /**
2375
- * @since 1.20.0
2376
- */
2377
- export const race: {
2378
- <B, E2, R2>(that: Fx<B, E2, R2>): <A, E, R>(fx: Fx<A, E, R>) => Fx<A | B, E | E2, R | R2>
2379
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, that: Fx<B, E2, R2>): Fx<A | B, E | E2, R | R2>
2380
- } = dual(2, core.race)
2381
-
2382
- /**
2383
- * @since 1.20.0
2384
- */
2385
- export const snapshot: {
2386
- <B, E, R, A, C>(sampled: Fx<B, E, R>, g: (a: A, b: B) => C): <E2, R2>(fx: Fx<A, E2, R2>) => Fx<C, E | E2, R | R2>
2387
- <A, E, R, B, E2, R2, C>(fx: Fx<A, E, R>, sampled: Fx<B, E2, R2>, f: (a: A, b: B) => C): Fx<C, E | E2, R | R2>
2388
- } = dual(3, core.snapshot)
2389
-
2390
- /**
2391
- * @since 1.20.0
2392
- */
2393
- export const sample: {
2394
- <B, E, R>(sampled: Fx<B, E, R>): <E2, R2, A>(fx: Fx<A, E2, R2>) => Fx<B, E | E2, R | R2>
2395
- <A, E, R, B, E2, R2>(fx: Fx<A, E, R>, sampled: Fx<B, E2, R2>): Fx<B, E | E2, R | R2>
2396
- } = dual(2, core.sample)
2397
-
2398
- /**
2399
- * @since 1.20.0
2400
- */
2401
- export const snapshotEffect: {
2402
- <B, E2, R2, A, C, E3, R3>(sampled: Fx<B, E2, R2>, g: (a: A, b: B) => Effect.Effect<C, E3, R3>): <E, R>(
2403
- fx: Fx<A, E, R>
2404
- ) => Fx<C, E | E2 | E3, R | R2 | R3>
2405
- <A, E, R, B, E2, R2, C, E3, R3>(
2406
- fx: Fx<A, E, R>,
2407
- sampled: Fx<B, E2, R2>,
2408
- f: (a: A, b: B) => Effect.Effect<C, E3, R3>
2409
- ): Fx<C, E | E2 | E3, R | R2 | R3>
2410
- } = dual(3, core.snapshotEffect)
2411
-
2412
- const if_: {
2413
- <B, E2, R2, C, E3, R3>(options: { readonly onTrue: Fx<B, E2, R2>; readonly onFalse: Fx<C, E3, R3> }): <E, R>(
2414
- bool: Fx<boolean, E, R>
2415
- ) => Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope>
2416
- <B, E, R, E2, R2, C, E3, R3>(
2417
- bool: Fx<boolean, E, R>,
2418
- options: { readonly onTrue: Fx<B, E2, R2>; readonly onFalse: Fx<C, E3, R3> }
2419
- ): Fx<B | C, E | E2 | E3, R | R2 | R3 | Scope.Scope>
2420
- } = dual(2, core.if)
2421
-
2422
- export {
2423
- /**
2424
- * @since 1.20.0
2425
- */
2426
- if_ as if
2427
- }
2428
-
2429
- /**
2430
- * @since 1.20.0
2431
- */
2432
- export const when: {
2433
- <B, C>(
2434
- options: { readonly onTrue: B; readonly onFalse: C }
2435
- ): <E, R>(bool: Fx<boolean, E, R>) => Fx<B | C, E, R | Scope.Scope>
2436
- <B, E, R, C>(
2437
- bool: Fx<boolean, E, R>,
2438
- options: { readonly onTrue: B; readonly onFalse: C }
2439
- ): Fx<B | C, E, R | Scope.Scope>
2440
- } = dual(2, core.when)
2441
-
2442
- /**
2443
- * @since 1.20.0
2444
- */
2445
- export const withEmitter = <A, E = never, E2 = never, R = never>(
2446
- f: (emitter: Emitter.Emitter<A, E>) => Effect.Effect<unknown, E2, R>
2447
- ): Fx<A, E | E2, R | Scope.Scope> => core.make<A, E | E2, R | Scope.Scope>((sink) => Emitter.withEmitter(sink, f))
2448
-
2449
- /**
2450
- * Create an Fx which will wait a specified duration of time where no
2451
- * events have occurred before emitting a value.
2452
- * @since 1.18.0
2453
- */
2454
- export const delay: {
2455
- (delay: Duration.DurationInput): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | Scope.Scope>
2456
- <A, E, R>(fx: Fx<A, E, R>, delay: Duration.DurationInput): Fx<A, E, R | Scope.Scope>
2457
- } = dual(2, function<A, E, R>(fx: Fx<A, E, R>, delay: Duration.DurationInput): Fx<A, E, R | Scope.Scope> {
2458
- return core.flatMap(fx, (a) => core.fromEffect(Effect.delay(Effect.succeed(a), delay)))
2459
- })
2460
-
2461
- /**
2462
- * @since 1.20.0
2463
- */
2464
- export const ensuring: {
2465
- <R2>(finalizer: Effect.Effect<unknown, never, R2>): <A, E, R>(self: Fx<A, E, R>) => Fx<A, E, R | R2>
2466
- <A, E, R, R2>(self: Fx<A, E, R>, finalizer: Effect.Effect<unknown, never, R2>): Fx<A, E, R | R2>
2467
- } = dual(2, function<A, E, R, R2>(
2468
- self: Fx<A, E, R>,
2469
- finalizer: Effect.Effect<unknown, never, R2>
2470
- ): Fx<A, E, R | R2> {
2471
- return core.middleware(self, (effect) => Effect.ensuring(effect, finalizer))
2472
- })
2473
-
2474
- /**
2475
- * @since 1.20.0
2476
- */
2477
- export const flip = <A, E, R>(fx: Fx<A, E, R>): Fx<E, A, R> =>
2478
- core.make<E, A, R>((sink) =>
2479
- fx.run(Sink.make(
2480
- (cause) =>
2481
- Either.match(Cause.failureOrCause(cause), {
2482
- onLeft: (e) => sink.onSuccess(e),
2483
- onRight: (c) => sink.onFailure(c)
2484
- }),
2485
- (a) => sink.onFailure(Cause.fail(a))
2486
- ))
2487
- )
2488
-
2489
- /**
2490
- * @since 1.20.0
2491
- */
2492
- export const fromNullable = <A>(value: A | null | undefined | void): Fx<NonNullable<A>> => {
2493
- if (value === null || value === undefined) {
2494
- return core.empty
2495
- } else {
2496
- return core.succeed(value)
2497
- }
2498
- }
2499
-
2500
- /**
2501
- * @since 1.20.0
2502
- */
2503
- export function fromDequeue<A>(dequeue: Queue.Dequeue<A>): Fx<A>
2504
- export function fromDequeue<I, A>(dequeue: Ctx.Dequeue<I, A>): Fx<A, never, I>
2505
- export function fromDequeue<I, A>(dequeue: Ctx.Dequeue<I, A> | Queue.Dequeue<A>): Fx<A, never, I> {
2506
- return core.make((sink) =>
2507
- Effect.gen(function*() {
2508
- while (yield* dequeueIsActive(dequeue)) {
2509
- yield* Effect.matchCauseEffect(dequeue.take, sink)
2510
- }
2511
- })
2512
- )
2513
- }
2514
-
2515
- /**
2516
- * @internal
2517
- */
2518
- export function dequeueIsActive<I, A>(
2519
- dequeue: Ctx.Dequeue<I, A> | Queue.Dequeue<A>
2520
- ): Effect.Effect<boolean, never, I> {
2521
- if (Queue.DequeueTypeId in dequeue) {
2522
- return Effect.sync(() => dequeue.isActive())
2523
- } else {
2524
- return dequeue.isActive
2525
- }
2526
- }
2527
-
2528
- /**
2529
- * @since 1.20.0
2530
- */
2531
- export function fromPubSub<A>(pubSub: PubSub.PubSub<A>): Fx<A, never, Scope.Scope>
2532
- export function fromPubSub<I, A>(pubSub: Ctx.PubSub<I, A>): Fx<A, never, I | Scope.Scope>
2533
- export function fromPubSub<I, A>(pubSub: Ctx.PubSub<I, A> | PubSub.PubSub<A>): Fx<A, never, I | Scope.Scope> {
2534
- return core.acquireUseRelease(
2535
- pubSub.subscribe,
2536
- (q) => fromDequeue(q),
2537
- (d) => d.shutdown
2538
- )
2539
- }
2540
-
2541
- /**
2542
- * @since 1.20.0
2543
- */
2544
- export abstract class FxEffectBase<A, E, R, B, E2, R2> extends protos.FxEffectBase<A, E, R, B, E2, R2> {
2545
- private _fx: Fx<A, E, R> | undefined
2546
-
2547
- /**
2548
- * @since 1.20.0
2549
- */
2550
- run<R3>(sink: Sink.Sink<A, E, R3>): Effect.Effect<void, never, R | R3> {
2551
- return (this._fx ||= this.toFx()).run(sink)
2552
- }
2553
-
2554
- /**
2555
- * @since 1.20.0
2556
- */
2557
- abstract toFx(): Fx<A, E, R>
2558
-
2559
- /**
2560
- * @since 1.20.0
2561
- */
2562
- abstract toEffect(): Effect.Effect<B, E2, R2>
2563
- }
2564
-
2565
- /**
2566
- * @since 2.0.0
2567
- */
2568
- export function promise<A>(f: (signal: AbortSignal) => Promise<A>) {
2569
- return fromEffect(Effect.promise(f))
2570
- }
2571
-
2572
- /**
2573
- * @since 2.0.0
2574
- */
2575
- export function promiseFx<A, E = never, R = never>(f: (signal: AbortSignal) => Promise<Fx<A, E, R>>) {
2576
- return fromFxEffect(Effect.promise(f))
2577
- }
2578
-
2579
- const void_ = succeed<void>(undefined)
2580
- const null_ = succeed<null>(null)
2581
-
2582
- export {
2583
- /**
2584
- * @since 2.0.0
2585
- */
2586
- null_ as null,
2587
- /**
2588
- * @since 2.0.0
2589
- */
2590
- void_ as void
2591
- }
1
+ export * from "./Fx/index.js";