@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
@@ -4,195 +4,158 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.keyed = keyed;
7
- var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
8
- var _Equal = /*#__PURE__*/require("effect/Equal");
9
- var Fiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Fiber"));
10
- var MutableHashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/MutableHashMap"));
11
- var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
12
- var ReadonlyArray = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/ReadonlyArray"));
13
- var Scope = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Scope"));
14
- var _RefSubject = /*#__PURE__*/require("../RefSubject.js");
15
- var _Sink = /*#__PURE__*/require("../Sink.js");
16
- var _coreSubject = /*#__PURE__*/require("./core-subject.js");
17
- var _core = /*#__PURE__*/require("./core.js");
7
+ var _effect = /*#__PURE__*/require("effect");
8
+ var RefSubject = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../RefSubject.js"));
9
+ var Sink = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Sink.js"));
10
+ var _diff = /*#__PURE__*/require("./diff.js");
18
11
  var _helpers = /*#__PURE__*/require("./helpers.js");
19
- var _run = /*#__PURE__*/require("./run.js");
12
+ var _protos = /*#__PURE__*/require("./protos.js");
20
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
- function keyed(fx, getKey, f) {
23
- return (0, _core.withScopedFork)(({
24
- fork,
25
- scope,
26
- sink
27
- }) => Effect.gen(function* ($) {
28
- const state = createKeyedState();
29
- const emit = emitWhenReady(state, getKey);
30
- // Let output emit to the sink, it is closes by the surrounding scope
31
- yield* $(fork((0, _run.run)((0, _core.skipRepeatsWith)(state.output, ReadonlyArray.getEquivalence(_Equal.equals)), sink)));
32
- yield* $((0, _helpers.adjustTime)(1));
33
- // Listen to the input and update the state
34
- yield* $((0, _run.run)(fx, (0, _Sink.WithContext)(sink.onFailure, as => updateState({
35
- state,
36
- updated: as,
37
- getKey,
38
- f: (ref, key) => (0, _core.from)(f(ref, key)),
39
- fork,
40
- scope,
41
- emit,
42
- error: sink.onFailure
43
- }))));
44
- yield* $(endAll(state));
45
- // When the source stream ends we wait for the remaining fibers to end
46
- yield* $(Fiber.joinAll(Array.from(state.fibers).map(x => x[1])));
47
- }));
15
+ function keyed(fx, options) {
16
+ return new Keyed(fx, options);
48
17
  }
49
- function createKeyedState() {
18
+ const StateContext = /*#__PURE__*/_effect.Context.Tag();
19
+ class Keyed extends _protos.FxBase {
20
+ fx;
21
+ options;
22
+ constructor(fx, options) {
23
+ super();
24
+ this.fx = fx;
25
+ this.options = options;
26
+ }
27
+ run(sink) {
28
+ return _effect.Effect.fiberIdWith(id => runKeyed(this.fx, this.options, sink, id));
29
+ }
30
+ }
31
+ function emptyKeyedState() {
50
32
  return {
51
- previous: [],
52
- previousKeys: new Set(),
53
- subjects: MutableHashMap.empty(),
54
- initialValues: MutableHashMap.empty(),
55
- fibers: MutableHashMap.empty(),
56
- values: MutableHashMap.empty(),
57
- output: (0, _coreSubject.makeHoldSubject)()
33
+ entries: new Map(),
34
+ indices: new Map(),
35
+ previousKeys: []
58
36
  };
59
37
  }
60
- function updateState({
61
- emit,
62
- error,
63
- f,
64
- fork,
65
- getKey,
66
- scope,
67
- state,
68
- updated
69
- }) {
70
- return Effect.provideService(Effect.gen(function* ($) {
71
- const {
72
- added,
73
- removed,
74
- unchanged
75
- } = diffValues(state, updated, getKey);
76
- // Remove values that are no longer in the stream
77
- yield* $(Effect.forEach(removed, key => removeValue(state, key), {
78
- discard: true
79
- }));
80
- // Update values that are still in the stream
81
- yield* $(Effect.forEach(unchanged, value => updateValue(state, value, getKey), {
82
- concurrency: "unbounded",
83
- discard: true
84
- }));
85
- // Add values that are new to the stream
86
- yield* $(Effect.forEach(added, value => addValue({
87
- state,
88
- value,
89
- f,
90
- fork,
91
- emit,
92
- error,
93
- getKey
94
- }), {
95
- concurrency: "unbounded",
96
- discard: true
97
- }));
98
- // If nothing was added, emit the current values
99
- if (added.length === 0) {
100
- yield* $(emit);
38
+ function runKeyed(fx, options, sink, id) {
39
+ return (0, _helpers.withDebounceFork)((forkDebounce, parentScope) => {
40
+ const state = emptyKeyedState();
41
+ // Uses debounce to avoid glitches
42
+ const scheduleNextEmit = forkDebounce(_effect.Effect.suspend(() => sink.onSuccess(getReadyIndices(state))));
43
+ function diffAndPatch(values) {
44
+ return _effect.Effect.gen(function* (_) {
45
+ const previous = state.previousKeys;
46
+ const keys = values.map(options.getKey);
47
+ state.previousKeys = keys;
48
+ let added = false;
49
+ let done = false;
50
+ let scheduled = false;
51
+ for (const patch of (0, _diff.diffIterator)(previous, keys)) {
52
+ if (patch._tag === "Remove") {
53
+ yield* _(removeValue(state, patch));
54
+ } else if (patch._tag === "Add") {
55
+ added = true;
56
+ yield* _(addValue(state, values, patch, id, parentScope, options, sink, _effect.Effect.suspend(() => {
57
+ if (done === false) {
58
+ scheduled = true;
59
+ return _effect.Effect.unit;
60
+ }
61
+ return scheduleNextEmit;
62
+ })));
63
+ } else {
64
+ yield* _(updateValue(state, values, patch));
65
+ }
66
+ }
67
+ done = true;
68
+ if (scheduled || added === false) {
69
+ yield* _(scheduleNextEmit);
70
+ }
71
+ });
101
72
  }
102
- }), Scope.Scope, scope);
73
+ return fx.run(Sink.make(cause => sink.onFailure(cause),
74
+ // Use exhaust to ensure only 1 diff is running at a time
75
+ // Skipping an intermediate changes that occur while diffing
76
+ values => _effect.Effect.withMaxOpsBeforeYield(diffAndPatch(values), Number.MAX_SAFE_INTEGER)));
77
+ }, options.debounce || 0);
103
78
  }
104
- function diffValues(state, updated, getKey) {
105
- const added = [];
106
- const unchanged = [];
107
- const removed = [];
108
- const previousKeys = state.previousKeys;
109
- const keys = new Set(updated.map(getKey));
110
- for (let i = 0; i < updated.length; ++i) {
111
- const value = updated[i];
112
- const key = getKey(value);
113
- if (previousKeys.has(key)) {
114
- unchanged.push(value);
79
+ class KeyedEntry {
80
+ value;
81
+ index;
82
+ output;
83
+ ref;
84
+ interrupt;
85
+ constructor(value, index, output, ref, interrupt) {
86
+ this.value = value;
87
+ this.index = index;
88
+ this.output = output;
89
+ this.ref = ref;
90
+ this.interrupt = interrupt;
91
+ }
92
+ }
93
+ function getReadyIndices({
94
+ entries,
95
+ indices,
96
+ previousKeys
97
+ }) {
98
+ const output = [];
99
+ for (let i = 0; i < previousKeys.length; ++i) {
100
+ const key = indices.get(i);
101
+ if (key === undefined) break;
102
+ const entry = entries.get(key);
103
+ if (_effect.Option.isSome(entry.output)) {
104
+ output.push(entry.output.value);
115
105
  } else {
116
- added.push(value);
106
+ break;
117
107
  }
118
108
  }
119
- previousKeys.forEach(k => {
120
- if (!keys.has(k)) {
121
- removed.push(k);
122
- }
123
- });
124
- state.previous = updated;
125
- state.previousKeys = keys;
126
- return {
127
- added,
128
- unchanged,
129
- removed
130
- };
131
- }
132
- function removeValue(state, key) {
133
- return Effect.gen(function* ($) {
134
- const subject = MutableHashMap.get(state.subjects, key);
135
- if (Option.isSome(subject)) yield* $(Effect.fork(subject.value.interrupt));
136
- const fiber = MutableHashMap.get(state.fibers, key);
137
- if (Option.isSome(fiber)) yield* $(Fiber.interruptFork(fiber.value));
138
- MutableHashMap.remove(state.values, key);
139
- MutableHashMap.remove(state.subjects, key);
140
- MutableHashMap.remove(state.fibers, key);
141
- });
109
+ return output;
142
110
  }
143
111
  function addValue({
144
- emit,
145
- error,
146
- f,
147
- fork,
148
- getKey,
149
- state,
150
- value
151
- }) {
152
- return Effect.uninterruptible(Effect.suspend(() => {
153
- const key = getKey(value);
154
- // Set the initial value
155
- MutableHashMap.set(state.initialValues, key, value);
156
- return (0, _RefSubject.fromEffect)(Effect.sync(() =>
157
- // Default to the initial value
158
- MutableHashMap.get(state.initialValues, key).pipe(Option.getOrElse(() => value)))).pipe(Effect.flatMap(subject => fork((0, _run.run)(f(subject, key), (0, _Sink.WithContext)(error, c => Effect.suspend(() => {
159
- MutableHashMap.set(state.values, key, c);
160
- return emit;
161
- })))).pipe(Effect.tap(fiber => Effect.sync(() => {
162
- MutableHashMap.set(state.subjects, key, subject);
163
- MutableHashMap.set(state.fibers, key, fiber);
164
- })))));
165
- }));
166
- }
167
- function updateValue(state, value, getKey) {
168
- return Effect.gen(function* ($) {
169
- const key = getKey(value);
170
- const subject = MutableHashMap.get(state.subjects, key);
171
- // External updates reset the initial value
172
- MutableHashMap.set(state.initialValues, key, value);
173
- // Send the current value
174
- if (Option.isSome(subject)) {
175
- yield* $(subject.value.set(value));
176
- }
112
+ entries,
113
+ indices
114
+ }, values, patch, id, parentScope, options, sink, scheduleNextEmit) {
115
+ return _effect.Effect.gen(function* (_) {
116
+ const value = values[patch.index];
117
+ const childScope = yield* _(_effect.Scope.fork(parentScope, _effect.ExecutionStrategy.sequential));
118
+ const ref = yield* _(RefSubject.unsafeMake({
119
+ initial: _effect.Effect.sync(() => entry.value),
120
+ initialValue: value,
121
+ scope: childScope,
122
+ id
123
+ }));
124
+ const entry = new KeyedEntry(value, patch.index, _effect.Option.none(), ref, ref.interrupt);
125
+ entries.set(patch.value, entry);
126
+ indices.set(patch.index, patch.value);
127
+ yield* _(_effect.Scope.addFinalizer(childScope, ref.interrupt));
128
+ yield* _(_effect.Effect.forkIn(options.onValue(ref, patch.value).run(Sink.make(cause => sink.onFailure(cause), output => {
129
+ entry.output = _effect.Option.some(output);
130
+ return scheduleNextEmit;
131
+ })), parentScope));
177
132
  });
178
133
  }
179
- function emitWhenReady(state, getKey) {
180
- return Effect.suspend(() => {
181
- // Fast path: if we don't have enough values, don't emit
182
- if (MutableHashMap.size(state.values) !== state.previous.length) {
183
- return Effect.unit;
184
- }
185
- const values = ReadonlyArray.filterMap(state.previous, value => MutableHashMap.get(state.values, getKey(value)));
186
- // When all of the values have resolved at least once, emit the output
187
- if (values.length === state.previous.length) {
188
- return state.output.onSuccess(values);
189
- }
190
- return Effect.unit;
191
- });
134
+ function removeValue({
135
+ entries,
136
+ indices
137
+ }, patch) {
138
+ const interrupt = entries.get(patch.value).interrupt;
139
+ entries.delete(patch.value);
140
+ indices.delete(patch.index);
141
+ return interrupt;
192
142
  }
193
- function endAll(state) {
194
- return Effect.forEach(state.subjects, ([, subject]) => subject.interrupt, {
195
- concurrency: "unbounded"
196
- });
143
+ function updateValue({
144
+ entries,
145
+ indices
146
+ }, values, patch) {
147
+ const key = patch.value;
148
+ const entry = entries.get(key);
149
+ if (patch._tag === "Moved") {
150
+ const currentKey = indices.get(patch.index);
151
+ if (currentKey === key) {
152
+ indices.delete(patch.index);
153
+ }
154
+ indices.set(patch.to, key);
155
+ entry.value = values[entry.index = patch.to];
156
+ } else {
157
+ entry.value = values[entry.index = patch.index];
158
+ }
159
+ return RefSubject.set(entry.ref, entry.value);
197
160
  }
198
161
  //# sourceMappingURL=keyed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyed.js","names":["Effect","_interopRequireWildcard","require","_Equal","Fiber","MutableHashMap","Option","ReadonlyArray","Scope","_RefSubject","_Sink","_coreSubject","_core","_helpers","_run","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","keyed","fx","getKey","f","withScopedFork","fork","scope","sink","gen","$","state","createKeyedState","emit","emitWhenReady","run","skipRepeatsWith","output","getEquivalence","equals","adjustTime","WithContext","onFailure","as","updateState","updated","ref","key","from","error","endAll","joinAll","Array","fibers","map","x","previous","previousKeys","Set","subjects","empty","initialValues","values","makeHoldSubject","provideService","added","removed","unchanged","diffValues","forEach","removeValue","discard","value","updateValue","concurrency","addValue","length","keys","push","k","subject","isSome","interrupt","fiber","interruptFork","remove","uninterruptible","suspend","fromEffect","sync","pipe","getOrElse","flatMap","c","tap","size","unit","filterMap","onSuccess"],"sources":["../../../src/internal/keyed.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"keyed.js","names":["_effect","require","RefSubject","_interopRequireWildcard","Sink","_diff","_helpers","_protos","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","keyed","fx","options","Keyed","StateContext","Context","Tag","FxBase","constructor","run","sink","Effect","fiberIdWith","id","runKeyed","emptyKeyedState","entries","Map","indices","previousKeys","withDebounceFork","forkDebounce","parentScope","state","scheduleNextEmit","suspend","onSuccess","getReadyIndices","diffAndPatch","values","gen","_","previous","keys","map","getKey","added","done","scheduled","patch","diffIterator","_tag","removeValue","addValue","unit","updateValue","make","cause","onFailure","withMaxOpsBeforeYield","Number","MAX_SAFE_INTEGER","debounce","KeyedEntry","value","index","output","ref","interrupt","length","key","undefined","entry","Option","isSome","push","childScope","Scope","fork","ExecutionStrategy","sequential","unsafeMake","initial","sync","initialValue","scope","none","addFinalizer","forkIn","onValue","some","delete","currentKey","to"],"sources":["../../../src/internal/keyed.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FilterMapLoopOperator = FilterMapLoopOperator;
7
+ exports.FilterMapSliceOperator = FilterMapSliceOperator;
8
+ exports.LoopOperator = LoopOperator;
9
+ exports.SliceOperator = SliceOperator;
10
+ exports.applyArray = applyArray;
11
+ exports.compileCauseLoopOperatorSink = compileCauseLoopOperatorSink;
12
+ exports.compileLoopOperatorSink = compileLoopOperatorSink;
13
+ exports.fuseLoopOperators = fuseLoopOperators;
14
+ exports.fuseSyncOperatorAfter = fuseSyncOperatorAfter;
15
+ exports.fuseSyncOperatorBefore = fuseSyncOperatorBefore;
16
+ exports.matchSyncLoopOperator = matchSyncLoopOperator;
17
+ var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
18
+ var Sink = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Sink.js"));
19
+ var SyncOp = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./sync-operator.js"));
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function LoopOperator(seed, f) {
23
+ return {
24
+ _tag: "Loop",
25
+ seed,
26
+ f
27
+ };
28
+ }
29
+ function FilterMapLoopOperator(seed, f) {
30
+ return {
31
+ _tag: "FilterMapLoop",
32
+ seed,
33
+ f
34
+ };
35
+ }
36
+ function SliceOperator(bounds) {
37
+ return {
38
+ _tag: "Slice",
39
+ bounds
40
+ };
41
+ }
42
+ function FilterMapSliceOperator(seed, f) {
43
+ return {
44
+ _tag: "FilterMapSlice",
45
+ seed,
46
+ f
47
+ };
48
+ }
49
+ function matchSyncLoopOperator(operator, matchers) {
50
+ if (operator._tag === "Loop") {
51
+ return matchers.Loop(operator);
52
+ } else {
53
+ return matchers.FilterMapLoop(operator);
54
+ }
55
+ }
56
+ function fuseSyncOperatorBefore(syncOp, loopOp) {
57
+ return SyncOp.matchSyncOperator(syncOp, {
58
+ Map: op => matchSyncLoopOperator(loopOp, {
59
+ Loop: lOp => LoopOperator(lOp.seed, (acc, a) => lOp.f(acc, op.f(a))),
60
+ FilterMapLoop: lOp => FilterMapLoopOperator(lOp.seed, (acc, a) => lOp.f(acc, op.f(a)))
61
+ }),
62
+ Filter: op => matchSyncLoopOperator(loopOp, {
63
+ Loop: lOp => FilterMapLoopOperator(lOp.seed, (acc, a) => {
64
+ const [b, c] = lOp.f(acc, a);
65
+ if (op.f(b)) {
66
+ return [Option.some(b), c];
67
+ } else {
68
+ return [Option.none(), c];
69
+ }
70
+ }),
71
+ FilterMapLoop: lOp => FilterMapLoopOperator(lOp.seed, (acc, a) => {
72
+ if (op.f(a)) {
73
+ return [Option.none(), acc];
74
+ } else {
75
+ return lOp.f(acc, a);
76
+ }
77
+ })
78
+ }),
79
+ FilterMap: op => matchSyncLoopOperator(loopOp, {
80
+ Loop: lOp => FilterMapLoopOperator(lOp.seed, (acc, a) => {
81
+ const x = op.f(a);
82
+ if (Option.isNone(x)) {
83
+ return [Option.none(), acc];
84
+ } else {
85
+ const [b, c] = lOp.f(acc, x.value);
86
+ return [Option.some(b), c];
87
+ }
88
+ }),
89
+ FilterMapLoop: lOp => FilterMapLoopOperator(lOp.seed, (acc, a) => {
90
+ const x = op.f(a);
91
+ if (Option.isNone(x)) {
92
+ return [Option.none(), acc];
93
+ } else {
94
+ return lOp.f(acc, x.value);
95
+ }
96
+ })
97
+ })
98
+ });
99
+ }
100
+ function fuseSyncOperatorAfter(loopOp, syncOp) {
101
+ return matchSyncLoopOperator(loopOp, {
102
+ Loop: loopOp => SyncOp.matchSyncOperator(syncOp, {
103
+ Map: op => LoopOperator(loopOp.seed, (acc, a) => {
104
+ const [b, c] = loopOp.f(acc, a);
105
+ return [op.f(b), c];
106
+ }),
107
+ Filter: op => FilterMapLoopOperator(loopOp.seed, (acc, a) => {
108
+ const [b, c] = loopOp.f(acc, a);
109
+ if (op.f(b)) {
110
+ return [Option.some(b), c];
111
+ } else {
112
+ return [Option.none(), c];
113
+ }
114
+ }),
115
+ FilterMap: op => FilterMapLoopOperator(loopOp.seed, (acc, a) => {
116
+ const [b, c] = loopOp.f(acc, a);
117
+ return Option.match(op.f(b), {
118
+ onNone: () => [Option.none(), c],
119
+ onSome: d => [Option.some(d), c]
120
+ });
121
+ })
122
+ }),
123
+ FilterMapLoop: loopOp => SyncOp.matchSyncOperator(syncOp, {
124
+ Map: op => FilterMapLoopOperator(loopOp.seed, (acc, a) => {
125
+ const [b, c] = loopOp.f(acc, a);
126
+ return [Option.map(b, op.f), c];
127
+ }),
128
+ Filter: op => FilterMapLoopOperator(loopOp.seed, (acc, a) => {
129
+ const [b, c] = loopOp.f(acc, a);
130
+ return [Option.filter(b, op.f), c];
131
+ }),
132
+ FilterMap: op => FilterMapLoopOperator(loopOp.seed, (acc, a) => {
133
+ const [b, c] = loopOp.f(acc, a);
134
+ return [Option.flatMap(b, op.f), c];
135
+ })
136
+ })
137
+ });
138
+ }
139
+ function fuseLoopOperators(first, second) {
140
+ return matchSyncLoopOperator(first, {
141
+ Loop: op1 => matchSyncLoopOperator(second, {
142
+ Loop: op2 => LoopOperator([op1.seed, op2.seed], ([accA, accB], a) => {
143
+ const [c, b] = op1.f(accA, a);
144
+ const [e, d] = op2.f(accB, c);
145
+ return [e, [b, d]];
146
+ }),
147
+ FilterMapLoop: op2 => FilterMapLoopOperator([op1.seed, op2.seed], ([accA, accB], a) => {
148
+ const [c, b] = op1.f(accA, a);
149
+ const [e, d] = op2.f(accB, c);
150
+ return [e, [b, d]];
151
+ })
152
+ }),
153
+ FilterMapLoop: op1 => matchSyncLoopOperator(second, {
154
+ Loop: op2 => FilterMapLoopOperator([op1.seed, op2.seed], ([accA, accB], a) => {
155
+ const [c, b] = op1.f(accA, a);
156
+ if (Option.isNone(c)) {
157
+ return [Option.none(), [b, accB]];
158
+ }
159
+ const [e, d] = op2.f(accB, c.value);
160
+ return [Option.some(e), [b, d]];
161
+ }),
162
+ FilterMapLoop: op2 => FilterMapLoopOperator([op1.seed, op2.seed], ([accA, accB], a) => {
163
+ const [c, b] = op1.f(accA, a);
164
+ if (Option.isNone(c)) {
165
+ return [Option.none(), [b, accB]];
166
+ }
167
+ const [e, d] = op2.f(accB, c.value);
168
+ return [e, [b, d]];
169
+ })
170
+ })
171
+ });
172
+ }
173
+ function compileLoopOperatorSink(operator, sink) {
174
+ return matchSyncLoopOperator(operator, {
175
+ Loop: op => Sink.loop(sink, op.seed, op.f),
176
+ FilterMapLoop: op => Sink.filterMapLoop(sink, op.seed, op.f)
177
+ });
178
+ }
179
+ function compileCauseLoopOperatorSink(operator, sink) {
180
+ return matchSyncLoopOperator(operator, {
181
+ Loop: op => Sink.loopCause(sink, op.seed, op.f),
182
+ FilterMapLoop: op => Sink.filterMapLoopCause(sink, op.seed, op.f)
183
+ });
184
+ }
185
+ function applyArray(array, operator) {
186
+ return matchSyncLoopOperator(operator, {
187
+ Loop: op => loopArray(array, op.seed, op.f),
188
+ FilterMapLoop: op => filterMapLoopArray(array, op.seed, op.f)
189
+ });
190
+ }
191
+ function loopArray(array, seed, f) {
192
+ const result = new Array(array.length);
193
+ let acc = seed;
194
+ for (let i = 0; i < array.length; i++) {
195
+ const [c, b] = f(acc, array[i]);
196
+ result[i] = c;
197
+ acc = b;
198
+ }
199
+ return result;
200
+ }
201
+ function filterMapLoopArray(array, seed, f) {
202
+ const result = new Array();
203
+ let acc = seed;
204
+ for (let i = 0; i < array.length; i++) {
205
+ const [option, b] = f(acc, array[i]);
206
+ if (Option.isSome(option)) {
207
+ result.push(option.value);
208
+ }
209
+ acc = b;
210
+ }
211
+ return result;
212
+ }
213
+ //# sourceMappingURL=loop-operator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-operator.js","names":["Option","_interopRequireWildcard","require","Sink","SyncOp","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","LoopOperator","seed","f","_tag","FilterMapLoopOperator","SliceOperator","bounds","FilterMapSliceOperator","matchSyncLoopOperator","operator","matchers","Loop","FilterMapLoop","fuseSyncOperatorBefore","syncOp","loopOp","matchSyncOperator","Map","op","lOp","acc","Filter","b","c","some","none","FilterMap","x","isNone","value","fuseSyncOperatorAfter","match","onNone","onSome","d","map","filter","flatMap","fuseLoopOperators","first","second","op1","op2","accA","accB","compileLoopOperatorSink","sink","loop","filterMapLoop","compileCauseLoopOperatorSink","loopCause","filterMapLoopCause","applyArray","array","loopArray","filterMapLoopArray","result","Array","length","option","isSome","push"],"sources":["../../../src/internal/loop-operator.ts"],"sourcesContent":[null],"mappings":"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"}