@typed/fx 1.19.0 → 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 (411) hide show
  1. package/AsyncData/package.json +6 -0
  2. package/Push/package.json +6 -0
  3. package/dist/cjs/AsyncData.js +177 -0
  4. package/dist/cjs/AsyncData.js.map +1 -0
  5. package/dist/cjs/Emitter.js +24 -21
  6. package/dist/cjs/Emitter.js.map +1 -1
  7. package/dist/cjs/Form.js +78 -21
  8. package/dist/cjs/Form.js.map +1 -1
  9. package/dist/cjs/FormEntry.js +75 -48
  10. package/dist/cjs/FormEntry.js.map +1 -1
  11. package/dist/cjs/Fx.js +517 -872
  12. package/dist/cjs/Fx.js.map +1 -1
  13. package/dist/cjs/Guard.js +21 -13
  14. package/dist/cjs/Guard.js.map +1 -1
  15. package/dist/cjs/Idle.js +49 -37
  16. package/dist/cjs/Idle.js.map +1 -1
  17. package/dist/cjs/Match.js +99 -61
  18. package/dist/cjs/Match.js.map +1 -1
  19. package/dist/cjs/Pull.js.map +1 -1
  20. package/dist/cjs/Push.js +168 -0
  21. package/dist/cjs/Push.js.map +1 -0
  22. package/dist/cjs/RefArray.js +32 -30
  23. package/dist/cjs/RefArray.js.map +1 -1
  24. package/dist/cjs/RefChunk.js +26 -24
  25. package/dist/cjs/RefChunk.js.map +1 -1
  26. package/dist/cjs/RefHashMap.js +20 -20
  27. package/dist/cjs/RefHashMap.js.map +1 -1
  28. package/dist/cjs/RefHashSet.js +11 -8
  29. package/dist/cjs/RefHashSet.js.map +1 -1
  30. package/dist/cjs/RefSubject.js +899 -158
  31. package/dist/cjs/RefSubject.js.map +1 -1
  32. package/dist/cjs/Sink.js +588 -62
  33. package/dist/cjs/Sink.js.map +1 -1
  34. package/dist/cjs/Stream.js +15 -10
  35. package/dist/cjs/Stream.js.map +1 -1
  36. package/dist/cjs/Subject.js +153 -55
  37. package/dist/cjs/Subject.js.map +1 -1
  38. package/dist/cjs/TypeId.js +10 -5
  39. package/dist/cjs/TypeId.js.map +1 -1
  40. package/dist/cjs/Typeclass.js +28 -31
  41. package/dist/cjs/Typeclass.js.map +1 -1
  42. package/dist/cjs/Versioned.js +118 -57
  43. package/dist/cjs/Versioned.js.map +1 -1
  44. package/dist/cjs/index.js +44 -8
  45. package/dist/cjs/index.js.map +1 -1
  46. package/dist/cjs/internal/{deferred-ref.js → DeferredRef.js} +45 -13
  47. package/dist/cjs/internal/DeferredRef.js.map +1 -0
  48. package/dist/cjs/internal/UnionToTuple.js +6 -0
  49. package/dist/cjs/internal/UnionToTuple.js.map +1 -0
  50. package/dist/cjs/internal/core.js +1590 -779
  51. package/dist/cjs/internal/core.js.map +1 -1
  52. package/dist/cjs/internal/diff.js +114 -0
  53. package/dist/cjs/internal/diff.js.map +1 -0
  54. package/dist/cjs/internal/effect-loop-operator.js +288 -0
  55. package/dist/cjs/internal/effect-loop-operator.js.map +1 -0
  56. package/dist/cjs/internal/effect-operator.js +46 -37
  57. package/dist/cjs/internal/effect-operator.js.map +1 -1
  58. package/dist/cjs/internal/effect-producer.js +74 -0
  59. package/dist/cjs/internal/effect-producer.js.map +1 -0
  60. package/dist/cjs/internal/helpers.js +158 -128
  61. package/dist/cjs/internal/helpers.js.map +1 -1
  62. package/dist/cjs/internal/keyed.js +136 -173
  63. package/dist/cjs/internal/keyed.js.map +1 -1
  64. package/dist/cjs/internal/loop-operator.js +213 -0
  65. package/dist/cjs/internal/loop-operator.js.map +1 -0
  66. package/dist/cjs/internal/operator.js +79 -0
  67. package/dist/cjs/internal/operator.js.map +1 -0
  68. package/dist/cjs/internal/protos.js +19 -81
  69. package/dist/cjs/internal/protos.js.map +1 -1
  70. package/dist/cjs/internal/provide.js +47 -25
  71. package/dist/cjs/internal/provide.js.map +1 -1
  72. package/dist/cjs/internal/requestIdleCallback.js +5 -5
  73. package/dist/cjs/internal/requestIdleCallback.js.map +1 -1
  74. package/dist/cjs/internal/share.js +12 -15
  75. package/dist/cjs/internal/share.js.map +1 -1
  76. package/dist/cjs/internal/sync-operator.js +50 -22
  77. package/dist/cjs/internal/sync-operator.js.map +1 -1
  78. package/dist/cjs/internal/sync-producer.js +114 -0
  79. package/dist/cjs/internal/sync-producer.js.map +1 -0
  80. package/dist/cjs/internal/withKey.js +45 -51
  81. package/dist/cjs/internal/withKey.js.map +1 -1
  82. package/dist/dts/AsyncData.d.ts +185 -0
  83. package/dist/dts/AsyncData.d.ts.map +1 -0
  84. package/dist/dts/Emitter.d.ts +13 -20
  85. package/dist/dts/Emitter.d.ts.map +1 -1
  86. package/dist/dts/Form.d.ts +45 -28
  87. package/dist/dts/Form.d.ts.map +1 -1
  88. package/dist/dts/FormEntry.d.ts +25 -13
  89. package/dist/dts/FormEntry.d.ts.map +1 -1
  90. package/dist/dts/Fx.d.ts +980 -1390
  91. package/dist/dts/Fx.d.ts.map +1 -1
  92. package/dist/dts/Guard.d.ts +8 -1
  93. package/dist/dts/Guard.d.ts.map +1 -1
  94. package/dist/dts/Idle.d.ts +3 -3
  95. package/dist/dts/Idle.d.ts.map +1 -1
  96. package/dist/dts/Match.d.ts +8 -8
  97. package/dist/dts/Match.d.ts.map +1 -1
  98. package/dist/dts/Pull.d.ts +5 -5
  99. package/dist/dts/Pull.d.ts.map +1 -1
  100. package/dist/dts/Push.d.ts +170 -0
  101. package/dist/dts/Push.d.ts.map +1 -0
  102. package/dist/dts/RefArray.d.ts +21 -23
  103. package/dist/dts/RefArray.d.ts.map +1 -1
  104. package/dist/dts/RefChunk.d.ts +17 -19
  105. package/dist/dts/RefChunk.d.ts.map +1 -1
  106. package/dist/dts/RefHashMap.d.ts +19 -20
  107. package/dist/dts/RefHashMap.d.ts.map +1 -1
  108. package/dist/dts/RefHashSet.d.ts +12 -16
  109. package/dist/dts/RefHashSet.d.ts.map +1 -1
  110. package/dist/dts/RefSubject.d.ts +396 -187
  111. package/dist/dts/RefSubject.d.ts.map +1 -1
  112. package/dist/dts/Sink.d.ts +193 -93
  113. package/dist/dts/Sink.d.ts.map +1 -1
  114. package/dist/dts/Stream.d.ts +7 -1
  115. package/dist/dts/Stream.d.ts.map +1 -1
  116. package/dist/dts/Subject.d.ts +27 -36
  117. package/dist/dts/Subject.d.ts.map +1 -1
  118. package/dist/dts/TypeId.d.ts +10 -0
  119. package/dist/dts/TypeId.d.ts.map +1 -1
  120. package/dist/dts/Typeclass.d.ts +2 -2
  121. package/dist/dts/Typeclass.d.ts.map +1 -1
  122. package/dist/dts/Versioned.d.ts +50 -78
  123. package/dist/dts/Versioned.d.ts.map +1 -1
  124. package/dist/dts/index.d.ts +66 -6
  125. package/dist/dts/index.d.ts.map +1 -1
  126. package/dist/dts/internal/DeferredRef.d.ts +20 -0
  127. package/dist/dts/internal/DeferredRef.d.ts.map +1 -0
  128. package/dist/dts/internal/UnionToTuple.d.ts +6 -0
  129. package/dist/dts/internal/UnionToTuple.d.ts.map +1 -0
  130. package/dist/dts/internal/core.d.ts +218 -450
  131. package/dist/dts/internal/core.d.ts.map +1 -1
  132. package/dist/dts/internal/diff.d.ts +38 -0
  133. package/dist/dts/internal/diff.d.ts.map +1 -0
  134. package/dist/dts/internal/effect-loop-operator.d.ts +34 -0
  135. package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -0
  136. package/dist/dts/internal/effect-operator.d.ts +8 -5
  137. package/dist/dts/internal/effect-operator.d.ts.map +1 -1
  138. package/dist/dts/internal/effect-producer.d.ts +25 -0
  139. package/dist/dts/internal/effect-producer.d.ts.map +1 -0
  140. package/dist/dts/internal/helpers.d.ts +33 -24
  141. package/dist/dts/internal/helpers.d.ts.map +1 -1
  142. package/dist/dts/internal/keyed.d.ts +3 -3
  143. package/dist/dts/internal/keyed.d.ts.map +1 -1
  144. package/dist/dts/internal/loop-operator.d.ts +40 -0
  145. package/dist/dts/internal/loop-operator.d.ts.map +1 -0
  146. package/dist/dts/internal/operator.d.ts +16 -0
  147. package/dist/dts/internal/operator.d.ts.map +1 -0
  148. package/dist/dts/internal/protos.d.ts +16 -43
  149. package/dist/dts/internal/protos.d.ts.map +1 -1
  150. package/dist/dts/internal/provide.d.ts +7 -1
  151. package/dist/dts/internal/provide.d.ts.map +1 -1
  152. package/dist/dts/internal/share.d.ts +12 -9
  153. package/dist/dts/internal/share.d.ts.map +1 -1
  154. package/dist/dts/internal/sync-operator.d.ts +7 -3
  155. package/dist/dts/internal/sync-operator.d.ts.map +1 -1
  156. package/dist/dts/internal/sync-producer.d.ts +36 -0
  157. package/dist/dts/internal/sync-producer.d.ts.map +1 -0
  158. package/dist/dts/internal/withKey.d.ts +3 -3
  159. package/dist/dts/internal/withKey.d.ts.map +1 -1
  160. package/dist/esm/AsyncData.js +151 -0
  161. package/dist/esm/AsyncData.js.map +1 -0
  162. package/dist/esm/Emitter.js +24 -21
  163. package/dist/esm/Emitter.js.map +1 -1
  164. package/dist/esm/Form.js +69 -14
  165. package/dist/esm/Form.js.map +1 -1
  166. package/dist/esm/FormEntry.js +77 -52
  167. package/dist/esm/FormEntry.js.map +1 -1
  168. package/dist/esm/Fx.js +509 -874
  169. package/dist/esm/Fx.js.map +1 -1
  170. package/dist/esm/Guard.js +5 -1
  171. package/dist/esm/Guard.js.map +1 -1
  172. package/dist/esm/Idle.js +49 -39
  173. package/dist/esm/Idle.js.map +1 -1
  174. package/dist/esm/Match.js +103 -63
  175. package/dist/esm/Match.js.map +1 -1
  176. package/dist/esm/Pull.js.map +1 -1
  177. package/dist/esm/Push.js +159 -0
  178. package/dist/esm/Push.js.map +1 -0
  179. package/dist/esm/RefArray.js +32 -30
  180. package/dist/esm/RefArray.js.map +1 -1
  181. package/dist/esm/RefChunk.js +26 -24
  182. package/dist/esm/RefChunk.js.map +1 -1
  183. package/dist/esm/RefHashMap.js +20 -20
  184. package/dist/esm/RefHashMap.js.map +1 -1
  185. package/dist/esm/RefHashSet.js +11 -8
  186. package/dist/esm/RefHashSet.js.map +1 -1
  187. package/dist/esm/RefSubject.js +873 -150
  188. package/dist/esm/RefSubject.js.map +1 -1
  189. package/dist/esm/Sink.js +608 -57
  190. package/dist/esm/Sink.js.map +1 -1
  191. package/dist/esm/Stream.js +13 -9
  192. package/dist/esm/Stream.js.map +1 -1
  193. package/dist/esm/Subject.js +151 -56
  194. package/dist/esm/Subject.js.map +1 -1
  195. package/dist/esm/TypeId.js +9 -4
  196. package/dist/esm/TypeId.js.map +1 -1
  197. package/dist/esm/Typeclass.js +29 -29
  198. package/dist/esm/Typeclass.js.map +1 -1
  199. package/dist/esm/Versioned.js +110 -53
  200. package/dist/esm/Versioned.js.map +1 -1
  201. package/dist/esm/index.js +66 -6
  202. package/dist/esm/index.js.map +1 -1
  203. package/dist/esm/internal/DeferredRef.js +54 -0
  204. package/dist/esm/internal/DeferredRef.js.map +1 -0
  205. package/dist/esm/internal/UnionToTuple.js +2 -0
  206. package/dist/esm/internal/UnionToTuple.js.map +1 -0
  207. package/dist/esm/internal/core.js +1439 -719
  208. package/dist/esm/internal/core.js.map +1 -1
  209. package/dist/esm/internal/diff.js +82 -0
  210. package/dist/esm/internal/diff.js.map +1 -0
  211. package/dist/esm/internal/effect-loop-operator.js +269 -0
  212. package/dist/esm/internal/effect-loop-operator.js.map +1 -0
  213. package/dist/esm/internal/effect-operator.js +44 -37
  214. package/dist/esm/internal/effect-operator.js.map +1 -1
  215. package/dist/esm/internal/effect-producer.js +47 -0
  216. package/dist/esm/internal/effect-producer.js.map +1 -0
  217. package/dist/esm/internal/helpers.js +157 -129
  218. package/dist/esm/internal/helpers.js.map +1 -1
  219. package/dist/esm/internal/keyed.js +128 -139
  220. package/dist/esm/internal/keyed.js.map +1 -1
  221. package/dist/esm/internal/loop-operator.js +186 -0
  222. package/dist/esm/internal/loop-operator.js.map +1 -0
  223. package/dist/esm/internal/operator.js +68 -0
  224. package/dist/esm/internal/operator.js.map +1 -0
  225. package/dist/esm/internal/protos.js +16 -75
  226. package/dist/esm/internal/protos.js.map +1 -1
  227. package/dist/esm/internal/provide.js +33 -25
  228. package/dist/esm/internal/provide.js.map +1 -1
  229. package/dist/esm/internal/requestIdleCallback.js +5 -5
  230. package/dist/esm/internal/requestIdleCallback.js.map +1 -1
  231. package/dist/esm/internal/share.js +12 -12
  232. package/dist/esm/internal/share.js.map +1 -1
  233. package/dist/esm/internal/sync-operator.js +49 -21
  234. package/dist/esm/internal/sync-operator.js.map +1 -1
  235. package/dist/esm/internal/sync-producer.js +88 -0
  236. package/dist/esm/internal/sync-producer.js.map +1 -0
  237. package/dist/esm/internal/withKey.js +46 -47
  238. package/dist/esm/internal/withKey.js.map +1 -1
  239. package/package.json +22 -62
  240. package/src/AsyncData.ts +447 -0
  241. package/src/Emitter.ts +47 -38
  242. package/src/Form.ts +185 -65
  243. package/src/FormEntry.ts +142 -109
  244. package/src/Fx.ts +1682 -1854
  245. package/src/Guard.ts +12 -1
  246. package/src/Idle.ts +76 -62
  247. package/src/Match.ts +149 -93
  248. package/src/Pull.ts +8 -8
  249. package/src/Push.ts +472 -0
  250. package/src/RefArray.ts +53 -51
  251. package/src/RefChunk.ts +44 -41
  252. package/src/RefHashMap.ts +57 -43
  253. package/src/RefHashSet.ts +21 -31
  254. package/src/RefSubject.ts +1984 -457
  255. package/src/Sink.ts +922 -171
  256. package/src/Stream.ts +32 -20
  257. package/src/Subject.ts +230 -87
  258. package/src/TypeId.ts +16 -4
  259. package/src/Typeclass.ts +31 -32
  260. package/src/Versioned.ts +220 -168
  261. package/src/index.ts +78 -6
  262. package/src/internal/DeferredRef.ts +62 -0
  263. package/src/internal/UnionToTuple.ts +11 -0
  264. package/src/internal/core.ts +2491 -1950
  265. package/src/internal/diff.ts +157 -0
  266. package/src/internal/effect-loop-operator.ts +466 -0
  267. package/src/internal/effect-operator.ts +89 -54
  268. package/src/internal/effect-producer.ts +125 -0
  269. package/src/internal/helpers.ts +275 -205
  270. package/src/internal/keyed.ts +192 -241
  271. package/src/internal/loop-operator.ts +266 -0
  272. package/src/internal/operator.ts +87 -0
  273. package/src/internal/protos.ts +29 -104
  274. package/src/internal/provide.ts +48 -40
  275. package/src/internal/requestIdleCallback.ts +5 -6
  276. package/src/internal/share.ts +26 -24
  277. package/src/internal/sync-operator.ts +68 -27
  278. package/src/internal/sync-producer.ts +146 -0
  279. package/src/internal/withKey.ts +64 -74
  280. package/Computed/package.json +0 -6
  281. package/Filtered/package.json +0 -6
  282. package/Model/package.json +0 -6
  283. package/RefAsyncData/package.json +0 -6
  284. package/RefAsyncDataArray/package.json +0 -6
  285. package/RefBoolean/package.json +0 -6
  286. package/RefNumber/package.json +0 -6
  287. package/dist/cjs/Computed.js +0 -115
  288. package/dist/cjs/Computed.js.map +0 -1
  289. package/dist/cjs/Filtered.js +0 -95
  290. package/dist/cjs/Filtered.js.map +0 -1
  291. package/dist/cjs/Model.js +0 -119
  292. package/dist/cjs/Model.js.map +0 -1
  293. package/dist/cjs/RefAsyncData.js +0 -187
  294. package/dist/cjs/RefAsyncData.js.map +0 -1
  295. package/dist/cjs/RefAsyncDataArray.js +0 -38
  296. package/dist/cjs/RefAsyncDataArray.js.map +0 -1
  297. package/dist/cjs/RefBoolean.js +0 -45
  298. package/dist/cjs/RefBoolean.js.map +0 -1
  299. package/dist/cjs/RefNumber.js +0 -49
  300. package/dist/cjs/RefNumber.js.map +0 -1
  301. package/dist/cjs/internal/core-ref-subject.js +0 -254
  302. package/dist/cjs/internal/core-ref-subject.js.map +0 -1
  303. package/dist/cjs/internal/core-subject.js +0 -108
  304. package/dist/cjs/internal/core-subject.js.map +0 -1
  305. package/dist/cjs/internal/deferred-ref.js.map +0 -1
  306. package/dist/cjs/internal/effect-primitive.js +0 -47
  307. package/dist/cjs/internal/effect-primitive.js.map +0 -1
  308. package/dist/cjs/internal/fx-effect-proto.js +0 -58
  309. package/dist/cjs/internal/fx-effect-proto.js.map +0 -1
  310. package/dist/cjs/internal/fx-primitive.js +0 -193
  311. package/dist/cjs/internal/fx-primitive.js.map +0 -1
  312. package/dist/cjs/internal/fx.js +0 -240
  313. package/dist/cjs/internal/fx.js.map +0 -1
  314. package/dist/cjs/internal/matchers.js +0 -34
  315. package/dist/cjs/internal/matchers.js.map +0 -1
  316. package/dist/cjs/internal/run.js +0 -54
  317. package/dist/cjs/internal/run.js.map +0 -1
  318. package/dist/cjs/internal/schema-ref-subject.js +0 -132
  319. package/dist/cjs/internal/schema-ref-subject.js.map +0 -1
  320. package/dist/cjs/internal/versioned-transform.js +0 -46
  321. package/dist/cjs/internal/versioned-transform.js.map +0 -1
  322. package/dist/dts/Computed.d.ts +0 -106
  323. package/dist/dts/Computed.d.ts.map +0 -1
  324. package/dist/dts/Filtered.d.ts +0 -97
  325. package/dist/dts/Filtered.d.ts.map +0 -1
  326. package/dist/dts/Model.d.ts +0 -200
  327. package/dist/dts/Model.d.ts.map +0 -1
  328. package/dist/dts/RefAsyncData.d.ts +0 -236
  329. package/dist/dts/RefAsyncData.d.ts.map +0 -1
  330. package/dist/dts/RefAsyncDataArray.d.ts +0 -56
  331. package/dist/dts/RefAsyncDataArray.d.ts.map +0 -1
  332. package/dist/dts/RefBoolean.d.ts +0 -47
  333. package/dist/dts/RefBoolean.d.ts.map +0 -1
  334. package/dist/dts/RefNumber.d.ts +0 -48
  335. package/dist/dts/RefNumber.d.ts.map +0 -1
  336. package/dist/dts/internal/core-ref-subject.d.ts +0 -100
  337. package/dist/dts/internal/core-ref-subject.d.ts.map +0 -1
  338. package/dist/dts/internal/core-subject.d.ts +0 -5
  339. package/dist/dts/internal/core-subject.d.ts.map +0 -1
  340. package/dist/dts/internal/deferred-ref.d.ts +0 -12
  341. package/dist/dts/internal/deferred-ref.d.ts.map +0 -1
  342. package/dist/dts/internal/effect-primitive.d.ts +0 -6
  343. package/dist/dts/internal/effect-primitive.d.ts.map +0 -1
  344. package/dist/dts/internal/fx-effect-proto.d.ts +0 -30
  345. package/dist/dts/internal/fx-effect-proto.d.ts.map +0 -1
  346. package/dist/dts/internal/fx-primitive.d.ts +0 -109
  347. package/dist/dts/internal/fx-primitive.d.ts.map +0 -1
  348. package/dist/dts/internal/fx.d.ts +0 -245
  349. package/dist/dts/internal/fx.d.ts.map +0 -1
  350. package/dist/dts/internal/matchers.d.ts +0 -33
  351. package/dist/dts/internal/matchers.d.ts.map +0 -1
  352. package/dist/dts/internal/run.d.ts +0 -8
  353. package/dist/dts/internal/run.d.ts.map +0 -1
  354. package/dist/dts/internal/schema-ref-subject.d.ts +0 -5
  355. package/dist/dts/internal/schema-ref-subject.d.ts.map +0 -1
  356. package/dist/dts/internal/versioned-transform.d.ts +0 -17
  357. package/dist/dts/internal/versioned-transform.d.ts.map +0 -1
  358. package/dist/esm/Computed.js +0 -103
  359. package/dist/esm/Computed.js.map +0 -1
  360. package/dist/esm/Filtered.js +0 -83
  361. package/dist/esm/Filtered.js.map +0 -1
  362. package/dist/esm/Model.js +0 -100
  363. package/dist/esm/Model.js.map +0 -1
  364. package/dist/esm/RefAsyncData.js +0 -163
  365. package/dist/esm/RefAsyncData.js.map +0 -1
  366. package/dist/esm/RefAsyncDataArray.js +0 -27
  367. package/dist/esm/RefAsyncDataArray.js.map +0 -1
  368. package/dist/esm/RefBoolean.js +0 -31
  369. package/dist/esm/RefBoolean.js.map +0 -1
  370. package/dist/esm/RefNumber.js +0 -35
  371. package/dist/esm/RefNumber.js.map +0 -1
  372. package/dist/esm/internal/core-ref-subject.js +0 -242
  373. package/dist/esm/internal/core-ref-subject.js.map +0 -1
  374. package/dist/esm/internal/core-subject.js +0 -90
  375. package/dist/esm/internal/core-subject.js.map +0 -1
  376. package/dist/esm/internal/deferred-ref.js +0 -23
  377. package/dist/esm/internal/deferred-ref.js.map +0 -1
  378. package/dist/esm/internal/effect-primitive.js +0 -41
  379. package/dist/esm/internal/effect-primitive.js.map +0 -1
  380. package/dist/esm/internal/fx-effect-proto.js +0 -43
  381. package/dist/esm/internal/fx-effect-proto.js.map +0 -1
  382. package/dist/esm/internal/fx-primitive.js +0 -175
  383. package/dist/esm/internal/fx-primitive.js.map +0 -1
  384. package/dist/esm/internal/fx.js +0 -216
  385. package/dist/esm/internal/fx.js.map +0 -1
  386. package/dist/esm/internal/matchers.js +0 -38
  387. package/dist/esm/internal/matchers.js.map +0 -1
  388. package/dist/esm/internal/run.js +0 -32
  389. package/dist/esm/internal/run.js.map +0 -1
  390. package/dist/esm/internal/schema-ref-subject.js +0 -121
  391. package/dist/esm/internal/schema-ref-subject.js.map +0 -1
  392. package/dist/esm/internal/versioned-transform.js +0 -37
  393. package/dist/esm/internal/versioned-transform.js.map +0 -1
  394. package/src/Computed.ts +0 -289
  395. package/src/Filtered.ts +0 -274
  396. package/src/Model.ts +0 -483
  397. package/src/RefAsyncData.ts +0 -547
  398. package/src/RefAsyncDataArray.ts +0 -135
  399. package/src/RefBoolean.ts +0 -71
  400. package/src/RefNumber.ts +0 -77
  401. package/src/internal/core-ref-subject.ts +0 -528
  402. package/src/internal/core-subject.ts +0 -143
  403. package/src/internal/deferred-ref.ts +0 -26
  404. package/src/internal/effect-primitive.ts +0 -230
  405. package/src/internal/fx-effect-proto.ts +0 -56
  406. package/src/internal/fx-primitive.ts +0 -223
  407. package/src/internal/fx.ts +0 -619
  408. package/src/internal/matchers.ts +0 -83
  409. package/src/internal/run.ts +0 -51
  410. package/src/internal/schema-ref-subject.ts +0 -163
  411. package/src/internal/versioned-transform.ts +0 -48
package/src/Computed.ts DELETED
@@ -1,289 +0,0 @@
1
- /**
2
- * A Computed is a Subject that has a current value that can be read and observed
3
- * @since 1.18.0
4
- */
5
-
6
- import type { Tag } from "@typed/context"
7
- import type { Context, Equivalence, Layer, Runtime } from "effect"
8
- import * as Effect from "effect/Effect"
9
- import { equals } from "effect/Equal"
10
- import { dual } from "effect/Function"
11
- import * as Option from "effect/Option"
12
- // eslint-disable-next-line import/no-cycle
13
- import { Filtered } from "./Filtered.js"
14
- import { type Fx } from "./Fx.js"
15
- import * as core from "./internal/core.js"
16
- import { fromFxEffect } from "./internal/fx.js"
17
- import { FxEffectBase } from "./internal/protos.js"
18
- import { hold } from "./internal/share.js"
19
- import { VersionedTransform } from "./internal/versioned-transform.js"
20
- import { ComputedTypeId } from "./TypeId.js"
21
- import * as Versioned from "./Versioned.js"
22
-
23
- /**
24
- * A Computed is a Subject that has a current value that can be read and observed
25
- * @since 1.18.0
26
- * @category models
27
- */
28
- export interface Computed<out R, out E, out A> extends Versioned.Versioned<R, never, R, E, A, R, E, A> {
29
- readonly [ComputedTypeId]: ComputedTypeId
30
-
31
- /**
32
- * Map the current value of this Computed to a new value using an Effect
33
- * @since 1.18.0
34
- */
35
- readonly mapEffect: <R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, B>) => Computed<R | R2, E | E2, B>
36
-
37
- /**
38
- * Map the current value of this Computed to a new value
39
- * @since 1.18.0
40
- */
41
- readonly map: <B>(f: (a: A) => B) => Computed<R, E, B>
42
-
43
- /**
44
- * Map the current value of this Filtered to a new value using an Effect
45
- * @since 1.18.0
46
- */
47
- readonly filterMapEffect: <R2, E2, B>(
48
- f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>
49
- ) => Filtered<R | R2, E | E2, B>
50
-
51
- /**
52
- * Map the current value of this Filtered to a new value
53
- * @since 1.18.0
54
- */
55
- readonly filterMap: <B>(f: (a: A) => Option.Option<B>) => Filtered<R, E, B>
56
-
57
- /**
58
- * Filter the current value of this Filtered to a new value using an Effect
59
- */
60
- readonly filterEffect: <R2, E2>(
61
- f: (a: A) => Effect.Effect<R2, E2, boolean>
62
- ) => Filtered<R | R2, E | E2, A>
63
-
64
- /**
65
- * Filter the current value of this Filtered to a new value
66
- */
67
- readonly filter: (f: (a: A) => boolean) => Filtered<R, E, A>
68
-
69
- /**
70
- * Skip values that match the provided Equivalence instance
71
- */
72
- readonly skipRepeats: (eq?: Equivalence.Equivalence<A>) => Computed<R, E, A>
73
- }
74
-
75
- /**
76
- * Create a Computed from a data type which is an Fx and an Effect.
77
- * @since 1.18.0
78
- */
79
- export function Computed<R, E, A, R2, E2, B>(
80
- input: Versioned.Versioned<R, never, R, E, A, R, E, A>,
81
- f: (a: A) => Effect.Effect<R2, E2, B>
82
- ): Computed<R | R2, E | E2, B> {
83
- return new ComputedImpl(input, f) as any
84
- }
85
-
86
- /**
87
- * @since 1.18.0
88
- */
89
- export namespace Computed {
90
- /**
91
- * @since 1.18.0
92
- */
93
- export type Context<T> = [T] extends [Computed<infer R, infer _E, infer _A>] ? R : never
94
- /**
95
- * @since 1.18.0
96
- */
97
- export type Error<T> = [T] extends [Computed<infer _R, infer E, infer _A>] ? E : never
98
- /**
99
- * @since 1.18.0
100
- */
101
- export type Success<T> = [T] extends [Computed<infer _R, infer _E, infer A>] ? A : never
102
- }
103
-
104
- class ComputedImpl<R, E, A, R2, E2, B>
105
- extends VersionedTransform<R, never, R, E, A, R, E, A, R | R2, E | E2, B, R | R2, E | E2, B>
106
- implements Computed<R | R2, E | E2, B>
107
- {
108
- readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
109
-
110
- constructor(
111
- readonly input: Versioned.Versioned<R, never, R, E, A, R, E, A>,
112
- readonly f: (a: A) => Effect.Effect<R2, E2, B>
113
- ) {
114
- super(
115
- input,
116
- (fx) => {
117
- const computed = core.skipRepeats(core.mapEffect(fx, f))
118
-
119
- return core.suspend(() => {
120
- if (Option.isSome(this._currentValue)) {
121
- return core.startWith(computed, this._currentValue.value)
122
- } else {
123
- return computed
124
- }
125
- })
126
- },
127
- Effect.flatMap(f)
128
- )
129
- }
130
-
131
- mapEffect: Computed<R | R2, E | E2, B>["mapEffect"] = (f) => Computed(this, f)
132
-
133
- map: Computed<R | R2, E | E2, B>["map"] = (f) => this.mapEffect((a) => Effect.sync(() => f(a)))
134
-
135
- filterMapEffect: Computed<R | R2, E | E2, B>["filterMapEffect"] = (f) => Filtered(this, f)
136
-
137
- filterMap: Computed<R | R2, E | E2, B>["filterMap"] = (f) => this.filterMapEffect((a) => Effect.sync(() => f(a)))
138
-
139
- filterEffect: Computed<R | R2, E | E2, B>["filterEffect"] = (f) =>
140
- this.filterMapEffect((a) => Effect.map(f(a), (b) => (b ? Option.some(a) : Option.none())))
141
-
142
- filter: Computed<R | R2, E | E2, B>["filter"] = (f) => this.filterEffect((a) => Effect.sync(() => f(a)))
143
-
144
- skipRepeats: (eq?: Equivalence.Equivalence<B> | undefined) => Computed<R | R2, E | E2, B> = (eq = equals) =>
145
- Computed<R | R2, E | E2, B, never, never, B>(
146
- Versioned.transformFx<R | R2, never, R | R2, E | E2, B, R | R2, E | E2, B, R | R2, E | E2, B>(
147
- this,
148
- core.skipRepeatsWith(eq)
149
- ),
150
- Effect.succeed
151
- )
152
- }
153
-
154
- /**
155
- * @since 1.18.0
156
- */
157
- export function combine<const Computeds extends ReadonlyArray<Computed<any, any, any>>>(computeds: Computeds): Computed<
158
- Fx.Context<Computeds[keyof Computeds]>,
159
- Fx.Error<Computeds[keyof Computeds]>,
160
- { readonly [K in keyof Computeds]: Fx.Success<Computeds[K]> }
161
- > {
162
- return Computed(
163
- Versioned.combine(computeds) as Versioned.Versioned<
164
- Fx.Context<Computeds[keyof Computeds]>,
165
- never,
166
- Fx.Context<Computeds[keyof Computeds]>,
167
- Fx.Error<Computeds[keyof Computeds]>,
168
- { readonly [K in keyof Computeds]: Fx.Success<Computeds[keyof Computeds]> },
169
- Fx.Context<Computeds[keyof Computeds]>,
170
- Fx.Error<Computeds[keyof Computeds]>,
171
- { readonly [K in keyof Computeds]: Fx.Success<Computeds[keyof Computeds]> }
172
- >,
173
- Effect.succeed
174
- )
175
- }
176
-
177
- /**
178
- * @since 1.18.0
179
- */
180
- export function struct<const Computeds extends Readonly<Record<string, Computed<any, any, any>>>>(
181
- computeds: Computeds
182
- ): Computed<
183
- Computed.Context<Computeds[keyof Computeds]>,
184
- Computed.Error<Computeds[keyof Computeds]>,
185
- { readonly [K in keyof Computeds]: Computed.Success<Computeds[K]> }
186
- > {
187
- return Computed(
188
- Versioned.struct(computeds) as Versioned.Versioned<
189
- Computed.Context<Computeds[keyof Computeds]>,
190
- never,
191
- Computed.Context<Computeds[keyof Computeds]>,
192
- Computed.Error<Computeds[keyof Computeds]>,
193
- { readonly [K in keyof Computeds]: Computed.Success<Computeds[K]> },
194
- Computed.Context<Computeds[keyof Computeds]>,
195
- Computed.Error<Computeds[keyof Computeds]>,
196
- { readonly [K in keyof Computeds]: Computed.Success<Computeds[K]> }
197
- >,
198
- Effect.succeed
199
- )
200
- }
201
-
202
- /**
203
- * @since 1.18.0
204
- */
205
- export const fromTag: {
206
- <S, R2, E2, B>(f: (s: S) => Computed<R2, E2, B>): <I>(tag: Tag<I, S>) => Computed<I | R2, E2, B>
207
- <I, S, R2, E2, B>(tag: Tag<I, S>, f: (s: S) => Computed<R2, E2, B>): Computed<I | R2, E2, B>
208
- } = dual(
209
- 2,
210
- function fromTag<I, S, R2, E2, B>(tag: Tag<I, S>, f: (s: S) => Computed<R2, E2, B>): Computed<I | R2, E2, B> {
211
- return new ContextImpl(tag, f)
212
- }
213
- )
214
-
215
- class ContextImpl<I, S, R2, E2, B> extends FxEffectBase<I | R2, E2, B, I | R2, E2, B>
216
- implements Computed<I | R2, E2, B>
217
- {
218
- readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
219
- private _computed: Effect.Effect<I, never, Computed<R2, E2, B>>
220
- readonly version: Effect.Effect<I | R2, never, number>
221
-
222
- constructor(readonly tag: Tag<I, S>, readonly f: (s: S) => Computed<R2, E2, B>) {
223
- super()
224
-
225
- this._computed = Effect.map(this.tag, this.f)
226
- this.version = Effect.flatMap(this._computed, (c) => c.version)
227
- }
228
-
229
- protected toFx(): Fx<I | R2, E2, B> {
230
- return hold(fromFxEffect(this._computed))
231
- }
232
-
233
- protected toEffect(): Effect.Effect<I | R2, E2, B> {
234
- return Effect.flatten(this._computed)
235
- }
236
-
237
- mapEffect: Computed<I | R2, E2, B>["mapEffect"] = (f) => Computed(this, f)
238
-
239
- map: Computed<I | R2, E2, B>["map"] = (f) => this.mapEffect((a) => Effect.sync(() => f(a)))
240
-
241
- filterMapEffect: Computed<I | R2, E2, B>["filterMapEffect"] = (f) => Filtered(this, f)
242
-
243
- filterMap: Computed<I | R2, E2, B>["filterMap"] = (f) => this.filterMapEffect((a) => Effect.sync(() => f(a)))
244
-
245
- filterEffect: Computed<I | R2, E2, B>["filterEffect"] = (f) =>
246
- this.filterMapEffect((a) => Effect.map(f(a), (b) => (b ? Option.some(a) : Option.none())))
247
-
248
- filter: Computed<I | R2, E2, B>["filter"] = (f) => this.filterEffect((a) => Effect.sync(() => f(a)))
249
-
250
- skipRepeats: (eq?: Equivalence.Equivalence<B> | undefined) => Computed<I | R2, E2, B> = (eq = equals) =>
251
- new ContextImpl(this.tag, (s) => this.f(s).skipRepeats(eq))
252
- }
253
-
254
- /**
255
- * @since 1.18.0
256
- */
257
- export const provide: {
258
- <R2, E2, S>(
259
- layer: Layer.Layer<R2, E2, S>
260
- ): <R, E, A>(computed: Computed<R, E, A>) => Computed<R2 | Exclude<R, S>, E | E2, A>
261
-
262
- <S>(
263
- runtime: Runtime.Runtime<S>
264
- ): <R, E, A>(computed: Computed<R, E, A>) => Computed<Exclude<R, S>, E, A>
265
-
266
- <S>(
267
- context: Context.Context<S>
268
- ): <R, E, A>(computed: Computed<R, E, A>) => Computed<Exclude<R, S>, E, A>
269
-
270
- <R2, E2, S>(
271
- layer: Layer.Layer<R2, E2, S>
272
- ): <R, E, A>(computed: Computed<R, E, A>) => Computed<R2 | Exclude<R, S>, E | E2, A>
273
-
274
- <R, E, A, R2, E2, S>(
275
- computed: Computed<R, E, A>,
276
- layer: Layer.Layer<R2, E2, S>
277
- ): Computed<R2 | Exclude<R, S>, E | E2, A>
278
-
279
- <R, E, A, S>(computed: Computed<R, E, A>, runtime: Runtime.Runtime<S>): Computed<Exclude<R, S>, E, A>
280
- <R, E, A, S>(computed: Computed<R, E, A>, context: Context.Context<S>): Computed<Exclude<R, S>, E, A>
281
- } = dual(2, function provide<R, E, A, R2, E2, S>(
282
- computed: Computed<R, E, A>,
283
- layer: Layer.Layer<R2, E2, S>
284
- ): Computed<R2 | Exclude<R, S>, E | E2, A> {
285
- return Computed(
286
- Versioned.provide(computed, layer),
287
- Effect.succeed
288
- )
289
- })
package/src/Filtered.ts DELETED
@@ -1,274 +0,0 @@
1
- /**
2
- * A Filtered is a Subject that has a current value that can be read and observed
3
- * but getting the value might not succeed
4
- * @since 1.18.0
5
- */
6
-
7
- import type { Tag } from "@typed/context"
8
- import type { Context, Layer, Runtime } from "effect"
9
- import type * as Cause from "effect/Cause"
10
- import * as Effect from "effect/Effect"
11
- import { equals } from "effect/Equal"
12
- import type { Equivalence } from "effect/Equivalence"
13
- import { dual } from "effect/Function"
14
- import * as Option from "effect/Option"
15
- // eslint-disable-next-line import/no-cycle
16
- import { Computed } from "./Computed.js"
17
- import type * as Fx from "./Fx.js"
18
- import * as core from "./internal/core.js"
19
- import { fromFxEffect } from "./internal/fx.js"
20
- import { OnceEffect } from "./internal/protos.js"
21
- import { VersionedTransform } from "./internal/versioned-transform.js"
22
- import { FilteredTypeId } from "./TypeId.js"
23
- import * as Versioned from "./Versioned.js"
24
-
25
- /**
26
- * A Filtered is a Subject that has a current value that can be read and observed
27
- * but getting the value might not succeed
28
- * @since 1.18.0
29
- * @category models
30
- */
31
- export interface Filtered<out R, out E, out A>
32
- extends Versioned.Versioned<R, never, R, E, A, R, E | Cause.NoSuchElementException, A>
33
- {
34
- readonly [FilteredTypeId]: FilteredTypeId
35
-
36
- /**
37
- * Map the current value of this Filtered to a new value using an Effect
38
- * @since 1.18.0
39
- */
40
- readonly filterMapEffect: <R2, E2, B>(
41
- f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>
42
- ) => Filtered<R | R2, E | E2, B>
43
-
44
- /**
45
- * Map the current value of this Filtered to a new value
46
- * @since 1.18.0
47
- */
48
- readonly filterMap: <B>(f: (a: A) => Option.Option<B>) => Filtered<R, E, B>
49
-
50
- /**
51
- * Filter the current value of this Filtered to a new value using an Effect
52
- */
53
- readonly filterEffect: <R2, E2>(
54
- f: (a: A) => Effect.Effect<R2, E2, boolean>
55
- ) => Filtered<R | R2, E | E2, A>
56
-
57
- /**
58
- * Filter the current value of this Filtered to a new value
59
- */
60
- readonly filter: (f: (a: A) => boolean) => Filtered<R, E, A>
61
-
62
- /**
63
- * Convert a Filtered back into a Computed of an Option
64
- */
65
- readonly option: Computed<R, E, Option.Option<A>>
66
-
67
- /**
68
- * Map the current value of this Computed to a new value using an Effect
69
- * @since 1.18.0
70
- */
71
- readonly mapEffect: <R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, B>) => Filtered<R | R2, E | E2, B>
72
-
73
- /**
74
- * Map the current value of this Computed to a new value
75
- * @since 1.18.0
76
- */
77
- readonly map: <B>(f: (a: A) => B) => Filtered<R, E, B>
78
-
79
- /**
80
- * Skip values that match the provided Equivalence instance
81
- */
82
- readonly skipRepeats: (eq?: Equivalence<A>) => Filtered<R, E, A>
83
- }
84
-
85
- /**
86
- * Create a Filtered from a data type which is an Fx and an Effect.
87
- * @since 1.18.0
88
- */
89
- export function Filtered<R, E, A, R2, E2, B>(
90
- input: Versioned.Versioned<R, never, R, E, A, R, E | Cause.NoSuchElementException, A>,
91
- f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>
92
- ): Filtered<R | R2, E | E2, B> {
93
- return new FilteredImpl(input, f) as any
94
- }
95
-
96
- class FilteredImpl<R, E, A, R2, E2, B> extends VersionedTransform<
97
- R,
98
- never,
99
- R,
100
- E,
101
- A,
102
- R,
103
- E,
104
- A,
105
- R | R2,
106
- E | E2,
107
- B,
108
- R | R2,
109
- E | E2 | Cause.NoSuchElementException,
110
- B
111
- > implements Filtered<R | R2, E | E2, B> {
112
- readonly [FilteredTypeId]: FilteredTypeId = FilteredTypeId
113
-
114
- constructor(
115
- readonly input: Versioned.Versioned<R, never, R, E, A, R, E, A>,
116
- readonly f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>
117
- ) {
118
- super(
119
- input,
120
- (fx) => {
121
- const computed = core.skipRepeats(core.compact(core.mapEffect(fx, f)))
122
-
123
- return core.suspend(() => {
124
- if (Option.isSome(this._currentValue)) {
125
- return core.startWith(computed, this._currentValue.value)
126
- } else {
127
- return computed
128
- }
129
- })
130
- },
131
- (effect) => Effect.flatten(Effect.flatMap(effect, f))
132
- )
133
-
134
- this.option = Computed(
135
- this.input,
136
- this.f
137
- )
138
- }
139
-
140
- filterMapEffect: Filtered<R | R2, E | E2, B>["filterMapEffect"] = (f) => new FilteredImpl(this as any, f) as any
141
-
142
- filterMap: Filtered<R | R2, E | E2, B>["filterMap"] = (f) => this.filterMapEffect((a) => Effect.sync(() => f(a)))
143
-
144
- filterEffect: Filtered<R | R2, E | E2, B>["filterEffect"] = (f) =>
145
- this.filterMapEffect((a) => Effect.map(f(a), (b) => (b ? Option.some(a) : Option.none())))
146
-
147
- filter: Filtered<R | R2, E | E2, B>["filter"] = (f) => this.filterEffect((a) => Effect.sync(() => f(a)))
148
-
149
- mapEffect: Filtered<R | R2, E | E2, B>["mapEffect"] = (f) => this.filterMapEffect((a) => Effect.asSome(f(a)))
150
-
151
- map: Filtered<R | R2, E | E2, B>["map"] = (f) => this.mapEffect((a) => Effect.sync(() => f(a)))
152
-
153
- skipRepeats: (eq?: Equivalence<B> | undefined) => Filtered<R | R2, E | E2, B> = (eq = equals) =>
154
- Filtered(
155
- Versioned.transformFx(
156
- this,
157
- (fx: Fx.Fx<R | R2, E | E2, B>) => core.skipRepeatsWith(fx, eq)
158
- ),
159
- Effect.succeedSome
160
- )
161
-
162
- readonly option: Filtered<R | R2, E | E2, B>["option"]
163
- }
164
-
165
- /**
166
- * @since 1.18.0
167
- */
168
- export function combine<const Computeds extends ReadonlyArray<Filtered<any, any, any> | Computed<any, any, any>>>(
169
- computeds: Computeds
170
- ): Filtered<
171
- Fx.Fx.Context<Computeds[number]>,
172
- Fx.Fx.Error<Computeds[number]>,
173
- { readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[number]> }
174
- > {
175
- return Filtered(
176
- Versioned.combine(computeds) as Versioned.Versioned<
177
- Fx.Fx.Context<Computeds[number]>,
178
- never,
179
- Fx.Fx.Context<Computeds[number]>,
180
- Fx.Fx.Error<Computeds[number]>,
181
- { readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[number]> },
182
- Fx.Fx.Context<Computeds[number]>,
183
- Fx.Fx.Error<Computeds[number]>,
184
- { readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[number]> }
185
- >,
186
- Effect.succeedSome
187
- )
188
- }
189
-
190
- /**
191
- * @since 1.18.0
192
- */
193
- export function struct<
194
- const Computeds extends Readonly<Record<string, Filtered<any, any, any | Computed<any, any, any>>>>
195
- >(
196
- computeds: Computeds
197
- ): Filtered<
198
- Fx.Fx.Context<Computeds[keyof Computeds]>,
199
- Fx.Fx.Error<Computeds[keyof Computeds]>,
200
- { readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[K]> }
201
- > {
202
- return Filtered(
203
- Versioned.struct(computeds) as Versioned.Versioned<
204
- Fx.Fx.Context<Computeds[keyof Computeds]>,
205
- never,
206
- Fx.Fx.Context<Computeds[keyof Computeds]>,
207
- Fx.Fx.Error<Computeds[keyof Computeds]>,
208
- { readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[K]> },
209
- Fx.Fx.Context<Computeds[keyof Computeds]>,
210
- Fx.Fx.Error<Computeds[keyof Computeds]>,
211
- { readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[K]> }
212
- >,
213
- Effect.succeedSome
214
- )
215
- }
216
-
217
- /**
218
- * @since 1.18.0
219
- */
220
- export const fromTag: {
221
- <S, R2, E2, B>(f: (s: S) => Filtered<R2, E2, B>): <I>(tag: Tag<I, S>) => Filtered<I | R2, E2, B>
222
- <I, S, R2, E2, B>(tag: Tag<I, S>, f: (s: S) => Filtered<R2, E2, B>): Filtered<I | R2, E2, B>
223
- } = dual(
224
- 2,
225
- function fromTag<I, S, R2, E2, B>(tag: Tag<I, S>, f: (s: S) => Filtered<R2, E2, B>) {
226
- const get = new OnceEffect(Effect.map(tag, f))
227
-
228
- return Filtered(
229
- Versioned.make({
230
- fx: fromFxEffect(get),
231
- effect: Effect.flatten(get),
232
- version: Effect.flatMap(get, (c) => c.version)
233
- }),
234
- Effect.succeedSome
235
- )
236
- }
237
- )
238
-
239
- /**
240
- * @since 1.18.0
241
- */
242
- export const provide: {
243
- <R2, E2, S>(
244
- layer: Layer.Layer<R2, E2, S>
245
- ): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<R2 | Exclude<R, S>, E | E2, A>
246
-
247
- <S>(
248
- runtime: Runtime.Runtime<S>
249
- ): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<Exclude<R, S>, E, A>
250
-
251
- <S>(
252
- context: Context.Context<S>
253
- ): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<Exclude<R, S>, E, A>
254
-
255
- <R2, E2, S>(
256
- layer: Layer.Layer<R2, E2, S>
257
- ): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<R2 | Exclude<R, S>, E | E2, A>
258
-
259
- <R, E, A, R2, E2, S>(
260
- filtered: Filtered<R, E, A>,
261
- layer: Layer.Layer<R2, E2, S>
262
- ): Filtered<R2 | Exclude<R, S>, E | E2, A>
263
-
264
- <R, E, A, S>(filtered: Filtered<R, E, A>, runtime: Runtime.Runtime<S>): Filtered<Exclude<R, S>, E, A>
265
- <R, E, A, S>(filtered: Filtered<R, E, A>, context: Context.Context<S>): Filtered<Exclude<R, S>, E, A>
266
- } = dual(2, function provide<R, E, A, R2, E2, S>(
267
- filtered: Filtered<R, E, A>,
268
- layer: Layer.Layer<R2, E2, S>
269
- ): Filtered<R2 | Exclude<R, S>, E | E2, A> {
270
- return Filtered(
271
- Versioned.provide(filtered, layer),
272
- Effect.succeedSome
273
- )
274
- })