@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,445 +0,0 @@
1
- /**
2
- * Extensions to RefSubject for working with Iterable 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 * as Iterable from "effect/Iterable";
10
- import type * as Option from "effect/Option";
11
- import type * as Scope from "effect/Scope";
12
- import type * as Fx from "../Fx/index.js";
13
- import * as RefSubject from "./RefSubject.js";
14
-
15
- /**
16
- * A RefIterable is a RefSubject specialized over an Iterable of values.
17
- * @since 1.18.0
18
- * @category models
19
- */
20
- export interface RefIterable<
21
- in out A,
22
- in out E = never,
23
- out R = never,
24
- > extends RefSubject.RefSubject<Iterable<A>, E, R> {}
25
-
26
- /**
27
- * Creates a new `RefIterable` from an Iterable, `Effect`, or `Fx`.
28
- * @since 1.18.0
29
- * @category constructors
30
- */
31
- export function make<A, E, R>(
32
- initial: Iterable<A> | Effect.Effect<Iterable<A>, E, R> | Fx.Fx<Iterable<A>, E, R>,
33
- ): Effect.Effect<RefIterable<A, E>, never, R | Scope.Scope> {
34
- return RefSubject.make(initial, { eq: equals });
35
- }
36
-
37
- // ========================================
38
- // Combinators
39
- // ========================================
40
-
41
- /**
42
- * Prepend a value to the current state of a RefIterable.
43
- * @since 1.18.0
44
- * @category combinators
45
- */
46
- export const prepend: {
47
- <A>(value: A): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
48
- <A, E, R>(ref: RefIterable<A, E, R>, value: A): Effect.Effect<Iterable<A>, E, R>;
49
- } = dual(2, function prepend<A, E, R>(ref: RefIterable<A, E, R>, value: A) {
50
- return RefSubject.update(ref, Iterable.prepend(value));
51
- });
52
-
53
- /**
54
- * Prepend an iterable of values to the current state of a RefIterable.
55
- * @since 1.18.0
56
- * @category combinators
57
- */
58
- export const prependAll: {
59
- <A>(value: Iterable<A>): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
60
- <A, E, R>(ref: RefIterable<A, E, R>, value: Iterable<A>): Effect.Effect<Iterable<A>, E, R>;
61
- } = dual(2, function prependAll<A, E, R>(ref: RefIterable<A, E, R>, value: Iterable<A>) {
62
- return RefSubject.update(ref, Iterable.prependAll(value));
63
- });
64
-
65
- /**
66
- * Append a value to the current state of a RefIterable.
67
- * @since 1.18.0
68
- * @category combinators
69
- */
70
- export const append: {
71
- <A>(value: A): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
72
- <A, E, R>(ref: RefIterable<A, E, R>, value: A): Effect.Effect<Iterable<A>, E, R>;
73
- } = dual(2, function append<A, E, R>(ref: RefIterable<A, E, R>, value: A) {
74
- return RefSubject.update(ref, Iterable.append(value));
75
- });
76
-
77
- /**
78
- * Append an iterable of values to the current state of a RefIterable.
79
- * @since 1.18.0
80
- * @category combinators
81
- */
82
- export const appendAll: {
83
- <A>(value: Iterable<A>): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
84
- <A, E, R>(ref: RefIterable<A, E, R>, value: Iterable<A>): Effect.Effect<Iterable<A>, E, R>;
85
- } = dual(2, function appendAll<A, E, R>(ref: RefIterable<A, E, R>, value: Iterable<A>) {
86
- return RefSubject.update(ref, Iterable.appendAll(value));
87
- });
88
-
89
- /**
90
- * Drop the first `n` values from a RefIterable.
91
- * @since 1.18.0
92
- * @category combinators
93
- */
94
- export const drop: {
95
- (n: number): <A, E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
96
- <A, E, R>(ref: RefIterable<A, E, R>, n: number): Effect.Effect<Iterable<A>, E, R>;
97
- } = dual(2, function drop<A, E, R>(ref: RefIterable<A, E, R>, n: number) {
98
- return RefSubject.update(ref, Iterable.drop(n));
99
- });
100
-
101
- /**
102
- * Take the first `n` values from a RefIterable.
103
- * @since 1.18.0
104
- * @category combinators
105
- */
106
- export const take: {
107
- (n: number): <A, E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
108
- <A, E, R>(ref: RefIterable<A, E, R>, n: number): Effect.Effect<Iterable<A>, E, R>;
109
- } = dual(2, function take<A, E, R>(ref: RefIterable<A, E, R>, n: number) {
110
- return RefSubject.update(ref, Iterable.take(n));
111
- });
112
-
113
- /**
114
- * Take values from a RefIterable while a predicate is true.
115
- * @since 1.18.0
116
- * @category combinators
117
- */
118
- export const takeWhile: {
119
- <A>(
120
- predicate: (a: A) => boolean,
121
- ): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
122
- <A, E, R>(
123
- ref: RefIterable<A, E, R>,
124
- predicate: (a: A) => boolean,
125
- ): Effect.Effect<Iterable<A>, E, R>;
126
- } = dual(2, function takeWhile<A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean) {
127
- return RefSubject.update(ref, Iterable.takeWhile(predicate));
128
- });
129
-
130
- /**
131
- * Filter the values of a RefIterable (mutating).
132
- * @since 1.18.0
133
- * @category combinators
134
- */
135
- export const filter: {
136
- <A>(
137
- predicate: (a: A) => boolean,
138
- ): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
139
- <A, E, R>(
140
- ref: RefIterable<A, E, R>,
141
- predicate: (a: A) => boolean,
142
- ): Effect.Effect<Iterable<A>, E, R>;
143
- } = dual(2, function filter<A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean) {
144
- return RefSubject.update(ref, Iterable.filter(predicate));
145
- });
146
-
147
- /**
148
- * Map (Endomorphic) the values of a RefIterable.
149
- * @since 1.18.0
150
- * @category combinators
151
- */
152
- export const map: {
153
- <A>(
154
- f: (a: A, index: number) => A,
155
- ): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
156
- <A, E, R>(
157
- ref: RefIterable<A, E, R>,
158
- f: (a: A, index: number) => A,
159
- ): Effect.Effect<Iterable<A>, E, R>;
160
- } = dual(2, function map<A, E, R>(ref: RefIterable<A, E, R>, f: (a: A, index: number) => A) {
161
- return RefSubject.update(ref, Iterable.map(f));
162
- });
163
-
164
- /**
165
- * Remove adjacent duplicate values from a RefIterable.
166
- * @since 1.18.0
167
- * @category combinators
168
- */
169
- export const dedupeAdjacent = <A, E, R>(
170
- ref: RefIterable<A, E, R>,
171
- ): Effect.Effect<Iterable<A>, E, R> => RefSubject.update(ref, Iterable.dedupeAdjacent);
172
-
173
- /**
174
- * Intersperse a separator between elements.
175
- * @since 1.18.0
176
- * @category combinators
177
- */
178
- export const intersperse: {
179
- <A>(middle: A): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
180
- <A, E, R>(ref: RefIterable<A, E, R>, middle: A): Effect.Effect<Iterable<A>, E, R>;
181
- } = dual(2, function intersperse<A, E, R>(ref: RefIterable<A, E, R>, middle: A) {
182
- return RefSubject.update(ref, Iterable.intersperse(middle));
183
- });
184
-
185
- /**
186
- * Repeat the iterable n times.
187
- * @since 1.18.0
188
- * @category combinators
189
- */
190
- export const repeat: {
191
- (n: number): <A, E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
192
- <A, E, R>(ref: RefIterable<A, E, R>, n: number): Effect.Effect<Iterable<A>, E, R>;
193
- } = dual(2, function repeat<A, E, R>(ref: RefIterable<A, E, R>, n: number) {
194
- return RefSubject.update(ref, Iterable.repeat(n));
195
- });
196
-
197
- /**
198
- * FlatMap (endomorphic).
199
- * @since 1.18.0
200
- * @category combinators
201
- */
202
- export const flatMap: {
203
- <A>(
204
- f: (a: A, index: number) => Iterable<A>,
205
- ): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
206
- <A, E, R>(
207
- ref: RefIterable<A, E, R>,
208
- f: (a: A, index: number) => Iterable<A>,
209
- ): Effect.Effect<Iterable<A>, E, R>;
210
- } = dual(2, function flatMap<
211
- A,
212
- E,
213
- R,
214
- >(ref: RefIterable<A, E, R>, f: (a: A, index: number) => Iterable<A>) {
215
- return RefSubject.update(ref, Iterable.flatMap(f));
216
- });
217
-
218
- /**
219
- * Filter and map values in place.
220
- * @since 1.18.0
221
- * @category combinators
222
- */
223
- export const filterMap: {
224
- <A>(
225
- f: (a: A, index: number) => Option.Option<A>,
226
- ): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
227
- <A, E, R>(
228
- ref: RefIterable<A, E, R>,
229
- f: (a: A, index: number) => Option.Option<A>,
230
- ): Effect.Effect<Iterable<A>, E, R>;
231
- } = dual(2, function filterMap<
232
- A,
233
- E,
234
- R,
235
- >(ref: RefIterable<A, E, R>, f: (a: A, index: number) => Option.Option<A>) {
236
- return RefSubject.update(ref, Iterable.filterMap(f));
237
- });
238
-
239
- /**
240
- * Extract Some values from Option iterable.
241
- * @since 1.18.0
242
- * @category combinators
243
- */
244
- export const getSomes = <A, E, R>(
245
- ref: RefIterable<Option.Option<A>, E, R>,
246
- ): Effect.Effect<Iterable<Option.Option<A>>, E, R> =>
247
- RefSubject.update(ref, (iter) => Iterable.getSomes(iter) as Iterable<Option.Option<A>>);
248
-
249
- // ========================================
250
- // Computed
251
- // ========================================
252
-
253
- /**
254
- * Check if a RefIterable is empty.
255
- * @since 1.18.0
256
- * @category computed
257
- */
258
- export const isEmpty = <A, E, R>(ref: RefIterable<A, E, R>): RefSubject.Computed<boolean, E, R> =>
259
- RefSubject.map(ref, Iterable.isEmpty);
260
-
261
- /**
262
- * Get the current size of a RefIterable.
263
- * @since 1.18.0
264
- * @category computed
265
- */
266
- export const size = <A, E, R>(ref: RefIterable<A, E, R>): RefSubject.Computed<number, E, R> =>
267
- RefSubject.map(ref, Iterable.size);
268
-
269
- /**
270
- * Map the values of a RefIterable to a different type.
271
- * @since 1.18.0
272
- * @category computed
273
- */
274
- export const mapValues: {
275
- <A, B>(
276
- f: (a: A, index: number) => B,
277
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<Iterable<B>, E, R>;
278
- <A, E, R, B>(
279
- ref: RefIterable<A, E, R>,
280
- f: (a: A, index: number) => B,
281
- ): RefSubject.Computed<Iterable<B>, E, R>;
282
- } = dual(2, function mapValues<
283
- A,
284
- E,
285
- R,
286
- B,
287
- >(ref: RefIterable<A, E, R>, f: (a: A, index: number) => B) {
288
- return RefSubject.map(ref, Iterable.map(f));
289
- });
290
-
291
- /**
292
- * Filter the values of a RefIterable creating a Computed value.
293
- * @since 1.18.0
294
- * @category computed
295
- */
296
- export const filterValues: {
297
- <A>(
298
- predicate: (a: A) => boolean,
299
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<Iterable<A>, E, R>;
300
- <A, E, R>(
301
- ref: RefIterable<A, E, R>,
302
- predicate: (a: A) => boolean,
303
- ): RefSubject.Computed<Iterable<A>, E, R>;
304
- } = dual(2, function filterValues<
305
- A,
306
- E,
307
- R,
308
- >(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean) {
309
- return RefSubject.map(ref, Iterable.filter(predicate));
310
- });
311
-
312
- /**
313
- * Group the values of a RefIterable by a key.
314
- * @since 1.18.0
315
- * @category computed
316
- */
317
- export const groupBy: {
318
- <A>(
319
- f: (a: A) => string,
320
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<Record<string, Array<A>>, E, R>;
321
- <A, E, R>(
322
- ref: RefIterable<A, E, R>,
323
- f: (a: A) => string,
324
- ): RefSubject.Computed<Record<string, Array<A>>, E, R>;
325
- } = dual(2, function groupBy<A, E, R>(ref: RefIterable<A, E, R>, f: (a: A) => string) {
326
- return RefSubject.map(ref, Iterable.groupBy(f));
327
- });
328
-
329
- /**
330
- * Reduce the values of a RefIterable to a single value.
331
- * @since 1.18.0
332
- * @category computed
333
- */
334
- export const reduce: {
335
- <A, B>(
336
- b: B,
337
- f: (b: B, a: A, index: number) => B,
338
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<B, E, R>;
339
- <A, E, R, B>(
340
- ref: RefIterable<A, E, R>,
341
- b: B,
342
- f: (b: B, a: A, index: number) => B,
343
- ): RefSubject.Computed<B, E, R>;
344
- } = dual(3, function reduce<
345
- A,
346
- E,
347
- R,
348
- B,
349
- >(ref: RefIterable<A, E, R>, b: B, f: (b: B, a: A, index: number) => B) {
350
- return RefSubject.map(ref, Iterable.reduce(b, f));
351
- });
352
-
353
- /**
354
- * Check if any value satisfies a predicate.
355
- * @since 1.18.0
356
- * @category computed
357
- */
358
- export const some: {
359
- <A>(
360
- predicate: (a: A) => boolean,
361
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<boolean, E, R>;
362
- <A, E, R>(
363
- ref: RefIterable<A, E, R>,
364
- predicate: (a: A) => boolean,
365
- ): RefSubject.Computed<boolean, E, R>;
366
- } = dual(2, function some<A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean) {
367
- return RefSubject.map(ref, Iterable.some(predicate));
368
- });
369
-
370
- /**
371
- * Check if a RefIterable contains a value.
372
- * @since 1.18.0
373
- * @category computed
374
- */
375
- export const contains: {
376
- <A>(value: A): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<boolean, E, R>;
377
- <A, E, R>(ref: RefIterable<A, E, R>, value: A): RefSubject.Computed<boolean, E, R>;
378
- } = dual(2, function contains<A, E, R>(ref: RefIterable<A, E, R>, value: A) {
379
- return RefSubject.map(ref, Iterable.contains(value));
380
- });
381
-
382
- /**
383
- * Count elements satisfying a predicate.
384
- * @since 1.18.0
385
- * @category computed
386
- */
387
- export const countBy: {
388
- <A>(
389
- predicate: (a: A) => boolean,
390
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<number, E, R>;
391
- <A, E, R>(
392
- ref: RefIterable<A, E, R>,
393
- predicate: (a: A) => boolean,
394
- ): RefSubject.Computed<number, E, R>;
395
- } = dual(2, function countBy<A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean) {
396
- return RefSubject.map(ref, Iterable.countBy(predicate));
397
- });
398
-
399
- /**
400
- * Convert to array.
401
- * @since 1.18.0
402
- * @category computed
403
- */
404
- export const toArray = <A, E, R>(ref: RefIterable<A, E, R>): RefSubject.Computed<Array<A>, E, R> =>
405
- RefSubject.map(ref, (iter) => Array.from(iter));
406
-
407
- // ========================================
408
- // Filtered
409
- // ========================================
410
-
411
- /**
412
- * Get the first element of a RefIterable as a Filtered.
413
- * @since 1.18.0
414
- * @category filtered
415
- */
416
- export const head = <A, E, R>(ref: RefIterable<A, E, R>): RefSubject.Filtered<A, E, R> =>
417
- RefSubject.filterMap(ref, Iterable.head);
418
-
419
- /**
420
- * Find the first value satisfying a predicate.
421
- * @since 1.18.0
422
- * @category filtered
423
- */
424
- export const findFirst: {
425
- <A>(
426
- predicate: (a: A) => boolean,
427
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Filtered<A, E, R>;
428
- <A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean): RefSubject.Filtered<A, E, R>;
429
- } = dual(2, function findFirst<A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean) {
430
- return RefSubject.filterMap(ref, Iterable.findFirst(predicate));
431
- });
432
-
433
- /**
434
- * Find the last value satisfying a predicate.
435
- * @since 1.18.0
436
- * @category filtered
437
- */
438
- export const findLast: {
439
- <A>(
440
- predicate: (a: A) => boolean,
441
- ): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Filtered<A, E, R>;
442
- <A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean): RefSubject.Filtered<A, E, R>;
443
- } = dual(2, function findLast<A, E, R>(ref: RefIterable<A, E, R>, predicate: (a: A) => boolean) {
444
- return RefSubject.filterMap(ref, Iterable.findLast(predicate));
445
- });
@@ -1,67 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { Effect } from "effect";
3
- import * as Option from "effect/Option";
4
- import * as RefOption from "./RefOption.js";
5
-
6
- describe("RefOption", () => {
7
- it("creates and gets value", () =>
8
- Effect.gen(function* () {
9
- const value = Option.some(42);
10
- const ref = yield* RefOption.make(value);
11
- const current = yield* ref;
12
- expect(Option.isSome(current)).toBe(true);
13
- if (Option.isSome(current)) {
14
- expect(current.value).toBe(42);
15
- }
16
- }).pipe(Effect.scoped, Effect.runPromise));
17
-
18
- it("sets Some value", () =>
19
- Effect.gen(function* () {
20
- const ref = yield* RefOption.make<number>(Option.none());
21
- yield* RefOption.setSome(ref, 10);
22
- const result = yield* ref;
23
- expect(Option.isSome(result)).toBe(true);
24
- if (Option.isSome(result)) {
25
- expect(result.value).toBe(10);
26
- }
27
- }).pipe(Effect.scoped, Effect.runPromise));
28
-
29
- it("sets None value", () =>
30
- Effect.gen(function* () {
31
- const ref = yield* RefOption.make(Option.some(42));
32
- yield* RefOption.setNone(ref);
33
- const result = yield* ref;
34
- expect(Option.isNone(result)).toBe(true);
35
- }).pipe(Effect.scoped, Effect.runPromise));
36
-
37
- it("maps Option value", () =>
38
- Effect.gen(function* () {
39
- const ref = yield* RefOption.make(Option.some(5));
40
- const result = yield* RefOption.map(ref, (n) => n * 2);
41
- expect(Option.isSome(result)).toBe(true);
42
- if (Option.isSome(result)) {
43
- expect(result.value).toBe(10);
44
- }
45
- }).pipe(Effect.scoped, Effect.runPromise));
46
-
47
- it("checks if Some", () =>
48
- Effect.gen(function* () {
49
- const ref = yield* RefOption.make(Option.some(42));
50
- const isSome = yield* RefOption.isSome(ref);
51
- expect(isSome).toBe(true);
52
- }).pipe(Effect.scoped, Effect.runPromise));
53
-
54
- it("checks if None", () =>
55
- Effect.gen(function* () {
56
- const ref = yield* RefOption.make(Option.none());
57
- const isNone = yield* RefOption.isNone(ref);
58
- expect(isNone).toBe(true);
59
- }).pipe(Effect.scoped, Effect.runPromise));
60
-
61
- it("checks contains", () =>
62
- Effect.gen(function* () {
63
- const ref = yield* RefOption.make(Option.some(42));
64
- const contains = yield* RefOption.contains(ref, 42);
65
- expect(contains).toBe(true);
66
- }).pipe(Effect.scoped, Effect.runPromise));
67
- });
@@ -1,193 +0,0 @@
1
- /**
2
- * Extensions to RefSubject for working with Option values
3
- * @since 1.18.0
4
- */
5
-
6
- import type * as Effect from "effect/Effect";
7
- import * as Equivalence_ from "effect/Equivalence";
8
- import type { Equivalence } from "effect/Equivalence";
9
- import { dual } from "effect/Function";
10
- import * as Option from "effect/Option";
11
- import type * as Scope from "effect/Scope";
12
- import type * as Fx from "../Fx/index.js";
13
- import * as RefSubject from "./RefSubject.js";
14
-
15
- /**
16
- * A RefOption is a RefSubject specialized over an Option value.
17
- * @since 1.18.0
18
- * @category models
19
- */
20
- export interface RefOption<in out A, in out E = never, out R = never> extends RefSubject.RefSubject<
21
- Option.Option<A>,
22
- E,
23
- R
24
- > {}
25
-
26
- /**
27
- * Creates a new `RefOption` from an Option, `Effect`, or `Fx`.
28
- *
29
- * @example
30
- * ```ts
31
- * import { Effect, Option } from "effect"
32
- * import * as RefOption from "effect/typed/fx/RefSubject/RefOption"
33
- *
34
- * const program = Effect.gen(function* () {
35
- * const value = yield* RefOption.make(Option.some(42))
36
- * const current = yield* value
37
- * console.log(current) // { _tag: "Some", value: 42 }
38
- * })
39
- * ```
40
- *
41
- * @since 1.18.0
42
- * @category constructors
43
- */
44
- export function make<A, E = never, R = never>(
45
- initial: Option.Option<A> | Effect.Effect<Option.Option<A>, E, R> | Fx.Fx<Option.Option<A>, E, R>,
46
- eq: Equivalence<A> = Equivalence_.strictEqual(),
47
- ): Effect.Effect<RefOption<A, E>, never, R | Scope.Scope> {
48
- return RefSubject.make(initial, { eq: Option.makeEquivalence(eq) });
49
- }
50
-
51
- /**
52
- * Set the current state of a RefOption to Some(value).
53
- * @since 1.18.0
54
- * @category combinators
55
- */
56
- export const setSome: {
57
- <A>(value: A): <E, R>(ref: RefOption<A, E, R>) => Effect.Effect<Option.Option<A>, E, R>;
58
- <A, E, R>(ref: RefOption<A, E, R>, value: A): Effect.Effect<Option.Option<A>, E, R>;
59
- } = dual(2, function setSome<A, E, R>(ref: RefOption<A, E, R>, value: A) {
60
- return RefSubject.set(ref, Option.some(value));
61
- });
62
-
63
- /**
64
- * Set the current state of a RefOption to None.
65
- * @since 1.18.0
66
- * @category combinators
67
- */
68
- export const setNone = <A, E, R>(ref: RefOption<A, E, R>): Effect.Effect<Option.Option<A>, E, R> =>
69
- RefSubject.set(ref, Option.none());
70
-
71
- // ========================================
72
- // Computed
73
- // ========================================
74
-
75
- /**
76
- * Map the value inside the Option of a RefOption.
77
- * @since 1.18.0
78
- * @category computed
79
- */
80
- export const map: {
81
- <A, B>(
82
- f: (a: A) => B,
83
- ): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<Option.Option<B>, E, R>;
84
- <A, E, R, B>(
85
- ref: RefOption<A, E, R>,
86
- f: (a: A) => B,
87
- ): RefSubject.Computed<Option.Option<B>, E, R>;
88
- } = dual(2, function map<A, E, R, B>(ref: RefOption<A, E, R>, f: (a: A) => B) {
89
- return RefSubject.map(ref, (self) => Option.map(self, f));
90
- });
91
-
92
- /**
93
- * FlatMap the value inside the Option of a RefOption.
94
- * @since 1.18.0
95
- * @category computed
96
- */
97
- export const flatMap: {
98
- <A, B>(
99
- f: (a: A) => Option.Option<B>,
100
- ): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<Option.Option<B>, E, R>;
101
- <A, E, R, B>(
102
- ref: RefOption<A, E, R>,
103
- f: (a: A) => Option.Option<B>,
104
- ): RefSubject.Computed<Option.Option<B>, E, R>;
105
- } = dual(2, function flatMap<A, E, R, B>(ref: RefOption<A, E, R>, f: (a: A) => Option.Option<B>) {
106
- return RefSubject.map(ref, (self) => Option.flatMap(self, f));
107
- });
108
-
109
- /**
110
- * Filter the value inside the Option of a RefOption.
111
- * @since 1.18.0
112
- * @category computed
113
- */
114
- export const filter: {
115
- <A>(
116
- predicate: (a: A) => boolean,
117
- ): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<Option.Option<A>, E, R>;
118
- <A, E, R>(
119
- ref: RefOption<A, E, R>,
120
- predicate: (a: A) => boolean,
121
- ): RefSubject.Computed<Option.Option<A>, E, R>;
122
- } = dual(2, function filter<A, E, R>(ref: RefOption<A, E, R>, predicate: (a: A) => boolean) {
123
- return RefSubject.map(ref, (self) => Option.filter(self, predicate));
124
- });
125
-
126
- /**
127
- * Get the value from the Option or use a fallback value.
128
- * @since 1.18.0
129
- * @category computed
130
- */
131
- export const getOrElse: {
132
- <A>(fallback: () => A): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<A, E, R>;
133
- <A, E, R>(ref: RefOption<A, E, R>, fallback: () => A): RefSubject.Computed<A, E, R>;
134
- } = dual(2, function getOrElse<A, E, R>(ref: RefOption<A, E, R>, fallback: () => A) {
135
- return RefSubject.map(ref, (self) => Option.getOrElse(self, fallback));
136
- });
137
-
138
- /**
139
- * Check if the current state of a RefOption is Some.
140
- * @since 1.18.0
141
- * @category computed
142
- */
143
- export const isSome = <A, E, R>(ref: RefOption<A, E, R>): RefSubject.Computed<boolean, E, R> =>
144
- RefSubject.map(ref, Option.isSome);
145
-
146
- /**
147
- * Check if the current state of a RefOption is None.
148
- * @since 1.18.0
149
- * @category computed
150
- */
151
- export const isNone = <A, E, R>(ref: RefOption<A, E, R>): RefSubject.Computed<boolean, E, R> =>
152
- RefSubject.map(ref, Option.isNone);
153
-
154
- /**
155
- * Check if the current state of a RefOption contains a value.
156
- * @since 1.18.0
157
- * @category computed
158
- */
159
- export const contains: {
160
- <A>(value: A): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<boolean, E, R>;
161
- <A, E, R>(ref: RefOption<A, E, R>, value: A): RefSubject.Computed<boolean, E, R>;
162
- } = dual(2, function contains<A, E, R>(ref: RefOption<A, E, R>, value: A) {
163
- return RefSubject.map(ref, (self) => Option.contains(self, value));
164
- });
165
-
166
- /**
167
- * Check if the value inside the Option satisfies a predicate.
168
- * @since 1.18.0
169
- * @category computed
170
- */
171
- export const exists: {
172
- <A>(
173
- predicate: (a: A) => boolean,
174
- ): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<boolean, E, R>;
175
- <A, E, R>(
176
- ref: RefOption<A, E, R>,
177
- predicate: (a: A) => boolean,
178
- ): RefSubject.Computed<boolean, E, R>;
179
- } = dual(2, function exists<A, E, R>(ref: RefOption<A, E, R>, predicate: (a: A) => boolean) {
180
- return RefSubject.map(ref, (self) => Option.exists(self, predicate));
181
- });
182
-
183
- // ========================================
184
- // Filtered
185
- // ========================================
186
-
187
- /**
188
- * Get the value from the Option as a Filtered (fails if None).
189
- * @since 1.18.0
190
- * @category filtered
191
- */
192
- export const getValue = <A, E, R>(ref: RefOption<A, E, R>): RefSubject.Filtered<A, E, R> =>
193
- RefSubject.compact(ref);