@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.
- package/AsyncData/package.json +6 -0
- package/Emitter/package.json +6 -0
- package/Form/package.json +6 -0
- package/FormEntry/package.json +6 -0
- package/Fx/package.json +6 -0
- package/Guard/package.json +6 -0
- package/Idle/package.json +6 -0
- package/Match/package.json +6 -0
- package/Pull/package.json +6 -0
- package/Push/package.json +6 -0
- package/RefArray/package.json +6 -0
- package/RefChunk/package.json +6 -0
- package/RefHashMap/package.json +6 -0
- package/RefHashSet/package.json +6 -0
- package/RefSubject/package.json +6 -0
- package/Sink/package.json +6 -0
- package/Stream/package.json +6 -0
- package/Subject/package.json +6 -0
- package/TypeId/package.json +6 -0
- package/Typeclass/package.json +6 -0
- package/Versioned/package.json +6 -0
- package/dist/cjs/AsyncData.js +177 -0
- package/dist/cjs/AsyncData.js.map +1 -0
- package/dist/cjs/Emitter.js +24 -21
- package/dist/cjs/Emitter.js.map +1 -1
- package/dist/cjs/Form.js +78 -21
- package/dist/cjs/Form.js.map +1 -1
- package/dist/cjs/FormEntry.js +75 -48
- package/dist/cjs/FormEntry.js.map +1 -1
- package/dist/cjs/Fx.js +517 -872
- package/dist/cjs/Fx.js.map +1 -1
- package/dist/cjs/Guard.js +21 -13
- package/dist/cjs/Guard.js.map +1 -1
- package/dist/cjs/Idle.js +49 -37
- package/dist/cjs/Idle.js.map +1 -1
- package/dist/cjs/Match.js +99 -61
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/Pull.js.map +1 -1
- package/dist/cjs/Push.js +168 -0
- package/dist/cjs/Push.js.map +1 -0
- package/dist/cjs/RefArray.js +32 -30
- package/dist/cjs/RefArray.js.map +1 -1
- package/dist/cjs/RefChunk.js +26 -24
- package/dist/cjs/RefChunk.js.map +1 -1
- package/dist/cjs/RefHashMap.js +20 -20
- package/dist/cjs/RefHashMap.js.map +1 -1
- package/dist/cjs/RefHashSet.js +11 -8
- package/dist/cjs/RefHashSet.js.map +1 -1
- package/dist/cjs/RefSubject.js +899 -158
- package/dist/cjs/RefSubject.js.map +1 -1
- package/dist/cjs/Sink.js +588 -62
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js +15 -10
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Subject.js +153 -55
- package/dist/cjs/Subject.js.map +1 -1
- package/dist/cjs/TypeId.js +10 -5
- package/dist/cjs/TypeId.js.map +1 -1
- package/dist/cjs/Typeclass.js +28 -31
- package/dist/cjs/Typeclass.js.map +1 -1
- package/dist/cjs/Versioned.js +118 -57
- package/dist/cjs/Versioned.js.map +1 -1
- package/dist/cjs/index.js +44 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/{deferred-ref.js → DeferredRef.js} +45 -13
- package/dist/cjs/internal/DeferredRef.js.map +1 -0
- package/dist/cjs/internal/UnionToTuple.js +6 -0
- package/dist/cjs/internal/UnionToTuple.js.map +1 -0
- package/dist/cjs/internal/core.js +1590 -779
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/diff.js +114 -0
- package/dist/cjs/internal/diff.js.map +1 -0
- package/dist/cjs/internal/effect-loop-operator.js +288 -0
- package/dist/cjs/internal/effect-loop-operator.js.map +1 -0
- package/dist/cjs/internal/effect-operator.js +46 -37
- package/dist/cjs/internal/effect-operator.js.map +1 -1
- package/dist/cjs/internal/effect-producer.js +74 -0
- package/dist/cjs/internal/effect-producer.js.map +1 -0
- package/dist/cjs/internal/helpers.js +158 -128
- package/dist/cjs/internal/helpers.js.map +1 -1
- package/dist/cjs/internal/keyed.js +136 -173
- package/dist/cjs/internal/keyed.js.map +1 -1
- package/dist/cjs/internal/loop-operator.js +213 -0
- package/dist/cjs/internal/loop-operator.js.map +1 -0
- package/dist/cjs/internal/operator.js +79 -0
- package/dist/cjs/internal/operator.js.map +1 -0
- package/dist/cjs/internal/protos.js +19 -81
- package/dist/cjs/internal/protos.js.map +1 -1
- package/dist/cjs/internal/provide.js +47 -25
- package/dist/cjs/internal/provide.js.map +1 -1
- package/dist/cjs/internal/requestIdleCallback.js +5 -5
- package/dist/cjs/internal/requestIdleCallback.js.map +1 -1
- package/dist/cjs/internal/share.js +12 -15
- package/dist/cjs/internal/share.js.map +1 -1
- package/dist/cjs/internal/sync-operator.js +50 -22
- package/dist/cjs/internal/sync-operator.js.map +1 -1
- package/dist/cjs/internal/sync-producer.js +114 -0
- package/dist/cjs/internal/sync-producer.js.map +1 -0
- package/dist/cjs/internal/withKey.js +45 -51
- package/dist/cjs/internal/withKey.js.map +1 -1
- package/dist/dts/AsyncData.d.ts +185 -0
- package/dist/dts/AsyncData.d.ts.map +1 -0
- package/dist/dts/Emitter.d.ts +13 -20
- package/dist/dts/Emitter.d.ts.map +1 -1
- package/dist/dts/Form.d.ts +45 -28
- package/dist/dts/Form.d.ts.map +1 -1
- package/dist/dts/FormEntry.d.ts +25 -13
- package/dist/dts/FormEntry.d.ts.map +1 -1
- package/dist/dts/Fx.d.ts +983 -1387
- package/dist/dts/Fx.d.ts.map +1 -1
- package/dist/dts/Guard.d.ts +8 -1
- package/dist/dts/Guard.d.ts.map +1 -1
- package/dist/dts/Idle.d.ts +3 -3
- package/dist/dts/Idle.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +8 -8
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/Pull.d.ts +5 -5
- package/dist/dts/Pull.d.ts.map +1 -1
- package/dist/dts/Push.d.ts +170 -0
- package/dist/dts/Push.d.ts.map +1 -0
- package/dist/dts/RefArray.d.ts +21 -23
- package/dist/dts/RefArray.d.ts.map +1 -1
- package/dist/dts/RefChunk.d.ts +17 -19
- package/dist/dts/RefChunk.d.ts.map +1 -1
- package/dist/dts/RefHashMap.d.ts +19 -20
- package/dist/dts/RefHashMap.d.ts.map +1 -1
- package/dist/dts/RefHashSet.d.ts +12 -16
- package/dist/dts/RefHashSet.d.ts.map +1 -1
- package/dist/dts/RefSubject.d.ts +396 -187
- package/dist/dts/RefSubject.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +193 -93
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +7 -1
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Subject.d.ts +27 -36
- package/dist/dts/Subject.d.ts.map +1 -1
- package/dist/dts/TypeId.d.ts +10 -0
- package/dist/dts/TypeId.d.ts.map +1 -1
- package/dist/dts/Typeclass.d.ts +2 -2
- package/dist/dts/Typeclass.d.ts.map +1 -1
- package/dist/dts/Versioned.d.ts +50 -78
- package/dist/dts/Versioned.d.ts.map +1 -1
- package/dist/dts/index.d.ts +66 -6
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/DeferredRef.d.ts +20 -0
- package/dist/dts/internal/DeferredRef.d.ts.map +1 -0
- package/dist/dts/internal/UnionToTuple.d.ts +6 -0
- package/dist/dts/internal/UnionToTuple.d.ts.map +1 -0
- package/dist/dts/internal/core.d.ts +218 -450
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/diff.d.ts +38 -0
- package/dist/dts/internal/diff.d.ts.map +1 -0
- package/dist/dts/internal/effect-loop-operator.d.ts +34 -0
- package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -0
- package/dist/dts/internal/effect-operator.d.ts +8 -5
- package/dist/dts/internal/effect-operator.d.ts.map +1 -1
- package/dist/dts/internal/effect-producer.d.ts +25 -0
- package/dist/dts/internal/effect-producer.d.ts.map +1 -0
- package/dist/dts/internal/helpers.d.ts +33 -24
- package/dist/dts/internal/helpers.d.ts.map +1 -1
- package/dist/dts/internal/keyed.d.ts +3 -3
- package/dist/dts/internal/keyed.d.ts.map +1 -1
- package/dist/dts/internal/loop-operator.d.ts +40 -0
- package/dist/dts/internal/loop-operator.d.ts.map +1 -0
- package/dist/dts/internal/operator.d.ts +16 -0
- package/dist/dts/internal/operator.d.ts.map +1 -0
- package/dist/dts/internal/protos.d.ts +16 -43
- package/dist/dts/internal/protos.d.ts.map +1 -1
- package/dist/dts/internal/provide.d.ts +7 -1
- package/dist/dts/internal/provide.d.ts.map +1 -1
- package/dist/dts/internal/share.d.ts +12 -9
- package/dist/dts/internal/share.d.ts.map +1 -1
- package/dist/dts/internal/sync-operator.d.ts +7 -3
- package/dist/dts/internal/sync-operator.d.ts.map +1 -1
- package/dist/dts/internal/sync-producer.d.ts +36 -0
- package/dist/dts/internal/sync-producer.d.ts.map +1 -0
- package/dist/dts/internal/withKey.d.ts +3 -3
- package/dist/dts/internal/withKey.d.ts.map +1 -1
- package/dist/esm/AsyncData.js +151 -0
- package/dist/esm/AsyncData.js.map +1 -0
- package/dist/esm/Emitter.js +24 -21
- package/dist/esm/Emitter.js.map +1 -1
- package/dist/esm/Form.js +69 -14
- package/dist/esm/Form.js.map +1 -1
- package/dist/esm/FormEntry.js +77 -52
- package/dist/esm/FormEntry.js.map +1 -1
- package/dist/esm/Fx.js +509 -874
- package/dist/esm/Fx.js.map +1 -1
- package/dist/esm/Guard.js +5 -1
- package/dist/esm/Guard.js.map +1 -1
- package/dist/esm/Idle.js +49 -39
- package/dist/esm/Idle.js.map +1 -1
- package/dist/esm/Match.js +103 -63
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Pull.js.map +1 -1
- package/dist/esm/Push.js +159 -0
- package/dist/esm/Push.js.map +1 -0
- package/dist/esm/RefArray.js +32 -30
- package/dist/esm/RefArray.js.map +1 -1
- package/dist/esm/RefChunk.js +26 -24
- package/dist/esm/RefChunk.js.map +1 -1
- package/dist/esm/RefHashMap.js +20 -20
- package/dist/esm/RefHashMap.js.map +1 -1
- package/dist/esm/RefHashSet.js +11 -8
- package/dist/esm/RefHashSet.js.map +1 -1
- package/dist/esm/RefSubject.js +873 -150
- package/dist/esm/RefSubject.js.map +1 -1
- package/dist/esm/Sink.js +608 -57
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js +13 -9
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Subject.js +151 -56
- package/dist/esm/Subject.js.map +1 -1
- package/dist/esm/TypeId.js +9 -4
- package/dist/esm/TypeId.js.map +1 -1
- package/dist/esm/Typeclass.js +29 -29
- package/dist/esm/Typeclass.js.map +1 -1
- package/dist/esm/Versioned.js +110 -53
- package/dist/esm/Versioned.js.map +1 -1
- package/dist/esm/index.js +66 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/DeferredRef.js +54 -0
- package/dist/esm/internal/DeferredRef.js.map +1 -0
- package/dist/esm/internal/UnionToTuple.js +2 -0
- package/dist/esm/internal/UnionToTuple.js.map +1 -0
- package/dist/esm/internal/core.js +1439 -719
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/diff.js +82 -0
- package/dist/esm/internal/diff.js.map +1 -0
- package/dist/esm/internal/effect-loop-operator.js +269 -0
- package/dist/esm/internal/effect-loop-operator.js.map +1 -0
- package/dist/esm/internal/effect-operator.js +44 -37
- package/dist/esm/internal/effect-operator.js.map +1 -1
- package/dist/esm/internal/effect-producer.js +47 -0
- package/dist/esm/internal/effect-producer.js.map +1 -0
- package/dist/esm/internal/helpers.js +157 -129
- package/dist/esm/internal/helpers.js.map +1 -1
- package/dist/esm/internal/keyed.js +128 -139
- package/dist/esm/internal/keyed.js.map +1 -1
- package/dist/esm/internal/loop-operator.js +186 -0
- package/dist/esm/internal/loop-operator.js.map +1 -0
- package/dist/esm/internal/operator.js +68 -0
- package/dist/esm/internal/operator.js.map +1 -0
- package/dist/esm/internal/protos.js +16 -75
- package/dist/esm/internal/protos.js.map +1 -1
- package/dist/esm/internal/provide.js +33 -25
- package/dist/esm/internal/provide.js.map +1 -1
- package/dist/esm/internal/requestIdleCallback.js +5 -5
- package/dist/esm/internal/requestIdleCallback.js.map +1 -1
- package/dist/esm/internal/share.js +12 -12
- package/dist/esm/internal/share.js.map +1 -1
- package/dist/esm/internal/sync-operator.js +49 -21
- package/dist/esm/internal/sync-operator.js.map +1 -1
- package/dist/esm/internal/sync-producer.js +88 -0
- package/dist/esm/internal/sync-producer.js.map +1 -0
- package/dist/esm/internal/withKey.js +46 -47
- package/dist/esm/internal/withKey.js.map +1 -1
- package/package.json +22 -62
- package/src/AsyncData.ts +447 -0
- package/src/Emitter.ts +47 -38
- package/src/Form.ts +185 -65
- package/src/FormEntry.ts +142 -109
- package/src/Fx.ts +1685 -1851
- package/src/Guard.ts +12 -1
- package/src/Idle.ts +76 -62
- package/src/Match.ts +149 -93
- package/src/Pull.ts +8 -8
- package/src/Push.ts +472 -0
- package/src/RefArray.ts +53 -51
- package/src/RefChunk.ts +44 -41
- package/src/RefHashMap.ts +57 -43
- package/src/RefHashSet.ts +21 -31
- package/src/RefSubject.ts +1984 -457
- package/src/Sink.ts +922 -171
- package/src/Stream.ts +32 -20
- package/src/Subject.ts +230 -87
- package/src/TypeId.ts +16 -4
- package/src/Typeclass.ts +31 -32
- package/src/Versioned.ts +220 -168
- package/src/index.ts +78 -6
- package/src/internal/DeferredRef.ts +62 -0
- package/src/internal/UnionToTuple.ts +11 -0
- package/src/internal/core.ts +2491 -1950
- package/src/internal/diff.ts +157 -0
- package/src/internal/effect-loop-operator.ts +466 -0
- package/src/internal/effect-operator.ts +89 -54
- package/src/internal/effect-producer.ts +125 -0
- package/src/internal/helpers.ts +275 -205
- package/src/internal/keyed.ts +192 -241
- package/src/internal/loop-operator.ts +266 -0
- package/src/internal/operator.ts +87 -0
- package/src/internal/protos.ts +29 -104
- package/src/internal/provide.ts +48 -40
- package/src/internal/requestIdleCallback.ts +5 -6
- package/src/internal/share.ts +26 -24
- package/src/internal/sync-operator.ts +68 -27
- package/src/internal/sync-producer.ts +146 -0
- package/src/internal/withKey.ts +64 -74
- package/dist/cjs/Computed.js +0 -115
- package/dist/cjs/Computed.js.map +0 -1
- package/dist/cjs/Filtered.js +0 -95
- package/dist/cjs/Filtered.js.map +0 -1
- package/dist/cjs/Model.js +0 -119
- package/dist/cjs/Model.js.map +0 -1
- package/dist/cjs/RefAsyncData.js +0 -187
- package/dist/cjs/RefAsyncData.js.map +0 -1
- package/dist/cjs/RefAsyncDataArray.js +0 -38
- package/dist/cjs/RefAsyncDataArray.js.map +0 -1
- package/dist/cjs/RefBoolean.js +0 -45
- package/dist/cjs/RefBoolean.js.map +0 -1
- package/dist/cjs/RefNumber.js +0 -49
- package/dist/cjs/RefNumber.js.map +0 -1
- package/dist/cjs/internal/core-ref-subject.js +0 -254
- package/dist/cjs/internal/core-ref-subject.js.map +0 -1
- package/dist/cjs/internal/core-subject.js +0 -108
- package/dist/cjs/internal/core-subject.js.map +0 -1
- package/dist/cjs/internal/deferred-ref.js.map +0 -1
- package/dist/cjs/internal/effect-primitive.js +0 -47
- package/dist/cjs/internal/effect-primitive.js.map +0 -1
- package/dist/cjs/internal/fx-effect-proto.js +0 -58
- package/dist/cjs/internal/fx-effect-proto.js.map +0 -1
- package/dist/cjs/internal/fx-primitive.js +0 -193
- package/dist/cjs/internal/fx-primitive.js.map +0 -1
- package/dist/cjs/internal/fx.js +0 -240
- package/dist/cjs/internal/fx.js.map +0 -1
- package/dist/cjs/internal/matchers.js +0 -34
- package/dist/cjs/internal/matchers.js.map +0 -1
- package/dist/cjs/internal/run.js +0 -54
- package/dist/cjs/internal/run.js.map +0 -1
- package/dist/cjs/internal/schema-ref-subject.js +0 -132
- package/dist/cjs/internal/schema-ref-subject.js.map +0 -1
- package/dist/cjs/internal/versioned-transform.js +0 -46
- package/dist/cjs/internal/versioned-transform.js.map +0 -1
- package/dist/dts/Computed.d.ts +0 -106
- package/dist/dts/Computed.d.ts.map +0 -1
- package/dist/dts/Filtered.d.ts +0 -97
- package/dist/dts/Filtered.d.ts.map +0 -1
- package/dist/dts/Model.d.ts +0 -200
- package/dist/dts/Model.d.ts.map +0 -1
- package/dist/dts/RefAsyncData.d.ts +0 -236
- package/dist/dts/RefAsyncData.d.ts.map +0 -1
- package/dist/dts/RefAsyncDataArray.d.ts +0 -56
- package/dist/dts/RefAsyncDataArray.d.ts.map +0 -1
- package/dist/dts/RefBoolean.d.ts +0 -47
- package/dist/dts/RefBoolean.d.ts.map +0 -1
- package/dist/dts/RefNumber.d.ts +0 -48
- package/dist/dts/RefNumber.d.ts.map +0 -1
- package/dist/dts/internal/core-ref-subject.d.ts +0 -100
- package/dist/dts/internal/core-ref-subject.d.ts.map +0 -1
- package/dist/dts/internal/core-subject.d.ts +0 -5
- package/dist/dts/internal/core-subject.d.ts.map +0 -1
- package/dist/dts/internal/deferred-ref.d.ts +0 -12
- package/dist/dts/internal/deferred-ref.d.ts.map +0 -1
- package/dist/dts/internal/effect-primitive.d.ts +0 -6
- package/dist/dts/internal/effect-primitive.d.ts.map +0 -1
- package/dist/dts/internal/fx-effect-proto.d.ts +0 -30
- package/dist/dts/internal/fx-effect-proto.d.ts.map +0 -1
- package/dist/dts/internal/fx-primitive.d.ts +0 -109
- package/dist/dts/internal/fx-primitive.d.ts.map +0 -1
- package/dist/dts/internal/fx.d.ts +0 -245
- package/dist/dts/internal/fx.d.ts.map +0 -1
- package/dist/dts/internal/matchers.d.ts +0 -33
- package/dist/dts/internal/matchers.d.ts.map +0 -1
- package/dist/dts/internal/run.d.ts +0 -8
- package/dist/dts/internal/run.d.ts.map +0 -1
- package/dist/dts/internal/schema-ref-subject.d.ts +0 -5
- package/dist/dts/internal/schema-ref-subject.d.ts.map +0 -1
- package/dist/dts/internal/versioned-transform.d.ts +0 -17
- package/dist/dts/internal/versioned-transform.d.ts.map +0 -1
- package/dist/esm/Computed.js +0 -103
- package/dist/esm/Computed.js.map +0 -1
- package/dist/esm/Filtered.js +0 -83
- package/dist/esm/Filtered.js.map +0 -1
- package/dist/esm/Model.js +0 -100
- package/dist/esm/Model.js.map +0 -1
- package/dist/esm/RefAsyncData.js +0 -163
- package/dist/esm/RefAsyncData.js.map +0 -1
- package/dist/esm/RefAsyncDataArray.js +0 -27
- package/dist/esm/RefAsyncDataArray.js.map +0 -1
- package/dist/esm/RefBoolean.js +0 -31
- package/dist/esm/RefBoolean.js.map +0 -1
- package/dist/esm/RefNumber.js +0 -35
- package/dist/esm/RefNumber.js.map +0 -1
- package/dist/esm/internal/core-ref-subject.js +0 -242
- package/dist/esm/internal/core-ref-subject.js.map +0 -1
- package/dist/esm/internal/core-subject.js +0 -90
- package/dist/esm/internal/core-subject.js.map +0 -1
- package/dist/esm/internal/deferred-ref.js +0 -23
- package/dist/esm/internal/deferred-ref.js.map +0 -1
- package/dist/esm/internal/effect-primitive.js +0 -41
- package/dist/esm/internal/effect-primitive.js.map +0 -1
- package/dist/esm/internal/fx-effect-proto.js +0 -43
- package/dist/esm/internal/fx-effect-proto.js.map +0 -1
- package/dist/esm/internal/fx-primitive.js +0 -175
- package/dist/esm/internal/fx-primitive.js.map +0 -1
- package/dist/esm/internal/fx.js +0 -216
- package/dist/esm/internal/fx.js.map +0 -1
- package/dist/esm/internal/matchers.js +0 -38
- package/dist/esm/internal/matchers.js.map +0 -1
- package/dist/esm/internal/run.js +0 -32
- package/dist/esm/internal/run.js.map +0 -1
- package/dist/esm/internal/schema-ref-subject.js +0 -121
- package/dist/esm/internal/schema-ref-subject.js.map +0 -1
- package/dist/esm/internal/versioned-transform.js +0 -37
- package/dist/esm/internal/versioned-transform.js.map +0 -1
- package/src/Computed.ts +0 -289
- package/src/Filtered.ts +0 -274
- package/src/Model.ts +0 -483
- package/src/RefAsyncData.ts +0 -547
- package/src/RefAsyncDataArray.ts +0 -135
- package/src/RefBoolean.ts +0 -71
- package/src/RefNumber.ts +0 -77
- package/src/internal/core-ref-subject.ts +0 -528
- package/src/internal/core-subject.ts +0 -143
- package/src/internal/deferred-ref.ts +0 -26
- package/src/internal/effect-primitive.ts +0 -230
- package/src/internal/fx-effect-proto.ts +0 -56
- package/src/internal/fx-primitive.ts +0 -223
- package/src/internal/fx.ts +0 -619
- package/src/internal/matchers.ts +0 -83
- package/src/internal/run.ts +0 -51
- package/src/internal/schema-ref-subject.ts +0 -163
- 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
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
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
|
|
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,
|
|
23
|
-
return (
|
|
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
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
106
|
+
break;
|
|
117
107
|
}
|
|
118
108
|
}
|
|
119
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
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
|
|
194
|
-
|
|
195
|
-
|
|
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":["
|
|
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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"}
|