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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -21
  3. package/dist/Fx/Fx.d.ts +371 -19
  4. package/dist/Fx/Fx.d.ts.map +1 -1
  5. package/dist/Fx/Fx.js +37 -6
  6. package/dist/Fx/TypeId.d.ts +52 -6
  7. package/dist/Fx/TypeId.d.ts.map +1 -1
  8. package/dist/Fx/TypeId.js +41 -4
  9. package/dist/Fx/combinators/additive.d.ts +245 -0
  10. package/dist/Fx/combinators/additive.d.ts.map +1 -0
  11. package/dist/Fx/combinators/additive.js +243 -0
  12. package/dist/Fx/combinators/catch.d.ts +246 -12
  13. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  14. package/dist/Fx/combinators/catch.js +236 -12
  15. package/dist/Fx/combinators/causes.d.ts +25 -2
  16. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  17. package/dist/Fx/combinators/causes.js +25 -2
  18. package/dist/Fx/combinators/changesWithEffect.d.ts +40 -0
  19. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -0
  20. package/dist/Fx/combinators/changesWithEffect.js +48 -0
  21. package/dist/Fx/combinators/compact.d.ts +18 -1
  22. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  23. package/dist/Fx/combinators/compact.js +18 -1
  24. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  25. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  26. package/dist/Fx/combinators/concatMap.js +86 -0
  27. package/dist/Fx/combinators/continueWith.d.ts +113 -5
  28. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  29. package/dist/Fx/combinators/continueWith.js +113 -5
  30. package/dist/Fx/combinators/debounce.d.ts +34 -0
  31. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  32. package/dist/Fx/combinators/debounce.js +35 -0
  33. package/dist/Fx/combinators/delay.d.ts +36 -0
  34. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  35. package/dist/Fx/combinators/delay.js +33 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts +71 -0
  37. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -0
  38. package/dist/Fx/combinators/dropUntil.js +65 -0
  39. package/dist/Fx/combinators/during.d.ts +38 -0
  40. package/dist/Fx/combinators/during.d.ts.map +1 -0
  41. package/dist/Fx/combinators/during.js +85 -0
  42. package/dist/Fx/combinators/ensuring.d.ts +34 -4
  43. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  44. package/dist/Fx/combinators/ensuring.js +34 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
  46. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  47. package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  50. package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
  51. package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
  52. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  53. package/dist/Fx/combinators/exhaustMap.js +38 -1
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  56. package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
  57. package/dist/Fx/combinators/exit.d.ts +23 -2
  58. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  59. package/dist/Fx/combinators/exit.js +23 -2
  60. package/dist/Fx/combinators/filter.d.ts +17 -1
  61. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  62. package/dist/Fx/combinators/filter.js +17 -1
  63. package/dist/Fx/combinators/filterEffect.d.ts +22 -1
  64. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  65. package/dist/Fx/combinators/filterEffect.js +22 -1
  66. package/dist/Fx/combinators/filterMap.d.ts +20 -1
  67. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  68. package/dist/Fx/combinators/filterMap.js +20 -1
  69. package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
  70. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  71. package/dist/Fx/combinators/filterMapEffect.js +21 -1
  72. package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
  73. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  74. package/dist/Fx/combinators/filterMapLoop.js +20 -1
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  77. package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  80. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  83. package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
  84. package/dist/Fx/combinators/flatMap.d.ts +50 -5
  85. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  86. package/dist/Fx/combinators/flatMap.js +36 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
  88. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  89. package/dist/Fx/combinators/flatMapConcurrently.js +51 -4
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  92. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
  94. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  95. package/dist/Fx/combinators/flatMapEffect.js +32 -2
  96. package/dist/Fx/combinators/flip.d.ts +34 -2
  97. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  98. package/dist/Fx/combinators/flip.js +34 -2
  99. package/dist/Fx/combinators/gen.d.ts +29 -10
  100. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  101. package/dist/Fx/combinators/gen.js +28 -4
  102. package/dist/Fx/combinators/genScoped.d.ts +33 -10
  103. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  104. package/dist/Fx/combinators/genScoped.js +31 -3
  105. package/dist/Fx/combinators/grouped.d.ts +89 -0
  106. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  107. package/dist/Fx/combinators/grouped.js +146 -0
  108. package/dist/Fx/combinators/index.d.ts +45 -0
  109. package/dist/Fx/combinators/index.d.ts.map +1 -1
  110. package/dist/Fx/combinators/index.js +45 -0
  111. package/dist/Fx/combinators/keyed.d.ts +124 -10
  112. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  113. package/dist/Fx/combinators/keyed.js +69 -11
  114. package/dist/Fx/combinators/loop.d.ts +17 -1
  115. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  116. package/dist/Fx/combinators/loop.js +17 -1
  117. package/dist/Fx/combinators/loopCause.d.ts +18 -1
  118. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  119. package/dist/Fx/combinators/loopCause.js +18 -1
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
  121. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  122. package/dist/Fx/combinators/loopCauseEffect.js +19 -1
  123. package/dist/Fx/combinators/loopEffect.d.ts +24 -1
  124. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  125. package/dist/Fx/combinators/loopEffect.js +24 -1
  126. package/dist/Fx/combinators/map.d.ts +46 -1
  127. package/dist/Fx/combinators/map.d.ts.map +1 -1
  128. package/dist/Fx/combinators/map.js +43 -1
  129. package/dist/Fx/combinators/mapBoth.d.ts +40 -0
  130. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -0
  131. package/dist/Fx/combinators/mapBoth.js +33 -0
  132. package/dist/Fx/combinators/mapEffect.d.ts +25 -1
  133. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  134. package/dist/Fx/combinators/mapEffect.js +25 -1
  135. package/dist/Fx/combinators/mapError.d.ts +33 -0
  136. package/dist/Fx/combinators/mapError.d.ts.map +1 -0
  137. package/dist/Fx/combinators/mapError.js +32 -0
  138. package/dist/Fx/combinators/mergeAll.d.ts +35 -1
  139. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  140. package/dist/Fx/combinators/mergeAll.js +35 -1
  141. package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
  142. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  143. package/dist/Fx/combinators/mergeOrdered.js +68 -14
  144. package/dist/Fx/combinators/onError.d.ts +34 -4
  145. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  146. package/dist/Fx/combinators/onError.js +34 -4
  147. package/dist/Fx/combinators/onExit.d.ts +29 -3
  148. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  149. package/dist/Fx/combinators/onExit.js +29 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
  151. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  152. package/dist/Fx/combinators/onInterrupt.js +49 -4
  153. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  154. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  155. package/dist/Fx/combinators/pairwise.js +31 -0
  156. package/dist/Fx/combinators/provide.d.ts +162 -8
  157. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  158. package/dist/Fx/combinators/provide.js +154 -6
  159. package/dist/Fx/combinators/race.d.ts +92 -0
  160. package/dist/Fx/combinators/race.d.ts.map +1 -0
  161. package/dist/Fx/combinators/race.js +149 -0
  162. package/dist/Fx/combinators/repeat.d.ts +41 -0
  163. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  164. package/dist/Fx/combinators/repeat.js +57 -0
  165. package/dist/Fx/combinators/result.d.ts +45 -0
  166. package/dist/Fx/combinators/result.d.ts.map +1 -0
  167. package/dist/Fx/combinators/result.js +46 -0
  168. package/dist/Fx/combinators/retry.d.ts +53 -0
  169. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  170. package/dist/Fx/combinators/retry.js +71 -0
  171. package/dist/Fx/combinators/sample.d.ts +31 -0
  172. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  173. package/dist/Fx/combinators/sample.js +42 -0
  174. package/dist/Fx/combinators/scan.d.ts +72 -0
  175. package/dist/Fx/combinators/scan.d.ts.map +1 -0
  176. package/dist/Fx/combinators/scan.js +77 -0
  177. package/dist/Fx/combinators/since.d.ts +30 -0
  178. package/dist/Fx/combinators/since.d.ts.map +1 -0
  179. package/dist/Fx/combinators/since.js +39 -0
  180. package/dist/Fx/combinators/skip.d.ts +45 -1
  181. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  182. package/dist/Fx/combinators/skip.js +43 -1
  183. package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
  184. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  185. package/dist/Fx/combinators/skipRepeats.js +17 -1
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  188. package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
  189. package/dist/Fx/combinators/skipWhile.d.ts +117 -0
  190. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -0
  191. package/dist/Fx/combinators/skipWhile.js +134 -0
  192. package/dist/Fx/combinators/slice.d.ts +97 -2
  193. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  194. package/dist/Fx/combinators/slice.js +45 -1
  195. package/dist/Fx/combinators/switchMap.d.ts +39 -1
  196. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  197. package/dist/Fx/combinators/switchMap.js +43 -5
  198. package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
  199. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  200. package/dist/Fx/combinators/switchMapEffect.js +38 -1
  201. package/dist/Fx/combinators/take.d.ts +46 -1
  202. package/dist/Fx/combinators/take.d.ts.map +1 -1
  203. package/dist/Fx/combinators/take.js +44 -1
  204. package/dist/Fx/combinators/takeUntil.d.ts +62 -2
  205. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  206. package/dist/Fx/combinators/takeUntil.js +62 -2
  207. package/dist/Fx/combinators/takeWhile.d.ts +60 -0
  208. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -0
  209. package/dist/Fx/combinators/takeWhile.js +54 -0
  210. package/dist/Fx/combinators/tapEffect.d.ts +17 -1
  211. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  212. package/dist/Fx/combinators/tapEffect.js +17 -1
  213. package/dist/Fx/combinators/throttle.d.ts +79 -0
  214. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  215. package/dist/Fx/combinators/throttle.js +99 -0
  216. package/dist/Fx/combinators/timeout.d.ts +76 -0
  217. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  218. package/dist/Fx/combinators/timeout.js +110 -0
  219. package/dist/Fx/combinators/tuple.d.ts +32 -2
  220. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  221. package/dist/Fx/combinators/tuple.js +36 -5
  222. package/dist/Fx/combinators/until.d.ts +27 -0
  223. package/dist/Fx/combinators/until.d.ts.map +1 -0
  224. package/dist/Fx/combinators/until.js +56 -0
  225. package/dist/Fx/combinators/unwrap.d.ts +31 -2
  226. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  227. package/dist/Fx/combinators/unwrap.js +30 -1
  228. package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
  229. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  230. package/dist/Fx/combinators/unwrapScoped.js +34 -1
  231. package/dist/Fx/combinators/when.d.ts +37 -2
  232. package/dist/Fx/combinators/when.d.ts.map +1 -1
  233. package/dist/Fx/combinators/when.js +38 -3
  234. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  235. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  236. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  237. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  238. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  239. package/dist/Fx/combinators/withSpan.js +34 -3
  240. package/dist/Fx/combinators/zip.d.ts +135 -0
  241. package/dist/Fx/combinators/zip.d.ts.map +1 -0
  242. package/dist/Fx/combinators/zip.js +160 -0
  243. package/dist/Fx/constructors/at.d.ts +23 -3
  244. package/dist/Fx/constructors/at.d.ts.map +1 -1
  245. package/dist/Fx/constructors/at.js +21 -1
  246. package/dist/Fx/constructors/die.d.ts +22 -1
  247. package/dist/Fx/constructors/die.d.ts.map +1 -1
  248. package/dist/Fx/constructors/die.js +22 -1
  249. package/dist/Fx/constructors/empty.d.ts +19 -1
  250. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  251. package/dist/Fx/constructors/empty.js +19 -1
  252. package/dist/Fx/constructors/fail.d.ts +22 -1
  253. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  254. package/dist/Fx/constructors/fail.js +22 -1
  255. package/dist/Fx/constructors/failCause.d.ts +23 -1
  256. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  257. package/dist/Fx/constructors/failCause.js +23 -1
  258. package/dist/Fx/constructors/fn.d.ts +116 -16
  259. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  260. package/dist/Fx/constructors/fn.js +36 -0
  261. package/dist/Fx/constructors/fromEffect.d.ts +45 -3
  262. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  263. package/dist/Fx/constructors/fromEffect.js +45 -3
  264. package/dist/Fx/constructors/fromFailures.d.ts +25 -1
  265. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  266. package/dist/Fx/constructors/fromFailures.js +25 -1
  267. package/dist/Fx/constructors/fromIterable.d.ts +23 -1
  268. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  269. package/dist/Fx/constructors/fromIterable.js +23 -1
  270. package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
  271. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  272. package/dist/Fx/constructors/fromSchedule.js +28 -3
  273. package/dist/Fx/constructors/index.d.ts +2 -1
  274. package/dist/Fx/constructors/index.d.ts.map +1 -1
  275. package/dist/Fx/constructors/index.js +2 -1
  276. package/dist/Fx/constructors/interrupt.d.ts +22 -2
  277. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  278. package/dist/Fx/constructors/interrupt.js +22 -2
  279. package/dist/Fx/constructors/make.d.ts +151 -4
  280. package/dist/Fx/constructors/make.d.ts.map +1 -1
  281. package/dist/Fx/constructors/make.js +60 -7
  282. package/dist/Fx/constructors/periodic.d.ts +31 -2
  283. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  284. package/dist/Fx/constructors/periodic.js +30 -1
  285. package/dist/Fx/constructors/succeed.d.ts +79 -7
  286. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  287. package/dist/Fx/constructors/succeed.js +79 -7
  288. package/dist/Fx/constructors/suspend.d.ts +28 -0
  289. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  290. package/dist/Fx/constructors/suspend.js +28 -0
  291. package/dist/Fx/constructors/sync.d.ts +32 -0
  292. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  293. package/dist/Fx/constructors/sync.js +32 -0
  294. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  295. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  296. package/dist/Fx/internal/DeferredRef.js +260 -9
  297. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  298. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  299. package/dist/Fx/internal/diff.d.ts +586 -0
  300. package/dist/Fx/internal/diff.d.ts.map +1 -1
  301. package/dist/Fx/internal/diff.js +120 -9
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  304. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
  306. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  307. package/dist/Fx/internal/effectableWithOverride.js +46 -0
  308. package/dist/Fx/internal/equivalence.d.ts +29 -0
  309. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  310. package/dist/Fx/internal/equivalence.js +29 -0
  311. package/dist/Fx/internal/multicast.d.ts +145 -2
  312. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  313. package/dist/Fx/internal/multicast.js +146 -4
  314. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  315. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  316. package/dist/Fx/internal/ring-buffer.js +155 -0
  317. package/dist/Fx/internal/scope.d.ts +184 -0
  318. package/dist/Fx/internal/scope.d.ts.map +1 -1
  319. package/dist/Fx/internal/scope.js +150 -0
  320. package/dist/Fx/internal/yieldable.d.ts +117 -2
  321. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  322. package/dist/Fx/internal/yieldable.js +86 -3
  323. package/dist/Fx/run/collect.d.ts +93 -4
  324. package/dist/Fx/run/collect.d.ts.map +1 -1
  325. package/dist/Fx/run/collect.js +94 -5
  326. package/dist/Fx/run/first.d.ts +23 -1
  327. package/dist/Fx/run/first.d.ts.map +1 -1
  328. package/dist/Fx/run/first.js +23 -1
  329. package/dist/Fx/run/fork.d.ts +52 -2
  330. package/dist/Fx/run/fork.d.ts.map +1 -1
  331. package/dist/Fx/run/fork.js +52 -2
  332. package/dist/Fx/run/observe.d.ts +112 -4
  333. package/dist/Fx/run/observe.d.ts.map +1 -1
  334. package/dist/Fx/run/observe.js +137 -16
  335. package/dist/Fx/run/runPromise.d.ts +45 -2
  336. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  337. package/dist/Fx/run/runPromise.js +45 -2
  338. package/dist/Fx/stream.d.ts +92 -0
  339. package/dist/Fx/stream.d.ts.map +1 -1
  340. package/dist/Fx/stream.js +60 -1
  341. package/dist/Push/Push.d.ts +1286 -98
  342. package/dist/Push/Push.d.ts.map +1 -1
  343. package/dist/Push/Push.js +1074 -88
  344. package/dist/RefArray.d.ts +2 -0
  345. package/dist/RefArray.d.ts.map +1 -0
  346. package/dist/RefArray.js +1 -0
  347. package/dist/RefBigDecimal.d.ts +2 -0
  348. package/dist/RefBigDecimal.d.ts.map +1 -0
  349. package/dist/RefBigDecimal.js +1 -0
  350. package/dist/RefBigInt.d.ts +2 -0
  351. package/dist/RefBigInt.d.ts.map +1 -0
  352. package/dist/RefBigInt.js +1 -0
  353. package/dist/RefBoolean.d.ts +2 -0
  354. package/dist/RefBoolean.d.ts.map +1 -0
  355. package/dist/RefBoolean.js +1 -0
  356. package/dist/RefCause.d.ts +2 -0
  357. package/dist/RefCause.d.ts.map +1 -0
  358. package/dist/RefCause.js +1 -0
  359. package/dist/RefChunk.d.ts +2 -0
  360. package/dist/RefChunk.d.ts.map +1 -0
  361. package/dist/RefChunk.js +1 -0
  362. package/dist/RefDateTime.d.ts +2 -0
  363. package/dist/RefDateTime.d.ts.map +1 -0
  364. package/dist/RefDateTime.js +1 -0
  365. package/dist/RefDuration.d.ts +2 -0
  366. package/dist/RefDuration.d.ts.map +1 -0
  367. package/dist/RefDuration.js +1 -0
  368. package/dist/RefGraph.d.ts +2 -0
  369. package/dist/RefGraph.d.ts.map +1 -0
  370. package/dist/RefGraph.js +1 -0
  371. package/dist/RefHashMap.d.ts +2 -0
  372. package/dist/RefHashMap.d.ts.map +1 -0
  373. package/dist/RefHashMap.js +1 -0
  374. package/dist/RefHashRing.d.ts +2 -0
  375. package/dist/RefHashRing.d.ts.map +1 -0
  376. package/dist/RefHashRing.js +1 -0
  377. package/dist/RefHashSet.d.ts +2 -0
  378. package/dist/RefHashSet.d.ts.map +1 -0
  379. package/dist/RefHashSet.js +1 -0
  380. package/dist/RefIterable.d.ts +2 -0
  381. package/dist/RefIterable.d.ts.map +1 -0
  382. package/dist/RefIterable.js +1 -0
  383. package/dist/RefOption.d.ts +2 -0
  384. package/dist/RefOption.d.ts.map +1 -0
  385. package/dist/RefOption.js +1 -0
  386. package/dist/RefRecord.d.ts +2 -0
  387. package/dist/RefRecord.d.ts.map +1 -0
  388. package/dist/RefRecord.js +1 -0
  389. package/dist/RefResult.d.ts +2 -0
  390. package/dist/RefResult.d.ts.map +1 -0
  391. package/dist/RefResult.js +1 -0
  392. package/dist/RefString.d.ts +2 -0
  393. package/dist/RefString.d.ts.map +1 -0
  394. package/dist/RefString.js +1 -0
  395. package/dist/RefStruct.d.ts +2 -0
  396. package/dist/RefStruct.d.ts.map +1 -0
  397. package/dist/RefStruct.js +1 -0
  398. package/dist/RefSubject/Hydration.d.ts +504 -0
  399. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  400. package/dist/RefSubject/Hydration.js +300 -0
  401. package/dist/RefSubject/RefArray.d.ts +382 -35
  402. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  403. package/dist/RefSubject/RefArray.js +374 -40
  404. package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
  405. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  406. package/dist/RefSubject/RefBigDecimal.js +229 -20
  407. package/dist/RefSubject/RefBigInt.d.ts +181 -16
  408. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  409. package/dist/RefSubject/RefBigInt.js +169 -15
  410. package/dist/RefSubject/RefBoolean.d.ts +181 -16
  411. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  412. package/dist/RefSubject/RefBoolean.js +169 -15
  413. package/dist/RefSubject/RefCause.d.ts +133 -12
  414. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  415. package/dist/RefSubject/RefCause.js +121 -11
  416. package/dist/RefSubject/RefChunk.d.ts +481 -76
  417. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  418. package/dist/RefSubject/RefChunk.js +471 -75
  419. package/dist/RefSubject/RefDateTime.d.ts +137 -16
  420. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  421. package/dist/RefSubject/RefDateTime.js +122 -12
  422. package/dist/RefSubject/RefDuration.d.ts +169 -15
  423. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  424. package/dist/RefSubject/RefDuration.js +157 -14
  425. package/dist/RefSubject/RefGraph.d.ts +349 -35
  426. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  427. package/dist/RefSubject/RefGraph.js +334 -32
  428. package/dist/RefSubject/RefHashMap.d.ts +323 -28
  429. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  430. package/dist/RefSubject/RefHashMap.js +317 -29
  431. package/dist/RefSubject/RefHashRing.d.ts +159 -15
  432. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  433. package/dist/RefSubject/RefHashRing.js +145 -12
  434. package/dist/RefSubject/RefHashSet.d.ts +251 -22
  435. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  436. package/dist/RefSubject/RefHashSet.js +238 -20
  437. package/dist/RefSubject/RefIterable.d.ts +358 -32
  438. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  439. package/dist/RefSubject/RefIterable.js +350 -30
  440. package/dist/RefSubject/RefOption.d.ts +157 -14
  441. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  442. package/dist/RefSubject/RefOption.js +145 -13
  443. package/dist/RefSubject/RefRecord.d.ts +402 -64
  444. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  445. package/dist/RefSubject/RefRecord.js +364 -39
  446. package/dist/RefSubject/RefResult.d.ts +167 -35
  447. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  448. package/dist/RefSubject/RefResult.js +133 -12
  449. package/dist/RefSubject/RefString.d.ts +205 -18
  450. package/dist/RefSubject/RefString.d.ts.map +1 -1
  451. package/dist/RefSubject/RefString.js +193 -17
  452. package/dist/RefSubject/RefStruct.d.ts +169 -14
  453. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  454. package/dist/RefSubject/RefStruct.js +157 -13
  455. package/dist/RefSubject/RefSubject.d.ts +1242 -43
  456. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  457. package/dist/RefSubject/RefSubject.js +1012 -86
  458. package/dist/RefSubject/RefTrie.d.ts +323 -37
  459. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  460. package/dist/RefSubject/RefTrie.js +311 -31
  461. package/dist/RefSubject/RefTuple.d.ts +127 -11
  462. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  463. package/dist/RefSubject/RefTuple.js +114 -9
  464. package/dist/RefSubject/index.d.ts +1 -0
  465. package/dist/RefSubject/index.d.ts.map +1 -1
  466. package/dist/RefSubject/index.js +1 -0
  467. package/dist/RefSubject.d.ts +2 -1
  468. package/dist/RefSubject.d.ts.map +1 -1
  469. package/dist/RefSubject.js +2 -1
  470. package/dist/RefTrie.d.ts +2 -0
  471. package/dist/RefTrie.d.ts.map +1 -0
  472. package/dist/RefTrie.js +1 -0
  473. package/dist/RefTuple.d.ts +2 -0
  474. package/dist/RefTuple.d.ts.map +1 -0
  475. package/dist/RefTuple.js +1 -0
  476. package/dist/Sink/Sink.d.ts +396 -23
  477. package/dist/Sink/Sink.d.ts.map +1 -1
  478. package/dist/Sink/Sink.js +55 -7
  479. package/dist/Sink/combinators.d.ts +789 -3
  480. package/dist/Sink/combinators.d.ts.map +1 -1
  481. package/dist/Sink/combinators.js +812 -7
  482. package/dist/Subject/Subject.d.ts +1022 -27
  483. package/dist/Subject/Subject.d.ts.map +1 -1
  484. package/dist/Subject/Subject.js +909 -43
  485. package/dist/Versioned/Versioned.d.ts +475 -25
  486. package/dist/Versioned/Versioned.d.ts.map +1 -1
  487. package/dist/Versioned/Versioned.js +298 -46
  488. package/dist/index.d.ts +22 -3
  489. package/dist/index.d.ts.map +1 -1
  490. package/dist/index.js +22 -3
  491. package/package.json +125 -11
  492. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  493. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  494. package/dist/Fx/constructors/fromYieldable.js +0 -12
  495. package/src/Fx/Fx.ts +0 -164
  496. package/src/Fx/TypeId.ts +0 -25
  497. package/src/Fx/combinators/catch.ts +0 -165
  498. package/src/Fx/combinators/causes.ts +0 -23
  499. package/src/Fx/combinators/compact.ts +0 -15
  500. package/src/Fx/combinators/continueWith.ts +0 -78
  501. package/src/Fx/combinators/ensuring.ts +0 -23
  502. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  503. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  504. package/src/Fx/combinators/exhaustMap.ts +0 -36
  505. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  506. package/src/Fx/combinators/exit.ts +0 -15
  507. package/src/Fx/combinators/filter.ts +0 -22
  508. package/src/Fx/combinators/filterEffect.ts +0 -31
  509. package/src/Fx/combinators/filterMap.ts +0 -23
  510. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  511. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  512. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  513. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  514. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  515. package/src/Fx/combinators/flatMap.ts +0 -51
  516. package/src/Fx/combinators/flatMapConcurrently.ts +0 -36
  517. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  518. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  519. package/src/Fx/combinators/flip.ts +0 -14
  520. package/src/Fx/combinators/gen.ts +0 -24
  521. package/src/Fx/combinators/genScoped.ts +0 -24
  522. package/src/Fx/combinators/index.ts +0 -51
  523. package/src/Fx/combinators/keyed.ts +0 -369
  524. package/src/Fx/combinators/loop.ts +0 -27
  525. package/src/Fx/combinators/loopCause.ts +0 -34
  526. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  527. package/src/Fx/combinators/loopEffect.ts +0 -34
  528. package/src/Fx/combinators/map.ts +0 -22
  529. package/src/Fx/combinators/mapEffect.ts +0 -32
  530. package/src/Fx/combinators/mergeAll.ts +0 -22
  531. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  532. package/src/Fx/combinators/onError.ts +0 -40
  533. package/src/Fx/combinators/onExit.ts +0 -82
  534. package/src/Fx/combinators/onInterrupt.ts +0 -87
  535. package/src/Fx/combinators/provide.ts +0 -62
  536. package/src/Fx/combinators/skip.ts +0 -20
  537. package/src/Fx/combinators/skipRepeats.ts +0 -15
  538. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  539. package/src/Fx/combinators/slice.ts +0 -32
  540. package/src/Fx/combinators/switchMap.ts +0 -55
  541. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  542. package/src/Fx/combinators/take.ts +0 -17
  543. package/src/Fx/combinators/takeUntil.ts +0 -50
  544. package/src/Fx/combinators/tapEffect.ts +0 -39
  545. package/src/Fx/combinators/tuple.ts +0 -79
  546. package/src/Fx/combinators/unwrap.ts +0 -21
  547. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  548. package/src/Fx/combinators/when.ts +0 -64
  549. package/src/Fx/combinators/withSpan.ts +0 -24
  550. package/src/Fx/constructors/at.ts +0 -23
  551. package/src/Fx/constructors/die.ts +0 -17
  552. package/src/Fx/constructors/empty.ts +0 -10
  553. package/src/Fx/constructors/fail.ts +0 -14
  554. package/src/Fx/constructors/failCause.ts +0 -14
  555. package/src/Fx/constructors/fn.ts +0 -245
  556. package/src/Fx/constructors/fromEffect.ts +0 -24
  557. package/src/Fx/constructors/fromFailures.ts +0 -19
  558. package/src/Fx/constructors/fromIterable.ts +0 -15
  559. package/src/Fx/constructors/fromSchedule.ts +0 -18
  560. package/src/Fx/constructors/fromYieldable.ts +0 -17
  561. package/src/Fx/constructors/index.ts +0 -15
  562. package/src/Fx/constructors/interrupt.ts +0 -13
  563. package/src/Fx/constructors/make.ts +0 -103
  564. package/src/Fx/constructors/periodic.ts +0 -15
  565. package/src/Fx/constructors/succeed.ts +0 -37
  566. package/src/Fx/constructors/suspend.ts +0 -6
  567. package/src/Fx/index.ts +0 -6
  568. package/src/Fx/internal/DeferredRef.ts +0 -87
  569. package/src/Fx/internal/UnionToTuple.ts +0 -12
  570. package/src/Fx/internal/diff.ts +0 -191
  571. package/src/Fx/internal/equivalence.ts +0 -12
  572. package/src/Fx/internal/multicast.ts +0 -51
  573. package/src/Fx/internal/ring-buffer.ts +0 -60
  574. package/src/Fx/internal/scope.ts +0 -58
  575. package/src/Fx/internal/yieldable.ts +0 -31
  576. package/src/Fx/run/collect.ts +0 -79
  577. package/src/Fx/run/first.ts +0 -20
  578. package/src/Fx/run/fork.ts +0 -40
  579. package/src/Fx/run/index.ts +0 -5
  580. package/src/Fx/run/observe.ts +0 -114
  581. package/src/Fx/run/runPromise.ts +0 -32
  582. package/src/Fx/stream.ts +0 -42
  583. package/src/Fx.catch.test.ts +0 -61
  584. package/src/Fx.fn.test.ts +0 -51
  585. package/src/Fx.lifecycle.test.ts +0 -80
  586. package/src/Fx.test.ts +0 -71
  587. package/src/Fx.ts +0 -1
  588. package/src/Push/Push.ts +0 -903
  589. package/src/Push/index.ts +0 -1
  590. package/src/Push.test.ts +0 -26
  591. package/src/Push.ts +0 -1
  592. package/src/RefSubject/RefArray.ts +0 -512
  593. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  594. package/src/RefSubject/RefBigDecimal.ts +0 -295
  595. package/src/RefSubject/RefBigInt.test.ts +0 -56
  596. package/src/RefSubject/RefBigInt.ts +0 -189
  597. package/src/RefSubject/RefBoolean.test.ts +0 -57
  598. package/src/RefSubject/RefBoolean.ts +0 -185
  599. package/src/RefSubject/RefCause.test.ts +0 -53
  600. package/src/RefSubject/RefCause.ts +0 -146
  601. package/src/RefSubject/RefChunk.ts +0 -510
  602. package/src/RefSubject/RefDateTime.test.ts +0 -43
  603. package/src/RefSubject/RefDateTime.ts +0 -264
  604. package/src/RefSubject/RefDuration.test.ts +0 -49
  605. package/src/RefSubject/RefDuration.ts +0 -188
  606. package/src/RefSubject/RefGraph.ts +0 -650
  607. package/src/RefSubject/RefHashMap.ts +0 -465
  608. package/src/RefSubject/RefHashRing.ts +0 -262
  609. package/src/RefSubject/RefHashSet.ts +0 -308
  610. package/src/RefSubject/RefIterable.ts +0 -445
  611. package/src/RefSubject/RefOption.test.ts +0 -67
  612. package/src/RefSubject/RefOption.ts +0 -193
  613. package/src/RefSubject/RefRecord.ts +0 -612
  614. package/src/RefSubject/RefResult.test.ts +0 -63
  615. package/src/RefSubject/RefResult.ts +0 -209
  616. package/src/RefSubject/RefString.test.ts +0 -61
  617. package/src/RefSubject/RefString.ts +0 -256
  618. package/src/RefSubject/RefStruct.test.ts +0 -60
  619. package/src/RefSubject/RefStruct.ts +0 -253
  620. package/src/RefSubject/RefSubject.ts +0 -2545
  621. package/src/RefSubject/RefTrie.ts +0 -356
  622. package/src/RefSubject/RefTuple.test.ts +0 -60
  623. package/src/RefSubject/RefTuple.ts +0 -231
  624. package/src/RefSubject/index.ts +0 -21
  625. package/src/RefSubject.test.ts +0 -65
  626. package/src/RefSubject.ts +0 -1
  627. package/src/Sink/Sink.ts +0 -159
  628. package/src/Sink/combinators.ts +0 -993
  629. package/src/Sink/index.ts +0 -2
  630. package/src/Sink.ts +0 -1
  631. package/src/Subject/Subject.ts +0 -441
  632. package/src/Subject/index.ts +0 -1
  633. package/src/Subject.test.ts +0 -47
  634. package/src/Subject.ts +0 -1
  635. package/src/Versioned/Versioned.ts +0 -521
  636. package/src/Versioned/index.ts +0 -1
  637. package/src/Versioned.test.ts +0 -23
  638. package/src/Versioned.ts +0 -1
  639. package/src/index.ts +0 -7
  640. package/tsconfig.json +0 -6
@@ -1,356 +0,0 @@
1
- /**
2
- * Extensions to RefSubject for working with Trie values
3
- * @since 1.18.0
4
- */
5
-
6
- import type * as Effect from "effect/Effect";
7
- import { equals } from "effect/Equal";
8
- import { dual } from "effect/Function";
9
- import type * as Option from "effect/Option";
10
- import type * as Scope from "effect/Scope";
11
- import * as Trie from "effect/Trie";
12
- import type * as Fx from "../Fx/index.js";
13
- import * as RefSubject from "./RefSubject.js";
14
-
15
- /**
16
- * A RefTrie is a RefSubject specialized over a Trie.
17
- * @since 1.18.0
18
- * @category models
19
- */
20
- export interface RefTrie<in out V, in out E = never, out R = never> extends RefSubject.RefSubject<
21
- Trie.Trie<V>,
22
- E,
23
- R
24
- > {}
25
-
26
- /**
27
- * Creates a new `RefTrie` from a Trie, `Effect`, or `Fx`.
28
- * @since 1.18.0
29
- * @category constructors
30
- */
31
- export function make<V, E, R>(
32
- initial: Trie.Trie<V> | Effect.Effect<Trie.Trie<V>, E, R> | Fx.Fx<Trie.Trie<V>, E, R>,
33
- ): Effect.Effect<RefTrie<V, E>, never, R | Scope.Scope> {
34
- return RefSubject.make(initial, { eq: equals });
35
- }
36
-
37
- // ========================================
38
- // Combinators
39
- // ========================================
40
-
41
- /**
42
- * Insert a key-value pair into the Trie.
43
- * @since 1.18.0
44
- * @category combinators
45
- */
46
- export const insert: {
47
- <V>(key: string, value: V): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
48
- <V, E, R>(ref: RefTrie<V, E, R>, key: string, value: V): Effect.Effect<Trie.Trie<V>, E, R>;
49
- } = dual(3, function insert<V, E, R>(ref: RefTrie<V, E, R>, key: string, value: V) {
50
- return RefSubject.update(ref, Trie.insert(key, value));
51
- });
52
-
53
- /**
54
- * Insert multiple key-value pairs into the Trie.
55
- * @since 1.18.0
56
- * @category combinators
57
- */
58
- export const insertMany: {
59
- <V>(
60
- entries: Iterable<[string, V]>,
61
- ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
62
- <V, E, R>(
63
- ref: RefTrie<V, E, R>,
64
- entries: Iterable<[string, V]>,
65
- ): Effect.Effect<Trie.Trie<V>, E, R>;
66
- } = dual(2, function insertMany<V, E, R>(ref: RefTrie<V, E, R>, entries: Iterable<[string, V]>) {
67
- return RefSubject.update(ref, Trie.insertMany(entries));
68
- });
69
-
70
- /**
71
- * Remove a key from the Trie.
72
- * @since 1.18.0
73
- * @category combinators
74
- */
75
- export const remove: {
76
- (key: string): <V, E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
77
- <V, E, R>(ref: RefTrie<V, E, R>, key: string): Effect.Effect<Trie.Trie<V>, E, R>;
78
- } = dual(2, function remove<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
79
- return RefSubject.update(ref, Trie.remove(key));
80
- });
81
-
82
- /**
83
- * Remove multiple keys from the Trie.
84
- * @since 1.18.0
85
- * @category combinators
86
- */
87
- export const removeMany: {
88
- (keys: Iterable<string>): <V, E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
89
- <V, E, R>(ref: RefTrie<V, E, R>, keys: Iterable<string>): Effect.Effect<Trie.Trie<V>, E, R>;
90
- } = dual(2, function removeMany<V, E, R>(ref: RefTrie<V, E, R>, keys: Iterable<string>) {
91
- return RefSubject.update(ref, Trie.removeMany(keys));
92
- });
93
-
94
- /**
95
- * Modify the value at a key if it exists.
96
- * @since 1.18.0
97
- * @category combinators
98
- */
99
- export const modify: {
100
- <V>(
101
- key: string,
102
- f: (v: V) => V,
103
- ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
104
- <V, E, R>(ref: RefTrie<V, E, R>, key: string, f: (v: V) => V): Effect.Effect<Trie.Trie<V>, E, R>;
105
- } = dual(3, function modify<V, E, R>(ref: RefTrie<V, E, R>, key: string, f: (v: V) => V) {
106
- return RefSubject.update(ref, Trie.modify(key, f));
107
- });
108
-
109
- /**
110
- * Clear all entries from the Trie.
111
- * @since 1.18.0
112
- * @category combinators
113
- */
114
- export const clear = <V, E, R>(ref: RefTrie<V, E, R>): Effect.Effect<Trie.Trie<V>, E, R> =>
115
- RefSubject.update(ref, () => Trie.empty());
116
-
117
- /**
118
- * Map values in place (endomorphic).
119
- * @since 1.18.0
120
- * @category combinators
121
- */
122
- export const map: {
123
- <V>(
124
- f: (value: V, key: string) => V,
125
- ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
126
- <V, E, R>(
127
- ref: RefTrie<V, E, R>,
128
- f: (value: V, key: string) => V,
129
- ): Effect.Effect<Trie.Trie<V>, E, R>;
130
- } = dual(2, function map<V, E, R>(ref: RefTrie<V, E, R>, f: (value: V, key: string) => V) {
131
- return RefSubject.update(ref, Trie.map(f));
132
- });
133
-
134
- /**
135
- * Filter entries in place.
136
- * @since 1.18.0
137
- * @category combinators
138
- */
139
- export const filter: {
140
- <V>(
141
- predicate: (value: V, key: string) => boolean,
142
- ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
143
- <V, E, R>(
144
- ref: RefTrie<V, E, R>,
145
- predicate: (value: V, key: string) => boolean,
146
- ): Effect.Effect<Trie.Trie<V>, E, R>;
147
- } = dual(2, function filter<
148
- V,
149
- E,
150
- R,
151
- >(ref: RefTrie<V, E, R>, predicate: (value: V, key: string) => boolean) {
152
- return RefSubject.update(ref, Trie.filter(predicate));
153
- });
154
-
155
- /**
156
- * Filter and map entries in place.
157
- * @since 1.18.0
158
- * @category combinators
159
- */
160
- export const filterMap: {
161
- <V>(
162
- f: (value: V, key: string) => Option.Option<V>,
163
- ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
164
- <V, E, R>(
165
- ref: RefTrie<V, E, R>,
166
- f: (value: V, key: string) => Option.Option<V>,
167
- ): Effect.Effect<Trie.Trie<V>, E, R>;
168
- } = dual(2, function filterMap<
169
- V,
170
- E,
171
- R,
172
- >(ref: RefTrie<V, E, R>, f: (value: V, key: string) => Option.Option<V>) {
173
- return RefSubject.update(ref, Trie.filterMap(f));
174
- });
175
-
176
- // ========================================
177
- // Computed
178
- // ========================================
179
-
180
- /**
181
- * Compact Option values.
182
- * @since 1.18.0
183
- * @category computed
184
- */
185
- export const compact = <V, E, R>(ref: RefTrie<Option.Option<V>, E, R>) =>
186
- RefSubject.map(ref, Trie.compact);
187
-
188
- /**
189
- * Get the current size of the Trie.
190
- * @since 1.18.0
191
- * @category computed
192
- */
193
- export const size = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<number, E, R> =>
194
- RefSubject.map(ref, Trie.size);
195
-
196
- /**
197
- * Check if the Trie is empty.
198
- * @since 1.18.0
199
- * @category computed
200
- */
201
- export const isEmpty = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<boolean, E, R> =>
202
- RefSubject.map(ref, Trie.isEmpty);
203
-
204
- /**
205
- * Check if the Trie is non-empty.
206
- * @since 1.18.0
207
- * @category computed
208
- */
209
- export const isNonEmpty = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<boolean, E, R> =>
210
- RefSubject.map(ref, (t) => !Trie.isEmpty(t));
211
-
212
- /**
213
- * Check if a key exists in the Trie.
214
- * @since 1.18.0
215
- * @category computed
216
- */
217
- export const has: {
218
- (key: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<boolean, E, R>;
219
- <V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Computed<boolean, E, R>;
220
- } = dual(2, function has<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
221
- return RefSubject.map(ref, Trie.has(key));
222
- });
223
-
224
- /**
225
- * Get all keys from the Trie.
226
- * @since 1.18.0
227
- * @category computed
228
- */
229
- export const keys = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<Array<string>, E, R> =>
230
- RefSubject.map(ref, (t) => Array.from(Trie.keys(t)));
231
-
232
- /**
233
- * Get all values from the Trie.
234
- * @since 1.18.0
235
- * @category computed
236
- */
237
- export const values = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<Array<V>, E, R> =>
238
- RefSubject.map(ref, (t) => Array.from(Trie.values(t)));
239
-
240
- /**
241
- * Get all entries from the Trie.
242
- * @since 1.18.0
243
- * @category computed
244
- */
245
- export const entries = <V, E, R>(
246
- ref: RefTrie<V, E, R>,
247
- ): RefSubject.Computed<Array<[string, V]>, E, R> => RefSubject.map(ref, Trie.toEntries);
248
-
249
- /**
250
- * Get all keys with a given prefix.
251
- * @since 1.18.0
252
- * @category computed
253
- */
254
- export const keysWithPrefix: {
255
- (prefix: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<string>, E, R>;
256
- <V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<string>, E, R>;
257
- } = dual(2, function keysWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
258
- return RefSubject.map(ref, (t) => Array.from(Trie.keysWithPrefix(t, prefix)));
259
- });
260
-
261
- /**
262
- * Get all values with a given prefix.
263
- * @since 1.18.0
264
- * @category computed
265
- */
266
- export const valuesWithPrefix: {
267
- (prefix: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<V>, E, R>;
268
- <V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<V>, E, R>;
269
- } = dual(2, function valuesWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
270
- return RefSubject.map(ref, (t) => Array.from(Trie.valuesWithPrefix(t, prefix)));
271
- });
272
-
273
- /**
274
- * Get all entries with a given prefix.
275
- * @since 1.18.0
276
- * @category computed
277
- */
278
- export const entriesWithPrefix: {
279
- (
280
- prefix: string,
281
- ): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<[string, V]>, E, R>;
282
- <V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<[string, V]>, E, R>;
283
- } = dual(2, function entriesWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
284
- return RefSubject.map(ref, Trie.toEntriesWithPrefix(prefix));
285
- });
286
-
287
- /**
288
- * Get the longest prefix of a key that exists in the Trie.
289
- * @since 1.18.0
290
- * @category computed
291
- */
292
- export const longestPrefixOf: {
293
- (
294
- key: string,
295
- ): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<[string, V] | undefined, E, R>;
296
- <V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Computed<[string, V] | undefined, E, R>;
297
- } = dual(2, function longestPrefixOf<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
298
- return RefSubject.map(ref, Trie.longestPrefixOf(key));
299
- });
300
-
301
- /**
302
- * Map values to a different type.
303
- * @since 1.18.0
304
- * @category computed
305
- */
306
- export const mapValues: {
307
- <V, B>(
308
- f: (value: V, key: string) => B,
309
- ): <E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Trie.Trie<B>, E, R>;
310
- <V, E, R, B>(
311
- ref: RefTrie<V, E, R>,
312
- f: (value: V, key: string) => B,
313
- ): RefSubject.Computed<Trie.Trie<B>, E, R>;
314
- } = dual(2, function mapValues<V, E, R, B>(ref: RefTrie<V, E, R>, f: (value: V, key: string) => B) {
315
- return RefSubject.map(ref, Trie.map(f));
316
- });
317
-
318
- /**
319
- * Reduce the entries to a single value.
320
- * @since 1.18.0
321
- * @category computed
322
- */
323
- export const reduce: {
324
- <V, B>(
325
- b: B,
326
- f: (b: B, value: V, key: string) => B,
327
- ): <E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<B, E, R>;
328
- <V, E, R, B>(
329
- ref: RefTrie<V, E, R>,
330
- b: B,
331
- f: (b: B, value: V, key: string) => B,
332
- ): RefSubject.Computed<B, E, R>;
333
- } = dual(3, function reduce<
334
- V,
335
- E,
336
- R,
337
- B,
338
- >(ref: RefTrie<V, E, R>, b: B, f: (b: B, value: V, key: string) => B) {
339
- return RefSubject.map(ref, Trie.reduce(b, f));
340
- });
341
-
342
- // ========================================
343
- // Filtered
344
- // ========================================
345
-
346
- /**
347
- * Get the value at a key as a Filtered.
348
- * @since 1.18.0
349
- * @category filtered
350
- */
351
- export const get: {
352
- (key: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Filtered<V, E, R>;
353
- <V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Filtered<V, E, R>;
354
- } = dual(2, function get<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
355
- return RefSubject.filterMap(ref, Trie.get(key));
356
- });
@@ -1,60 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { Effect } from "effect";
3
- import * as Tuple from "effect/Tuple";
4
- import * as RefTuple from "./RefTuple.js";
5
-
6
- describe("RefTuple", () => {
7
- it("creates and gets value", () =>
8
- Effect.gen(function* () {
9
- const value = Tuple.make(1, "hello", true);
10
- const ref = yield* RefTuple.make(value);
11
- const current = yield* ref;
12
- expect(current).toEqual(value);
13
- }).pipe(Effect.scoped, Effect.runPromise));
14
-
15
- it("sets value at index", () =>
16
- Effect.gen(function* () {
17
- const ref = yield* RefTuple.make(Tuple.make(1, "hello", true));
18
- yield* RefTuple.setAt(ref, 1, "world");
19
- const result = yield* ref;
20
- expect(result[1]).toBe("world");
21
- expect(result[0]).toBe(1);
22
- expect(result[2]).toBe(true);
23
- }).pipe(Effect.scoped, Effect.runPromise));
24
-
25
- it("updates value at index", () =>
26
- Effect.gen(function* () {
27
- const ref = yield* RefTuple.make(Tuple.make(1, 2, 3));
28
- yield* RefTuple.updateAt(ref, 1, (n) => n * 2);
29
- const result = yield* ref;
30
- expect(result[1]).toBe(4);
31
- }).pipe(Effect.scoped, Effect.runPromise));
32
-
33
- it("appends element", () =>
34
- Effect.gen(function* () {
35
- const ref = yield* RefTuple.make(Tuple.make(1, 2));
36
- const result = yield* RefTuple.appendElement(ref, 3);
37
- expect(result).toEqual([1, 2, 3]);
38
- }).pipe(Effect.scoped, Effect.runPromise));
39
-
40
- it("prepends element", () =>
41
- Effect.gen(function* () {
42
- const ref = yield* RefTuple.make(Tuple.make(2, 3));
43
- const result = yield* RefTuple.prependElement(ref, 1);
44
- expect(result).toEqual([1, 2, 3]);
45
- }).pipe(Effect.scoped, Effect.runPromise));
46
-
47
- it("gets element at index", () =>
48
- Effect.gen(function* () {
49
- const ref = yield* RefTuple.make(Tuple.make(1, "hello", true));
50
- const value = yield* RefTuple.get(ref, 1);
51
- expect(value).toBe("hello");
52
- }).pipe(Effect.scoped, Effect.runPromise));
53
-
54
- it("gets length", () =>
55
- Effect.gen(function* () {
56
- const ref = yield* RefTuple.make(Tuple.make(1, 2, 3));
57
- const length = yield* RefTuple.length(ref);
58
- expect(length).toBe(3);
59
- }).pipe(Effect.scoped, Effect.runPromise));
60
- });
@@ -1,231 +0,0 @@
1
- /**
2
- * Extensions to RefSubject for working with tuple values
3
- * @since 1.18.0
4
- */
5
-
6
- import type * as Effect from "effect/Effect";
7
- import { equals } from "effect/Equal";
8
- import * as Equivalence_ from "effect/Equivalence";
9
- import type { Equivalence } from "effect/Equivalence";
10
- import { dual } from "effect/Function";
11
- import type * as Scope from "effect/Scope";
12
- import * as Tuple from "effect/Tuple";
13
- import type * as Fx from "../Fx/index.js";
14
- import * as RefSubject from "./RefSubject.js";
15
-
16
- /**
17
- * A RefTuple is a RefSubject specialized over a tuple value.
18
- * @since 1.18.0
19
- * @category models
20
- */
21
- export interface RefTuple<
22
- in out T extends ReadonlyArray<unknown>,
23
- in out E = never,
24
- out R = never,
25
- > extends RefSubject.RefSubject<T, E, R> {}
26
-
27
- /**
28
- * Creates a new `RefTuple` from a tuple, `Effect`, or `Fx`.
29
- *
30
- * @example
31
- * ```ts
32
- * import { Effect, Tuple } from "effect"
33
- * import * as RefTuple from "effect/typed/fx/RefSubject/RefTuple"
34
- *
35
- * const program = Effect.gen(function* () {
36
- * const value = yield* RefTuple.make(Tuple.make(1, "hello", true))
37
- * const current = yield* value
38
- * console.log(current) // [1, "hello", true]
39
- * })
40
- * ```
41
- *
42
- * @since 1.18.0
43
- * @category constructors
44
- */
45
- export function make<T extends ReadonlyArray<unknown>, E = never, R = never>(
46
- initial: T | Effect.Effect<T, E, R> | Fx.Fx<T, E, R>,
47
- eq: Equivalence<T> = Equivalence_.make((a, b) => equals(a, b)),
48
- ): Effect.Effect<RefTuple<T, E>, never, R | Scope.Scope> {
49
- return RefSubject.make(initial, { eq });
50
- }
51
-
52
- /**
53
- * Set the value at a specific index in the current state of a RefTuple.
54
- * @since 1.18.0
55
- * @category combinators
56
- */
57
- export const setAt: {
58
- <T extends ReadonlyArray<unknown>, I extends number>(
59
- index: I,
60
- value: T[I],
61
- ): <E, R>(ref: RefTuple<T, E, R>) => Effect.Effect<T, E, R>;
62
- <T extends ReadonlyArray<unknown>, I extends number, E, R>(
63
- ref: RefTuple<T, E, R>,
64
- index: I,
65
- value: T[I],
66
- ): Effect.Effect<T, E, R>;
67
- } = dual(3, function setAt<
68
- T extends ReadonlyArray<unknown>,
69
- I extends number,
70
- E,
71
- R,
72
- >(ref: RefTuple<T, E, R>, index: I, value: T[I]) {
73
- return RefSubject.update(ref, (self) => {
74
- const result = [...self] as unknown as T;
75
- result[index] = value;
76
- return result;
77
- });
78
- });
79
-
80
- /**
81
- * Update the value at a specific index in the current state of a RefTuple using a function.
82
- * @since 1.18.0
83
- * @category combinators
84
- */
85
- export const updateAt: {
86
- <T extends ReadonlyArray<unknown>, I extends number>(
87
- index: I,
88
- f: (value: T[I]) => T[I],
89
- ): <E, R>(ref: RefTuple<T, E, R>) => Effect.Effect<T, E, R>;
90
- <T extends ReadonlyArray<unknown>, I extends number, E, R>(
91
- ref: RefTuple<T, E, R>,
92
- index: I,
93
- f: (value: T[I]) => T[I],
94
- ): Effect.Effect<T, E, R>;
95
- } = dual(3, function updateAt<
96
- T extends ReadonlyArray<unknown>,
97
- I extends number,
98
- E,
99
- R,
100
- >(ref: RefTuple<T, E, R>, index: I, f: (value: T[I]) => T[I]) {
101
- return RefSubject.update(ref, (self) => Tuple.evolve(self, { [index]: f } as any) as T);
102
- });
103
-
104
- // ========================================
105
- // Computed
106
- // ========================================
107
-
108
- /**
109
- * Append an element to the end of the current state of a RefTuple.
110
- * @since 1.18.0
111
- * @category computed
112
- */
113
- export const appendElement: {
114
- <E>(
115
- element: E,
116
- ): <T extends ReadonlyArray<unknown>, Err, R>(
117
- ref: RefTuple<T, Err, R>,
118
- ) => RefSubject.Computed<[...T, E], Err, R>;
119
- <T extends ReadonlyArray<unknown>, E, Err, R>(
120
- ref: RefTuple<T, Err, R>,
121
- element: E,
122
- ): RefSubject.Computed<[...T, E], Err, R>;
123
- } = dual(2, function appendElement<
124
- T extends ReadonlyArray<unknown>,
125
- E,
126
- Err,
127
- R,
128
- >(ref: RefTuple<T, Err, R>, element: E) {
129
- return RefSubject.map(ref, (self) => Tuple.appendElement(self, element));
130
- });
131
-
132
- /**
133
- * Prepend an element to the beginning of the current state of a RefTuple.
134
- * @since 1.18.0
135
- * @category computed
136
- */
137
- export const prependElement: {
138
- <E>(
139
- element: E,
140
- ): <T extends ReadonlyArray<unknown>, Err, R>(
141
- ref: RefTuple<T, Err, R>,
142
- ) => RefSubject.Computed<[E, ...T], Err, R>;
143
- <T extends ReadonlyArray<unknown>, E, Err, R>(
144
- ref: RefTuple<T, Err, R>,
145
- element: E,
146
- ): RefSubject.Computed<[E, ...T], Err, R>;
147
- } = dual(2, function prependElement<
148
- T extends ReadonlyArray<unknown>,
149
- E,
150
- Err,
151
- R,
152
- >(ref: RefTuple<T, Err, R>, element: E) {
153
- return RefSubject.map(ref, (self) => [element, ...self] as [E, ...T]);
154
- });
155
-
156
- /**
157
- * Get the element at a specific index from the current state of a RefTuple.
158
- * @since 1.18.0
159
- * @category computed
160
- */
161
- type Indices<T extends ReadonlyArray<unknown>> = Exclude<Partial<T>["length"], T["length"]>;
162
-
163
- export const get: {
164
- <T extends ReadonlyArray<unknown>, I extends Indices<T> & keyof T>(
165
- index: I,
166
- ): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<T[I], E, R>;
167
- <T extends ReadonlyArray<unknown>, I extends Indices<T> & keyof T, E, R>(
168
- ref: RefTuple<T, E, R>,
169
- index: I,
170
- ): RefSubject.Computed<T[I], E, R>;
171
- } = dual(2, function get<
172
- T extends ReadonlyArray<unknown>,
173
- I extends Indices<T> & keyof T,
174
- E,
175
- R,
176
- >(ref: RefTuple<T, E, R>, index: I) {
177
- return RefSubject.map(ref, (self) => Tuple.get(self, index));
178
- });
179
-
180
- /**
181
- * Get the length of the current state of a RefTuple.
182
- * @since 1.18.0
183
- * @category computed
184
- */
185
- export const length = <T extends ReadonlyArray<unknown>, E, R>(
186
- ref: RefTuple<T, E, R>,
187
- ): RefSubject.Computed<number, E, R> => RefSubject.map(ref, (self) => self.length);
188
-
189
- /**
190
- * Pick elements at specific indices from the current state of a RefTuple.
191
- * @since 1.18.0
192
- * @category computed
193
- */
194
- export const pick: {
195
- <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>>(
196
- indices: I,
197
- ): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<Array<T[number]>, E, R>;
198
- <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>, E, R>(
199
- ref: RefTuple<T, E, R>,
200
- indices: I,
201
- ): RefSubject.Computed<Array<T[number]>, E, R>;
202
- } = dual(2, function pick<
203
- T extends ReadonlyArray<unknown>,
204
- const I extends ReadonlyArray<Indices<T>>,
205
- E,
206
- R,
207
- >(ref: RefTuple<T, E, R>, indices: I) {
208
- return RefSubject.map(ref, (self) => Tuple.pick(self, indices));
209
- });
210
-
211
- /**
212
- * Omit elements at specific indices from the current state of a RefTuple.
213
- * @since 1.18.0
214
- * @category computed
215
- */
216
- export const omit: {
217
- <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>>(
218
- indices: I,
219
- ): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<Array<T[number]>, E, R>;
220
- <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>, E, R>(
221
- ref: RefTuple<T, E, R>,
222
- indices: I,
223
- ): RefSubject.Computed<Array<T[number]>, E, R>;
224
- } = dual(2, function omit<
225
- T extends ReadonlyArray<unknown>,
226
- const I extends ReadonlyArray<Indices<T>>,
227
- E,
228
- R,
229
- >(ref: RefTuple<T, E, R>, indices: I) {
230
- return RefSubject.map(ref, (self) => Tuple.omit(self, indices));
231
- });
@@ -1,21 +0,0 @@
1
- export * as RefArray from "./RefArray.js";
2
- export * as RefBigDecimal from "./RefBigDecimal.js";
3
- export * as RefBigInt from "./RefBigInt.js";
4
- export * as RefBoolean from "./RefBoolean.js";
5
- export * as RefCause from "./RefCause.js";
6
- export * as RefChunk from "./RefChunk.js";
7
- export * as RefDateTime from "./RefDateTime.js";
8
- export * as RefDuration from "./RefDuration.js";
9
- export * as RefGraph from "./RefGraph.js";
10
- export * as RefHashMap from "./RefHashMap.js";
11
- export * as RefHashRing from "./RefHashRing.js";
12
- export * as RefHashSet from "./RefHashSet.js";
13
- export * as RefIterable from "./RefIterable.js";
14
- export * as RefOption from "./RefOption.js";
15
- export * as RefRecord from "./RefRecord.js";
16
- export * as RefResult from "./RefResult.js";
17
- export * as RefString from "./RefString.js";
18
- export * as RefStruct from "./RefStruct.js";
19
- export * as RefSubject from "./RefSubject.js";
20
- export * as RefTrie from "./RefTrie.js";
21
- export * as RefTuple from "./RefTuple.js";