@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
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[keyof Computeds]> }
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
- })