@typed/fx 1.18.4 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/AsyncData/package.json +6 -0
  2. package/Emitter/package.json +6 -0
  3. package/Form/package.json +6 -0
  4. package/FormEntry/package.json +6 -0
  5. package/Fx/package.json +6 -0
  6. package/Guard/package.json +6 -0
  7. package/Idle/package.json +6 -0
  8. package/Match/package.json +6 -0
  9. package/Pull/package.json +6 -0
  10. package/Push/package.json +6 -0
  11. package/RefArray/package.json +6 -0
  12. package/RefChunk/package.json +6 -0
  13. package/RefHashMap/package.json +6 -0
  14. package/RefHashSet/package.json +6 -0
  15. package/RefSubject/package.json +6 -0
  16. package/Sink/package.json +6 -0
  17. package/Stream/package.json +6 -0
  18. package/Subject/package.json +6 -0
  19. package/TypeId/package.json +6 -0
  20. package/Typeclass/package.json +6 -0
  21. package/Versioned/package.json +6 -0
  22. package/dist/cjs/AsyncData.js +177 -0
  23. package/dist/cjs/AsyncData.js.map +1 -0
  24. package/dist/cjs/Emitter.js +24 -21
  25. package/dist/cjs/Emitter.js.map +1 -1
  26. package/dist/cjs/Form.js +78 -21
  27. package/dist/cjs/Form.js.map +1 -1
  28. package/dist/cjs/FormEntry.js +75 -48
  29. package/dist/cjs/FormEntry.js.map +1 -1
  30. package/dist/cjs/Fx.js +517 -872
  31. package/dist/cjs/Fx.js.map +1 -1
  32. package/dist/cjs/Guard.js +21 -13
  33. package/dist/cjs/Guard.js.map +1 -1
  34. package/dist/cjs/Idle.js +49 -37
  35. package/dist/cjs/Idle.js.map +1 -1
  36. package/dist/cjs/Match.js +99 -61
  37. package/dist/cjs/Match.js.map +1 -1
  38. package/dist/cjs/Pull.js.map +1 -1
  39. package/dist/cjs/Push.js +168 -0
  40. package/dist/cjs/Push.js.map +1 -0
  41. package/dist/cjs/RefArray.js +32 -30
  42. package/dist/cjs/RefArray.js.map +1 -1
  43. package/dist/cjs/RefChunk.js +26 -24
  44. package/dist/cjs/RefChunk.js.map +1 -1
  45. package/dist/cjs/RefHashMap.js +20 -20
  46. package/dist/cjs/RefHashMap.js.map +1 -1
  47. package/dist/cjs/RefHashSet.js +11 -8
  48. package/dist/cjs/RefHashSet.js.map +1 -1
  49. package/dist/cjs/RefSubject.js +899 -158
  50. package/dist/cjs/RefSubject.js.map +1 -1
  51. package/dist/cjs/Sink.js +588 -62
  52. package/dist/cjs/Sink.js.map +1 -1
  53. package/dist/cjs/Stream.js +15 -10
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/Subject.js +153 -55
  56. package/dist/cjs/Subject.js.map +1 -1
  57. package/dist/cjs/TypeId.js +10 -5
  58. package/dist/cjs/TypeId.js.map +1 -1
  59. package/dist/cjs/Typeclass.js +28 -31
  60. package/dist/cjs/Typeclass.js.map +1 -1
  61. package/dist/cjs/Versioned.js +118 -57
  62. package/dist/cjs/Versioned.js.map +1 -1
  63. package/dist/cjs/index.js +44 -8
  64. package/dist/cjs/index.js.map +1 -1
  65. package/dist/cjs/internal/{deferred-ref.js → DeferredRef.js} +45 -13
  66. package/dist/cjs/internal/DeferredRef.js.map +1 -0
  67. package/dist/cjs/internal/UnionToTuple.js +6 -0
  68. package/dist/cjs/internal/UnionToTuple.js.map +1 -0
  69. package/dist/cjs/internal/core.js +1590 -779
  70. package/dist/cjs/internal/core.js.map +1 -1
  71. package/dist/cjs/internal/diff.js +114 -0
  72. package/dist/cjs/internal/diff.js.map +1 -0
  73. package/dist/cjs/internal/effect-loop-operator.js +288 -0
  74. package/dist/cjs/internal/effect-loop-operator.js.map +1 -0
  75. package/dist/cjs/internal/effect-operator.js +46 -37
  76. package/dist/cjs/internal/effect-operator.js.map +1 -1
  77. package/dist/cjs/internal/effect-producer.js +74 -0
  78. package/dist/cjs/internal/effect-producer.js.map +1 -0
  79. package/dist/cjs/internal/helpers.js +158 -128
  80. package/dist/cjs/internal/helpers.js.map +1 -1
  81. package/dist/cjs/internal/keyed.js +136 -173
  82. package/dist/cjs/internal/keyed.js.map +1 -1
  83. package/dist/cjs/internal/loop-operator.js +213 -0
  84. package/dist/cjs/internal/loop-operator.js.map +1 -0
  85. package/dist/cjs/internal/operator.js +79 -0
  86. package/dist/cjs/internal/operator.js.map +1 -0
  87. package/dist/cjs/internal/protos.js +19 -81
  88. package/dist/cjs/internal/protos.js.map +1 -1
  89. package/dist/cjs/internal/provide.js +47 -25
  90. package/dist/cjs/internal/provide.js.map +1 -1
  91. package/dist/cjs/internal/requestIdleCallback.js +5 -5
  92. package/dist/cjs/internal/requestIdleCallback.js.map +1 -1
  93. package/dist/cjs/internal/share.js +12 -15
  94. package/dist/cjs/internal/share.js.map +1 -1
  95. package/dist/cjs/internal/sync-operator.js +50 -22
  96. package/dist/cjs/internal/sync-operator.js.map +1 -1
  97. package/dist/cjs/internal/sync-producer.js +114 -0
  98. package/dist/cjs/internal/sync-producer.js.map +1 -0
  99. package/dist/cjs/internal/withKey.js +45 -51
  100. package/dist/cjs/internal/withKey.js.map +1 -1
  101. package/dist/dts/AsyncData.d.ts +185 -0
  102. package/dist/dts/AsyncData.d.ts.map +1 -0
  103. package/dist/dts/Emitter.d.ts +13 -20
  104. package/dist/dts/Emitter.d.ts.map +1 -1
  105. package/dist/dts/Form.d.ts +45 -28
  106. package/dist/dts/Form.d.ts.map +1 -1
  107. package/dist/dts/FormEntry.d.ts +25 -13
  108. package/dist/dts/FormEntry.d.ts.map +1 -1
  109. package/dist/dts/Fx.d.ts +983 -1387
  110. package/dist/dts/Fx.d.ts.map +1 -1
  111. package/dist/dts/Guard.d.ts +8 -1
  112. package/dist/dts/Guard.d.ts.map +1 -1
  113. package/dist/dts/Idle.d.ts +3 -3
  114. package/dist/dts/Idle.d.ts.map +1 -1
  115. package/dist/dts/Match.d.ts +8 -8
  116. package/dist/dts/Match.d.ts.map +1 -1
  117. package/dist/dts/Pull.d.ts +5 -5
  118. package/dist/dts/Pull.d.ts.map +1 -1
  119. package/dist/dts/Push.d.ts +170 -0
  120. package/dist/dts/Push.d.ts.map +1 -0
  121. package/dist/dts/RefArray.d.ts +21 -23
  122. package/dist/dts/RefArray.d.ts.map +1 -1
  123. package/dist/dts/RefChunk.d.ts +17 -19
  124. package/dist/dts/RefChunk.d.ts.map +1 -1
  125. package/dist/dts/RefHashMap.d.ts +19 -20
  126. package/dist/dts/RefHashMap.d.ts.map +1 -1
  127. package/dist/dts/RefHashSet.d.ts +12 -16
  128. package/dist/dts/RefHashSet.d.ts.map +1 -1
  129. package/dist/dts/RefSubject.d.ts +396 -187
  130. package/dist/dts/RefSubject.d.ts.map +1 -1
  131. package/dist/dts/Sink.d.ts +193 -93
  132. package/dist/dts/Sink.d.ts.map +1 -1
  133. package/dist/dts/Stream.d.ts +7 -1
  134. package/dist/dts/Stream.d.ts.map +1 -1
  135. package/dist/dts/Subject.d.ts +27 -36
  136. package/dist/dts/Subject.d.ts.map +1 -1
  137. package/dist/dts/TypeId.d.ts +10 -0
  138. package/dist/dts/TypeId.d.ts.map +1 -1
  139. package/dist/dts/Typeclass.d.ts +2 -2
  140. package/dist/dts/Typeclass.d.ts.map +1 -1
  141. package/dist/dts/Versioned.d.ts +50 -78
  142. package/dist/dts/Versioned.d.ts.map +1 -1
  143. package/dist/dts/index.d.ts +66 -6
  144. package/dist/dts/index.d.ts.map +1 -1
  145. package/dist/dts/internal/DeferredRef.d.ts +20 -0
  146. package/dist/dts/internal/DeferredRef.d.ts.map +1 -0
  147. package/dist/dts/internal/UnionToTuple.d.ts +6 -0
  148. package/dist/dts/internal/UnionToTuple.d.ts.map +1 -0
  149. package/dist/dts/internal/core.d.ts +218 -450
  150. package/dist/dts/internal/core.d.ts.map +1 -1
  151. package/dist/dts/internal/diff.d.ts +38 -0
  152. package/dist/dts/internal/diff.d.ts.map +1 -0
  153. package/dist/dts/internal/effect-loop-operator.d.ts +34 -0
  154. package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -0
  155. package/dist/dts/internal/effect-operator.d.ts +8 -5
  156. package/dist/dts/internal/effect-operator.d.ts.map +1 -1
  157. package/dist/dts/internal/effect-producer.d.ts +25 -0
  158. package/dist/dts/internal/effect-producer.d.ts.map +1 -0
  159. package/dist/dts/internal/helpers.d.ts +33 -24
  160. package/dist/dts/internal/helpers.d.ts.map +1 -1
  161. package/dist/dts/internal/keyed.d.ts +3 -3
  162. package/dist/dts/internal/keyed.d.ts.map +1 -1
  163. package/dist/dts/internal/loop-operator.d.ts +40 -0
  164. package/dist/dts/internal/loop-operator.d.ts.map +1 -0
  165. package/dist/dts/internal/operator.d.ts +16 -0
  166. package/dist/dts/internal/operator.d.ts.map +1 -0
  167. package/dist/dts/internal/protos.d.ts +16 -43
  168. package/dist/dts/internal/protos.d.ts.map +1 -1
  169. package/dist/dts/internal/provide.d.ts +7 -1
  170. package/dist/dts/internal/provide.d.ts.map +1 -1
  171. package/dist/dts/internal/share.d.ts +12 -9
  172. package/dist/dts/internal/share.d.ts.map +1 -1
  173. package/dist/dts/internal/sync-operator.d.ts +7 -3
  174. package/dist/dts/internal/sync-operator.d.ts.map +1 -1
  175. package/dist/dts/internal/sync-producer.d.ts +36 -0
  176. package/dist/dts/internal/sync-producer.d.ts.map +1 -0
  177. package/dist/dts/internal/withKey.d.ts +3 -3
  178. package/dist/dts/internal/withKey.d.ts.map +1 -1
  179. package/dist/esm/AsyncData.js +151 -0
  180. package/dist/esm/AsyncData.js.map +1 -0
  181. package/dist/esm/Emitter.js +24 -21
  182. package/dist/esm/Emitter.js.map +1 -1
  183. package/dist/esm/Form.js +69 -14
  184. package/dist/esm/Form.js.map +1 -1
  185. package/dist/esm/FormEntry.js +77 -52
  186. package/dist/esm/FormEntry.js.map +1 -1
  187. package/dist/esm/Fx.js +509 -874
  188. package/dist/esm/Fx.js.map +1 -1
  189. package/dist/esm/Guard.js +5 -1
  190. package/dist/esm/Guard.js.map +1 -1
  191. package/dist/esm/Idle.js +49 -39
  192. package/dist/esm/Idle.js.map +1 -1
  193. package/dist/esm/Match.js +103 -63
  194. package/dist/esm/Match.js.map +1 -1
  195. package/dist/esm/Pull.js.map +1 -1
  196. package/dist/esm/Push.js +159 -0
  197. package/dist/esm/Push.js.map +1 -0
  198. package/dist/esm/RefArray.js +32 -30
  199. package/dist/esm/RefArray.js.map +1 -1
  200. package/dist/esm/RefChunk.js +26 -24
  201. package/dist/esm/RefChunk.js.map +1 -1
  202. package/dist/esm/RefHashMap.js +20 -20
  203. package/dist/esm/RefHashMap.js.map +1 -1
  204. package/dist/esm/RefHashSet.js +11 -8
  205. package/dist/esm/RefHashSet.js.map +1 -1
  206. package/dist/esm/RefSubject.js +873 -150
  207. package/dist/esm/RefSubject.js.map +1 -1
  208. package/dist/esm/Sink.js +608 -57
  209. package/dist/esm/Sink.js.map +1 -1
  210. package/dist/esm/Stream.js +13 -9
  211. package/dist/esm/Stream.js.map +1 -1
  212. package/dist/esm/Subject.js +151 -56
  213. package/dist/esm/Subject.js.map +1 -1
  214. package/dist/esm/TypeId.js +9 -4
  215. package/dist/esm/TypeId.js.map +1 -1
  216. package/dist/esm/Typeclass.js +29 -29
  217. package/dist/esm/Typeclass.js.map +1 -1
  218. package/dist/esm/Versioned.js +110 -53
  219. package/dist/esm/Versioned.js.map +1 -1
  220. package/dist/esm/index.js +66 -6
  221. package/dist/esm/index.js.map +1 -1
  222. package/dist/esm/internal/DeferredRef.js +54 -0
  223. package/dist/esm/internal/DeferredRef.js.map +1 -0
  224. package/dist/esm/internal/UnionToTuple.js +2 -0
  225. package/dist/esm/internal/UnionToTuple.js.map +1 -0
  226. package/dist/esm/internal/core.js +1439 -719
  227. package/dist/esm/internal/core.js.map +1 -1
  228. package/dist/esm/internal/diff.js +82 -0
  229. package/dist/esm/internal/diff.js.map +1 -0
  230. package/dist/esm/internal/effect-loop-operator.js +269 -0
  231. package/dist/esm/internal/effect-loop-operator.js.map +1 -0
  232. package/dist/esm/internal/effect-operator.js +44 -37
  233. package/dist/esm/internal/effect-operator.js.map +1 -1
  234. package/dist/esm/internal/effect-producer.js +47 -0
  235. package/dist/esm/internal/effect-producer.js.map +1 -0
  236. package/dist/esm/internal/helpers.js +157 -129
  237. package/dist/esm/internal/helpers.js.map +1 -1
  238. package/dist/esm/internal/keyed.js +128 -139
  239. package/dist/esm/internal/keyed.js.map +1 -1
  240. package/dist/esm/internal/loop-operator.js +186 -0
  241. package/dist/esm/internal/loop-operator.js.map +1 -0
  242. package/dist/esm/internal/operator.js +68 -0
  243. package/dist/esm/internal/operator.js.map +1 -0
  244. package/dist/esm/internal/protos.js +16 -75
  245. package/dist/esm/internal/protos.js.map +1 -1
  246. package/dist/esm/internal/provide.js +33 -25
  247. package/dist/esm/internal/provide.js.map +1 -1
  248. package/dist/esm/internal/requestIdleCallback.js +5 -5
  249. package/dist/esm/internal/requestIdleCallback.js.map +1 -1
  250. package/dist/esm/internal/share.js +12 -12
  251. package/dist/esm/internal/share.js.map +1 -1
  252. package/dist/esm/internal/sync-operator.js +49 -21
  253. package/dist/esm/internal/sync-operator.js.map +1 -1
  254. package/dist/esm/internal/sync-producer.js +88 -0
  255. package/dist/esm/internal/sync-producer.js.map +1 -0
  256. package/dist/esm/internal/withKey.js +46 -47
  257. package/dist/esm/internal/withKey.js.map +1 -1
  258. package/package.json +22 -62
  259. package/src/AsyncData.ts +447 -0
  260. package/src/Emitter.ts +47 -38
  261. package/src/Form.ts +185 -65
  262. package/src/FormEntry.ts +142 -109
  263. package/src/Fx.ts +1685 -1851
  264. package/src/Guard.ts +12 -1
  265. package/src/Idle.ts +76 -62
  266. package/src/Match.ts +149 -93
  267. package/src/Pull.ts +8 -8
  268. package/src/Push.ts +472 -0
  269. package/src/RefArray.ts +53 -51
  270. package/src/RefChunk.ts +44 -41
  271. package/src/RefHashMap.ts +57 -43
  272. package/src/RefHashSet.ts +21 -31
  273. package/src/RefSubject.ts +1984 -457
  274. package/src/Sink.ts +922 -171
  275. package/src/Stream.ts +32 -20
  276. package/src/Subject.ts +230 -87
  277. package/src/TypeId.ts +16 -4
  278. package/src/Typeclass.ts +31 -32
  279. package/src/Versioned.ts +220 -168
  280. package/src/index.ts +78 -6
  281. package/src/internal/DeferredRef.ts +62 -0
  282. package/src/internal/UnionToTuple.ts +11 -0
  283. package/src/internal/core.ts +2491 -1950
  284. package/src/internal/diff.ts +157 -0
  285. package/src/internal/effect-loop-operator.ts +466 -0
  286. package/src/internal/effect-operator.ts +89 -54
  287. package/src/internal/effect-producer.ts +125 -0
  288. package/src/internal/helpers.ts +275 -205
  289. package/src/internal/keyed.ts +192 -241
  290. package/src/internal/loop-operator.ts +266 -0
  291. package/src/internal/operator.ts +87 -0
  292. package/src/internal/protos.ts +29 -104
  293. package/src/internal/provide.ts +48 -40
  294. package/src/internal/requestIdleCallback.ts +5 -6
  295. package/src/internal/share.ts +26 -24
  296. package/src/internal/sync-operator.ts +68 -27
  297. package/src/internal/sync-producer.ts +146 -0
  298. package/src/internal/withKey.ts +64 -74
  299. package/dist/cjs/Computed.js +0 -115
  300. package/dist/cjs/Computed.js.map +0 -1
  301. package/dist/cjs/Filtered.js +0 -95
  302. package/dist/cjs/Filtered.js.map +0 -1
  303. package/dist/cjs/Model.js +0 -119
  304. package/dist/cjs/Model.js.map +0 -1
  305. package/dist/cjs/RefAsyncData.js +0 -187
  306. package/dist/cjs/RefAsyncData.js.map +0 -1
  307. package/dist/cjs/RefAsyncDataArray.js +0 -38
  308. package/dist/cjs/RefAsyncDataArray.js.map +0 -1
  309. package/dist/cjs/RefBoolean.js +0 -45
  310. package/dist/cjs/RefBoolean.js.map +0 -1
  311. package/dist/cjs/RefNumber.js +0 -49
  312. package/dist/cjs/RefNumber.js.map +0 -1
  313. package/dist/cjs/internal/core-ref-subject.js +0 -254
  314. package/dist/cjs/internal/core-ref-subject.js.map +0 -1
  315. package/dist/cjs/internal/core-subject.js +0 -108
  316. package/dist/cjs/internal/core-subject.js.map +0 -1
  317. package/dist/cjs/internal/deferred-ref.js.map +0 -1
  318. package/dist/cjs/internal/effect-primitive.js +0 -47
  319. package/dist/cjs/internal/effect-primitive.js.map +0 -1
  320. package/dist/cjs/internal/fx-effect-proto.js +0 -58
  321. package/dist/cjs/internal/fx-effect-proto.js.map +0 -1
  322. package/dist/cjs/internal/fx-primitive.js +0 -193
  323. package/dist/cjs/internal/fx-primitive.js.map +0 -1
  324. package/dist/cjs/internal/fx.js +0 -240
  325. package/dist/cjs/internal/fx.js.map +0 -1
  326. package/dist/cjs/internal/matchers.js +0 -34
  327. package/dist/cjs/internal/matchers.js.map +0 -1
  328. package/dist/cjs/internal/run.js +0 -54
  329. package/dist/cjs/internal/run.js.map +0 -1
  330. package/dist/cjs/internal/schema-ref-subject.js +0 -132
  331. package/dist/cjs/internal/schema-ref-subject.js.map +0 -1
  332. package/dist/cjs/internal/versioned-transform.js +0 -46
  333. package/dist/cjs/internal/versioned-transform.js.map +0 -1
  334. package/dist/dts/Computed.d.ts +0 -106
  335. package/dist/dts/Computed.d.ts.map +0 -1
  336. package/dist/dts/Filtered.d.ts +0 -97
  337. package/dist/dts/Filtered.d.ts.map +0 -1
  338. package/dist/dts/Model.d.ts +0 -200
  339. package/dist/dts/Model.d.ts.map +0 -1
  340. package/dist/dts/RefAsyncData.d.ts +0 -236
  341. package/dist/dts/RefAsyncData.d.ts.map +0 -1
  342. package/dist/dts/RefAsyncDataArray.d.ts +0 -56
  343. package/dist/dts/RefAsyncDataArray.d.ts.map +0 -1
  344. package/dist/dts/RefBoolean.d.ts +0 -47
  345. package/dist/dts/RefBoolean.d.ts.map +0 -1
  346. package/dist/dts/RefNumber.d.ts +0 -48
  347. package/dist/dts/RefNumber.d.ts.map +0 -1
  348. package/dist/dts/internal/core-ref-subject.d.ts +0 -100
  349. package/dist/dts/internal/core-ref-subject.d.ts.map +0 -1
  350. package/dist/dts/internal/core-subject.d.ts +0 -5
  351. package/dist/dts/internal/core-subject.d.ts.map +0 -1
  352. package/dist/dts/internal/deferred-ref.d.ts +0 -12
  353. package/dist/dts/internal/deferred-ref.d.ts.map +0 -1
  354. package/dist/dts/internal/effect-primitive.d.ts +0 -6
  355. package/dist/dts/internal/effect-primitive.d.ts.map +0 -1
  356. package/dist/dts/internal/fx-effect-proto.d.ts +0 -30
  357. package/dist/dts/internal/fx-effect-proto.d.ts.map +0 -1
  358. package/dist/dts/internal/fx-primitive.d.ts +0 -109
  359. package/dist/dts/internal/fx-primitive.d.ts.map +0 -1
  360. package/dist/dts/internal/fx.d.ts +0 -245
  361. package/dist/dts/internal/fx.d.ts.map +0 -1
  362. package/dist/dts/internal/matchers.d.ts +0 -33
  363. package/dist/dts/internal/matchers.d.ts.map +0 -1
  364. package/dist/dts/internal/run.d.ts +0 -8
  365. package/dist/dts/internal/run.d.ts.map +0 -1
  366. package/dist/dts/internal/schema-ref-subject.d.ts +0 -5
  367. package/dist/dts/internal/schema-ref-subject.d.ts.map +0 -1
  368. package/dist/dts/internal/versioned-transform.d.ts +0 -17
  369. package/dist/dts/internal/versioned-transform.d.ts.map +0 -1
  370. package/dist/esm/Computed.js +0 -103
  371. package/dist/esm/Computed.js.map +0 -1
  372. package/dist/esm/Filtered.js +0 -83
  373. package/dist/esm/Filtered.js.map +0 -1
  374. package/dist/esm/Model.js +0 -100
  375. package/dist/esm/Model.js.map +0 -1
  376. package/dist/esm/RefAsyncData.js +0 -163
  377. package/dist/esm/RefAsyncData.js.map +0 -1
  378. package/dist/esm/RefAsyncDataArray.js +0 -27
  379. package/dist/esm/RefAsyncDataArray.js.map +0 -1
  380. package/dist/esm/RefBoolean.js +0 -31
  381. package/dist/esm/RefBoolean.js.map +0 -1
  382. package/dist/esm/RefNumber.js +0 -35
  383. package/dist/esm/RefNumber.js.map +0 -1
  384. package/dist/esm/internal/core-ref-subject.js +0 -242
  385. package/dist/esm/internal/core-ref-subject.js.map +0 -1
  386. package/dist/esm/internal/core-subject.js +0 -90
  387. package/dist/esm/internal/core-subject.js.map +0 -1
  388. package/dist/esm/internal/deferred-ref.js +0 -23
  389. package/dist/esm/internal/deferred-ref.js.map +0 -1
  390. package/dist/esm/internal/effect-primitive.js +0 -41
  391. package/dist/esm/internal/effect-primitive.js.map +0 -1
  392. package/dist/esm/internal/fx-effect-proto.js +0 -43
  393. package/dist/esm/internal/fx-effect-proto.js.map +0 -1
  394. package/dist/esm/internal/fx-primitive.js +0 -175
  395. package/dist/esm/internal/fx-primitive.js.map +0 -1
  396. package/dist/esm/internal/fx.js +0 -216
  397. package/dist/esm/internal/fx.js.map +0 -1
  398. package/dist/esm/internal/matchers.js +0 -38
  399. package/dist/esm/internal/matchers.js.map +0 -1
  400. package/dist/esm/internal/run.js +0 -32
  401. package/dist/esm/internal/run.js.map +0 -1
  402. package/dist/esm/internal/schema-ref-subject.js +0 -121
  403. package/dist/esm/internal/schema-ref-subject.js.map +0 -1
  404. package/dist/esm/internal/versioned-transform.js +0 -37
  405. package/dist/esm/internal/versioned-transform.js.map +0 -1
  406. package/src/Computed.ts +0 -289
  407. package/src/Filtered.ts +0 -274
  408. package/src/Model.ts +0 -483
  409. package/src/RefAsyncData.ts +0 -547
  410. package/src/RefAsyncDataArray.ts +0 -135
  411. package/src/RefBoolean.ts +0 -71
  412. package/src/RefNumber.ts +0 -77
  413. package/src/internal/core-ref-subject.ts +0 -528
  414. package/src/internal/core-subject.ts +0 -143
  415. package/src/internal/deferred-ref.ts +0 -26
  416. package/src/internal/effect-primitive.ts +0 -230
  417. package/src/internal/fx-effect-proto.ts +0 -56
  418. package/src/internal/fx-primitive.ts +0 -223
  419. package/src/internal/fx.ts +0 -619
  420. package/src/internal/matchers.ts +0 -83
  421. package/src/internal/run.ts +0 -51
  422. package/src/internal/schema-ref-subject.ts +0 -163
  423. package/src/internal/versioned-transform.ts +0 -48
@@ -1,547 +0,0 @@
1
- /**
2
- * A RefAsyncData is a RefSubject that holds an AsyncData value.
3
- * @since 1.18.0
4
- */
5
-
6
- import * as AsyncData from "@typed/async-data/AsyncData"
7
- import type { Progress } from "@typed/async-data/Progress"
8
- import type { IdentifierConstructor, IdentifierOf } from "@typed/context"
9
- import { Either, Option } from "effect"
10
- import type { Exit, Scope } from "effect"
11
- import * as Cause from "effect/Cause"
12
- import * as Effect from "effect/Effect"
13
- import { dual } from "effect/Function"
14
- import type { Schedule } from "effect/Schedule"
15
- import type * as Computed from "./Computed.js"
16
- import type * as Filtered from "./Filtered.js"
17
- import * as Fx from "./Fx.js"
18
- import * as RefSubject from "./RefSubject.js"
19
- import * as Sink from "./Sink.js"
20
- import { RefSubjectTypeId } from "./TypeId.js"
21
-
22
- /**
23
- * A RefAsyncData is a RefSubject that holds an AsyncData value.
24
- * @since 1.18.0
25
- * @category models
26
- */
27
- export interface RefAsyncData<R, E, A> extends RefSubject.RefSubject<R, never, AsyncData.AsyncData<E, A>> {}
28
-
29
- /**
30
- * @since 1.18.0
31
- */
32
- export namespace RefAsyncData {
33
- /**
34
- * @since 1.18.0
35
- */
36
- export interface Tagged<I, E, A> extends RefSubject.RefSubject.Tagged<I, never, AsyncData.AsyncData<E, A>> {}
37
- }
38
-
39
- /**
40
- * Create a RefAsyncData
41
- * @since 1.18.0
42
- * @category constructors
43
- */
44
- export const make: <E, A>() => Effect.Effect<
45
- Scope.Scope,
46
- never,
47
- RefAsyncData<never, E, A>
48
- > = <E, A>() => RefSubject.of(AsyncData.noData<E, A>(), AsyncData.getEquivalence())
49
-
50
- /**
51
- * Create a Tagged RefAsyncData
52
- * @since 1.18.0
53
- * @category constructors
54
- */
55
- export const tagged = <E, A>(): {
56
- <const I extends IdentifierConstructor<any>>(
57
- identifier: (id: <const T>(uniqueIdentifier: T) => IdentifierConstructor<T>) => I
58
- ): RefAsyncData.Tagged<IdentifierOf<I>, E, A>
59
- <const I>(identifier: I | string): RefAsyncData.Tagged<IdentifierOf<I>, E, A>
60
- } => RefSubject.tagged<never, AsyncData.AsyncData<E, A>>()
61
-
62
- /**
63
- * Change the current value of a RefAsyncData to a loading or refreshing state.
64
- * @since 1.18.0
65
- * @category updates
66
- */
67
- export const startLoading: <R, E, A>(
68
- ref: RefAsyncData<R, E, A>
69
- ) => Effect.Effect<R, never, AsyncData.AsyncData<E, A>> = <R, E, A>(ref: RefAsyncData<R, E, A>) =>
70
- ref.update(AsyncData.startLoading)
71
-
72
- /**
73
- * Change the current value of a RefAsyncData to a non-loading/non-refreshing state.
74
- * @since 1.18.0
75
- * @category updates
76
- */
77
- export const stopLoading: <R, E, A>(
78
- ref: RefAsyncData<R, E, A>
79
- ) => Effect.Effect<R, never, AsyncData.AsyncData<E, A>> = <R, E, A>(ref: RefAsyncData<R, E, A>) =>
80
- ref.update(AsyncData.stopLoading)
81
-
82
- /**
83
- * Run an Effect that will first start by setting the state to loading/refreshing, and
84
- * then setting the value to the Exit of the Effect. If interrupted it will stop loading/refreshing
85
- * the data.
86
- * @since 1.18.0
87
- * @category updates
88
- */
89
- export const run: {
90
- <R2, E, A>(
91
- effect: Effect.Effect<R2, E, A>
92
- ): <R>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R | R2, never, AsyncData.AsyncData<E, A>>
93
-
94
- <R, E, A, R2>(
95
- ref: RefAsyncData<R, E, A>,
96
- effect: Effect.Effect<R2, E, A>
97
- ): Effect.Effect<R | R2, never, AsyncData.AsyncData<E, A>>
98
- } = dual(
99
- 2,
100
- <R, E, A, R2>(ref: RefAsyncData<R, E, A>, effect: Effect.Effect<R2, E, A>) =>
101
- ref.runUpdate((get, set) =>
102
- Effect.gen(function*(_) {
103
- const initial = yield* _(get)
104
-
105
- yield* _(set(AsyncData.startLoading(initial)))
106
- const exit = yield* _(Effect.exit(effect))
107
- return yield* _(set(AsyncData.done(exit)))
108
- }), (current) => Effect.succeed(AsyncData.stopLoading(current)))
109
- )
110
-
111
- /**
112
- * Run an Effect that will first start by setting the state to loading/refreshing if the current value is NoData, and
113
- * then setting the value to the Exit of the Effect. If interrupted it will stop loading/refreshing
114
- * the data.
115
- * @since 1.18.0
116
- * @category updates
117
- */
118
- export const runIfNoData: {
119
- <R2, E, A>(
120
- effect: Effect.Effect<R2, E, A>
121
- ): <R>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R | R2, never, AsyncData.AsyncData<E, A>>
122
-
123
- <R, E, A, R2>(
124
- ref: RefAsyncData<R, E, A>,
125
- effect: Effect.Effect<R2, E, A>
126
- ): Effect.Effect<R | R2, never, AsyncData.AsyncData<E, A>>
127
- } = dual(
128
- 2,
129
- <R, E, A, R2>(ref: RefAsyncData<R, E, A>, effect: Effect.Effect<R2, E, A>) =>
130
- ref.runUpdate((get, set) =>
131
- Effect.gen(function*(_) {
132
- const initial = yield* _(get)
133
-
134
- if (AsyncData.isNoData(initial) || (AsyncData.isFailure(initial) && Option.isNone(initial.refreshing))) {
135
- yield* _(set(AsyncData.startLoading(initial)))
136
- const exit = yield* _(Effect.exit(effect))
137
- return yield* _(set(AsyncData.done(exit)))
138
- }
139
-
140
- return initial
141
- }), (current) => Effect.succeed(AsyncData.stopLoading(current)))
142
- )
143
-
144
- /**
145
- * Repeat an Effect on a Schedule
146
- * @since 1.18.0
147
- * @category updates
148
- */
149
- export const runRepeat: {
150
- <R2, E, A, R3, X>(
151
- effect: Effect.Effect<R2, E, A>,
152
- schedule: Schedule<R3, unknown, X>
153
- ): <R>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R | R2 | R3, never, AsyncData.AsyncData<E, A>>
154
-
155
- <R, E, A, R2, R3, X>(
156
- ref: RefAsyncData<R, E, A>,
157
- effect: Effect.Effect<R2, E, A>,
158
- schedule: Schedule<R3, unknown, X>
159
- ): Effect.Effect<R | R2 | R3, never, AsyncData.AsyncData<E, A>>
160
- } = dual(
161
- 3,
162
- <R, E, A, R2, R3, X>(
163
- ref: RefAsyncData<R, E, A>,
164
- effect: Effect.Effect<R2, E, A>,
165
- schedule: Schedule<R3, unknown, X>
166
- ) => Effect.repeat(run(ref, effect), schedule)
167
- )
168
-
169
- /**
170
- * Retry an Effect on a Schedule
171
- * @since 1.18.0
172
- * @category updates
173
- */
174
- export const runRetry: {
175
- <R2, E, A, R3, X>(
176
- effect: Effect.Effect<R2, E, A>,
177
- schedule: Schedule<R3, unknown, X>
178
- ): <R>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R | R2 | R3, never, AsyncData.AsyncData<E, A>>
179
-
180
- <R, E, A, R2, R3, X>(
181
- ref: RefAsyncData<R, E, A>,
182
- effect: Effect.Effect<R2, E, A>,
183
- schedule: Schedule<R3, unknown, X>
184
- ): Effect.Effect<R | R2 | R3, never, AsyncData.AsyncData<E, A>>
185
- } = dual(
186
- 3,
187
- <R, E, A, R2, R3, X>(
188
- ref: RefAsyncData<R, E, A>,
189
- effect: Effect.Effect<R2, E, A>,
190
- schedule: Schedule<R3, unknown, X>
191
- ) => Effect.retry(run(ref, effect), schedule)
192
- )
193
-
194
- /**
195
- * Retry an Effect `n` times
196
- * @since 1.18.0
197
- * @category updates
198
- */
199
- export const runRetryN: {
200
- <R2, E, A>(
201
- effect: Effect.Effect<R2, E, A>,
202
- amount: number
203
- ): <R>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R | R2, never, AsyncData.AsyncData<E, A>>
204
-
205
- <R, E, A, R2>(
206
- ref: RefAsyncData<R, E, A>,
207
- effect: Effect.Effect<R2, E, A>,
208
- amount: number
209
- ): Effect.Effect<R | R2, never, AsyncData.AsyncData<E, A>>
210
- } = dual(
211
- 3,
212
- <R, E, A, R2>(
213
- ref: RefAsyncData<R, E, A>,
214
- effect: Effect.Effect<R2, E, A>,
215
- amount: number
216
- ) => Effect.retryN(run(ref, effect), amount)
217
- )
218
-
219
- /**
220
- * Await for the AsyncData to stop loading.
221
- * @since 1.18.0
222
- * @category updates
223
- */
224
- export const awaitLoading = <R, E, A>(
225
- data: RefAsyncData<R, E, A>
226
- ): Effect.Effect<R, never, AsyncData.AsyncData<E, A>> =>
227
- data.pipe(
228
- Fx.dropWhile((data) => Effect.succeed(AsyncData.isLoading(data))),
229
- Fx.take(1),
230
- Fx.toReadonlyArray,
231
- Effect.map((x) => x[0])
232
- )
233
-
234
- /**
235
- * Await for the AsyncData to stop loading or refreshing.
236
- * @since 1.18.0
237
- * @category updates
238
- */
239
- export const awaitLoadingOrRefreshing = <R, E, A>(
240
- data: RefAsyncData<R, E, A>
241
- ): Effect.Effect<R, never, AsyncData.AsyncData<E, A>> =>
242
- data.pipe(
243
- Fx.dropWhile((data) => Effect.succeed(AsyncData.isLoadingOrRefreshing(data))),
244
- Fx.take(1),
245
- Fx.toReadonlyArray,
246
- Effect.map((x) => x[0])
247
- )
248
-
249
- /**
250
- * Convert RefAsyncData into a Sink.
251
- * @since 1.18.0
252
- * @category conversions
253
- */
254
- export const asSink = <R, E, A>(ref: RefAsyncData<R, E, A>): Sink.WithContext<R, E, A> =>
255
- Sink.WithContext((cause) => ref.set(AsyncData.failCause(cause)), (a) => ref.set(AsyncData.success(a)))
256
-
257
- /**
258
- * Map the input value using an Effect
259
- * @since 1.18.0
260
- */
261
- export const mapInputEffect = <R, E, A, R2, B>(
262
- ref: RefAsyncData<R, E, A>,
263
- f: (b: B) => Effect.Effect<R2, E, A>
264
- ): Sink.WithContext<R | R2, E, B> => Sink.mapEffect(asSink(ref), f)
265
-
266
- /**
267
- * Map the input value
268
- * @since 1.18.0
269
- */
270
- export const mapInput = <R, E, A, B>(
271
- ref: RefAsyncData<R, E, A>,
272
- f: (b: B) => A
273
- ): Sink.WithContext<R, E, B> => Sink.map(asSink(ref), f)
274
-
275
- /**
276
- * Fail with a given cause
277
- * @since 1.18.0
278
- */
279
- export const failCause: {
280
- <E>(
281
- cause: Cause.Cause<E>,
282
- options?: AsyncData.OptionalPartial<AsyncData.FailureOptions>
283
- ): <R, A>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
284
-
285
- <R, E, A>(
286
- ref: RefAsyncData<R, E, A>,
287
- cause: Cause.Cause<E>,
288
- options?: AsyncData.OptionalPartial<AsyncData.FailureOptions>
289
- ): Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
290
- } = dual((args) => args.length === 3 || RefSubjectTypeId in args[0], <R, E, A>(
291
- ref: RefAsyncData<R, E, A>,
292
- cause: Cause.Cause<E>,
293
- options?: AsyncData.OptionalPartial<AsyncData.FailureOptions>
294
- ) => ref.set(AsyncData.failCause(cause, options)))
295
-
296
- /**
297
- * Fail with a given error
298
- * @since 1.18.0
299
- */
300
- export const fail: {
301
- <E>(
302
- error: E,
303
- options?: AsyncData.OptionalPartial<AsyncData.FailureOptions>
304
- ): <R, A>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
305
-
306
- <R, E, A>(
307
- ref: RefAsyncData<R, E, A>,
308
- error: E,
309
- options?: AsyncData.OptionalPartial<AsyncData.FailureOptions>
310
- ): Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
311
- } = dual((args) => args.length === 3 || RefSubjectTypeId in args[0], <R, E, A>(
312
- ref: RefAsyncData<R, E, A>,
313
- error: E,
314
- options?: AsyncData.OptionalPartial<AsyncData.FailureOptions>
315
- ) => ref.set(AsyncData.fail(error, options)))
316
-
317
- /**
318
- * Succeed with a value
319
- * @since 1.18.0
320
- */
321
- export const succeed: {
322
- <A>(
323
- value: A,
324
- options?: AsyncData.OptionalPartial<AsyncData.SuccessOptions>
325
- ): <R, E>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
326
-
327
- <R, E, A>(
328
- ref: RefAsyncData<R, E, A>,
329
- value: A,
330
- options?: AsyncData.OptionalPartial<AsyncData.SuccessOptions>
331
- ): Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
332
- } = dual((args) => args.length === 3 || RefSubjectTypeId in args[0], <R, E, A>(
333
- ref: RefAsyncData<R, E, A>,
334
- value: A,
335
- options?: AsyncData.OptionalPartial<AsyncData.SuccessOptions>
336
- ) => ref.set(AsyncData.success(value, options)))
337
-
338
- /**
339
- * Set Exit value of RefAsyncData
340
- * @since 1.18.0
341
- */
342
- export const done: {
343
- <E, A>(exit: Exit.Exit<E, A>): <R>(ref: RefAsyncData<R, E, A>) => Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
344
- <R, E, A>(ref: RefAsyncData<R, E, A>, exit: Exit.Exit<E, A>): Effect.Effect<R, never, AsyncData.AsyncData<E, A>>
345
- } = dual((args) => args.length === 3 || RefSubjectTypeId in args[0], <R, E, A>(
346
- ref: RefAsyncData<R, E, A>,
347
- exit: Exit.Exit<E, A>
348
- ) => ref.set(AsyncData.done(exit)))
349
-
350
- /**
351
- * Match over the states of AsyncData with an Fx
352
- * @since 1.18.0
353
- */
354
- export const match: {
355
- <
356
- E1,
357
- A,
358
- R2 = never,
359
- E2 = never,
360
- B = never,
361
- R3 = never,
362
- E3 = never,
363
- C = never,
364
- R4 = never,
365
- E4 = never,
366
- D = never,
367
- R5 = never,
368
- E5 = never,
369
- F = never
370
- >(
371
- matchers: {
372
- NoData: (data: AsyncData.NoData) => Fx.FxInput<R2, E2, B>
373
- Loading: (data: AsyncData.Loading) => Fx.FxInput<R3, E3, C>
374
- Failure: (cause: Cause.Cause<E1>, data: AsyncData.Failure<E1>) => Fx.FxInput<R4, E4, D>
375
- Success: (value: A, data: AsyncData.Success<A>) => Fx.FxInput<R5, E5, F>
376
- }
377
- ): <R, E>(
378
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, A>>
379
- ) => Fx.Fx<R | R2 | R3 | R4 | R5, E | E2 | E3 | E4 | E5, B | C | D | F>
380
-
381
- <
382
- R,
383
- E,
384
- E1,
385
- A,
386
- R2 = never,
387
- E2 = never,
388
- B = never,
389
- R3 = never,
390
- E3 = never,
391
- C = never,
392
- R4 = never,
393
- E4 = never,
394
- D = never,
395
- R5 = never,
396
- E5 = never,
397
- F = never
398
- >(
399
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, A>>,
400
- matchers: {
401
- NoData: (data: AsyncData.NoData) => Fx.FxInput<R2, E2, B>
402
- Loading: (data: AsyncData.Loading) => Fx.FxInput<R3, E3, C>
403
- Failure: (cause: Cause.Cause<E1>, data: AsyncData.Failure<E1>) => Fx.FxInput<R4, E4, D>
404
- Success: (value: A, data: AsyncData.Success<A>) => Fx.FxInput<R5, E5, F>
405
- }
406
- ): Fx.Fx<R | R2 | R3 | R4 | R5, E | E2 | E3 | E4 | E5, B | C | D | F>
407
- } = dual(2, <R, E, E1, A, R2, E2, B, R3, E3, C, R4, E4, D, R5, E5, F>(
408
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, A>>,
409
- matchers: {
410
- NoData: (data: AsyncData.NoData) => Fx.FxInput<R2, E2, B>
411
- Loading: (data: AsyncData.Loading) => Fx.FxInput<R3, E3, C>
412
- Failure: (cause: Cause.Cause<E1>, data: AsyncData.Failure<E1>) => Fx.FxInput<R4, E4, D>
413
- Success: (value: A, data: AsyncData.Success<A>) => Fx.FxInput<R5, E5, F>
414
- }
415
- ): Fx.Fx<R | R2 | R3 | R4 | R5, E | E2 | E3 | E4 | E5, B | C | D | F> => Fx.switchMap(fx, AsyncData.match(matchers)))
416
-
417
- /**
418
- * Match over the states of AsyncData with an Fx using persistent workflows.
419
- * @since 1.18.0
420
- */
421
- export const matchKeyed: {
422
- <
423
- E1,
424
- A,
425
- NoData extends Fx.FxInput<any, any, any>,
426
- Loading extends Fx.FxInput<any, any, any>,
427
- Failure extends Fx.FxInput<any, any, any>,
428
- Success extends Fx.FxInput<any, any, any>
429
- >(
430
- matchers: {
431
- NoData: () => NoData
432
- Loading: (data: LoadingComputed) => Loading
433
- Failure: (data: Computed.Computed<never, never, E1>, computed: FailureComputed<E1>) => Failure
434
- Success: (value: Computed.Computed<never, never, A>, computed: SuccessComputed) => Success
435
- }
436
- ): <R, E>(
437
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, A>>
438
- ) => Fx.Fx<
439
- R | Fx.Fx.Context<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
440
- E | Fx.Fx.Error<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
441
- Fx.Fx.Success<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>
442
- >
443
-
444
- <
445
- R,
446
- E,
447
- E1,
448
- A,
449
- NoData extends Fx.FxInput<any, any, any>,
450
- Loading extends Fx.FxInput<any, any, any>,
451
- Failure extends Fx.FxInput<any, any, any>,
452
- Success extends Fx.FxInput<any, any, any>
453
- >(
454
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, A>>,
455
- matchers: {
456
- NoData: () => NoData
457
- Loading: (data: LoadingComputed) => Loading
458
- Failure: (data: Computed.Computed<never, never, E1>, computed: FailureComputed<E1>) => Failure
459
- Success: (value: Computed.Computed<never, never, A>, computed: SuccessComputed) => Success
460
- }
461
- ): Fx.Fx<
462
- R | Fx.Fx.Context<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
463
- E | Fx.Fx.Error<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
464
- Fx.Fx.Success<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>
465
- >
466
- } = dual(
467
- 2,
468
- <
469
- R,
470
- E,
471
- E1,
472
- A,
473
- NoData extends Fx.FxInput<any, any, any>,
474
- Loading extends Fx.FxInput<any, any, any>,
475
- Failure extends Fx.FxInput<any, any, any>,
476
- Success extends Fx.FxInput<any, any, any>
477
- >(
478
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, A>>,
479
- matchers: {
480
- NoData: () => NoData
481
- Loading: (data: LoadingComputed) => Loading
482
- Failure: (data: Computed.Computed<never, never, E1>, computed: FailureComputed<E1>) => Failure
483
- Success: (value: Computed.Computed<never, never, A>, computed: SuccessComputed) => Success
484
- }
485
- ): Fx.Fx<
486
- R | Fx.Fx.Context<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
487
- E | Fx.Fx.Error<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
488
- Fx.Fx.Success<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>
489
- > =>
490
- Fx.matchTags(fx, {
491
- NoData: () => matchers.NoData(),
492
- Loading: (ref) => matchers.Loading({ progress: ref.map((r) => r.progress) }),
493
- Failure: (ref) =>
494
- matchers.Failure(
495
- ref.mapEffect(({ cause }) =>
496
- Cause.failureOrCause(cause).pipe(Either.flip, Effect.catchAll(Effect.failCause))
497
- ),
498
- {
499
- cause: ref.map((r) => r.cause),
500
- refreshing: ref.map((r) => r.refreshing)
501
- }
502
- ),
503
- Success: (ref) =>
504
- matchers.Success(
505
- ref.map((r) => r.value),
506
- {
507
- refreshing: ref.map((r) => r.refreshing)
508
- }
509
- )
510
- })
511
- )
512
-
513
- /**
514
- * @since 1.18.0
515
- */
516
- export type LoadingComputed = {
517
- readonly progress: Computed.Computed<never, never, Option.Option<Progress>>
518
- }
519
-
520
- /**
521
- * @since 1.18.0
522
- */
523
- export type FailureComputed<E> = {
524
- readonly cause: Computed.Computed<never, never, Cause.Cause<E>>
525
- readonly refreshing: Computed.Computed<never, never, Option.Option<AsyncData.Loading>>
526
- }
527
-
528
- /**
529
- * @since 1.18.0
530
- */
531
- export type SuccessComputed = {
532
- readonly refreshing: Computed.Computed<never, never, Option.Option<AsyncData.Loading>>
533
- }
534
-
535
- /**
536
- * @since 1.18.0
537
- * @category Filtered
538
- */
539
- export const getFailure = <R, E, A>(ref: RefAsyncData<R, E, A>): Filtered.Filtered<R, never, E> =>
540
- ref.filterMap(AsyncData.getFailure)
541
-
542
- /**
543
- * @since 1.18.0
544
- * @category Filtered
545
- */
546
- export const getSuccess = <R, E, A>(ref: RefAsyncData<R, E, A>): Filtered.Filtered<R, never, A> =>
547
- ref.filterMap(AsyncData.getSuccess)
@@ -1,135 +0,0 @@
1
- /**
2
- * A RefAsyncDataArray is a RefSubject that holds a AsyncData value of an array.
3
- * @since 1.18.0
4
- */
5
-
6
- import type * as AsyncData from "@typed/async-data/AsyncData"
7
- import type { IdentifierConstructor, IdentifierOf } from "@typed/context/Identifier"
8
- import type { Scope } from "effect"
9
- import type * as Effect from "effect/Effect"
10
- import { dual } from "effect/Function"
11
- import type * as Computed from "./Computed.js"
12
- import * as Fx from "./Fx.js"
13
- import * as RefAsyncData from "./RefAsyncData.js"
14
-
15
- /**
16
- * A RefAsyncDataArray is a RefSubject that holds a AsyncData value of an array.
17
- * @since 1.18.0
18
- */
19
- export interface RefAsyncDataArray<R, E, A> extends RefAsyncData.RefAsyncData<R, E, ReadonlyArray<A>> {}
20
-
21
- /**
22
- * @since 1.18.0
23
- */
24
- export namespace RefAsyncDataArray {
25
- /**
26
- * @since 1.18.0
27
- */
28
- export interface Tagged<I, E, A> extends RefAsyncData.RefAsyncData.Tagged<I, E, ReadonlyArray<A>> {}
29
- }
30
-
31
- /**
32
- * @since 1.18.0
33
- */
34
- export const make = <E, A>(): Effect.Effect<Scope.Scope, never, RefAsyncDataArray<never, E, A>> =>
35
- RefAsyncData.make<E, ReadonlyArray<A>>()
36
-
37
- /**
38
- * @since 1.18.0
39
- */
40
- export const tagged = <E, A>(): {
41
- <const I extends IdentifierConstructor<any>>(
42
- identifier: (id: <const T>(uniqueIdentifier: T) => IdentifierConstructor<T>) => I
43
- ): RefAsyncDataArray.Tagged<IdentifierOf<I>, E, A>
44
- <const I>(identifier: I | string): RefAsyncDataArray.Tagged<IdentifierOf<I>, E, A>
45
- } => RefAsyncData.tagged<E, ReadonlyArray<A>>()
46
-
47
- /**
48
- * @since 1.18.0
49
- */
50
- export const matchKeyed: {
51
- <
52
- E1,
53
- A,
54
- B,
55
- NoData extends Fx.FxInput<any, any, any>,
56
- Loading extends Fx.FxInput<any, any, any>,
57
- Failure extends Fx.FxInput<any, any, any>,
58
- Success extends Fx.FxInput<any, any, any>
59
- >(
60
- getKey: (a: A) => B,
61
- matchers: {
62
- NoData: () => NoData
63
- Loading: (data: RefAsyncData.LoadingComputed) => Loading
64
- Failure: (data: Computed.Computed<never, never, E1>, computed: RefAsyncData.FailureComputed<E1>) => Failure
65
- Success: (value: Computed.Computed<never, never, A>, computed: RefAsyncData.SuccessComputed) => Success
66
- }
67
- ): <R, E>(
68
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, ReadonlyArray<A>>>
69
- ) => Fx.Fx<
70
- R | Fx.Fx.Context<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
71
- E | Fx.Fx.Error<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
72
- | Fx.Fx.Success<Fx.Fx.FromInput<NoData | Loading | Failure>>
73
- | ReadonlyArray<Fx.Fx.Success<Fx.Fx.FromInput<Success>>>
74
- >
75
-
76
- <
77
- R,
78
- E,
79
- E1,
80
- A,
81
- B,
82
- NoData extends Fx.FxInput<any, any, any>,
83
- Loading extends Fx.FxInput<any, any, any>,
84
- Failure extends Fx.FxInput<any, any, any>,
85
- Success extends Fx.FxInput<any, any, any>
86
- >(
87
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, ReadonlyArray<A>>>,
88
- getKey: (a: A) => B,
89
- matchers: {
90
- NoData: () => NoData
91
- Loading: (data: RefAsyncData.LoadingComputed) => Loading
92
- Failure: (data: Computed.Computed<never, never, E1>, computed: RefAsyncData.FailureComputed<E1>) => Failure
93
- Success: (value: Computed.Computed<never, never, A>, computed: RefAsyncData.SuccessComputed) => Success
94
- }
95
- ): Fx.Fx<
96
- R | Fx.Fx.Context<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
97
- E | Fx.Fx.Error<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
98
- | Fx.Fx.Success<Fx.Fx.FromInput<NoData | Loading | Failure>>
99
- | ReadonlyArray<Fx.Fx.Success<Fx.Fx.FromInput<Success>>>
100
- >
101
- } = dual(
102
- 3,
103
- <
104
- R,
105
- E,
106
- E1,
107
- A,
108
- B,
109
- NoData extends Fx.FxInput<any, any, any>,
110
- Loading extends Fx.FxInput<any, any, any>,
111
- Failure extends Fx.FxInput<any, any, any>,
112
- Success extends Fx.FxInput<any, any, any>
113
- >(
114
- fx: Fx.Fx<R, E, AsyncData.AsyncData<E1, ReadonlyArray<A>>>,
115
- getKey: (a: A) => B,
116
- matchers: {
117
- NoData: () => NoData
118
- Loading: (data: RefAsyncData.LoadingComputed) => Loading
119
- Failure: (data: Computed.Computed<never, never, E1>, computed: RefAsyncData.FailureComputed<E1>) => Failure
120
- Success: (value: Computed.Computed<never, never, A>, computed: RefAsyncData.SuccessComputed) => Success
121
- }
122
- ): Fx.Fx<
123
- R | Fx.Fx.Context<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
124
- E | Fx.Fx.Error<Fx.Fx.FromInput<NoData | Loading | Failure | Success>>,
125
- | Fx.Fx.Success<Fx.Fx.FromInput<NoData | Loading | Failure>>
126
- | ReadonlyArray<Fx.Fx.Success<Fx.Fx.FromInput<Success>>>
127
- > => {
128
- return RefAsyncData.matchKeyed(fx, {
129
- NoData: matchers.NoData,
130
- Loading: matchers.Loading,
131
- Failure: matchers.Failure,
132
- Success: (ref, computed) => Fx.keyed(ref, getKey, (ref) => matchers.Success(ref, computed))
133
- }) as any
134
- }
135
- )