@typed/fx 1.19.0 → 1.20.1
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/Push/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 +904 -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 +156 -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 +980 -1390
- 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 +413 -184
- 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 +876 -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 +154 -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 +1682 -1854
- 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 +2003 -446
- package/src/Sink.ts +922 -171
- package/src/Stream.ts +32 -20
- package/src/Subject.ts +236 -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/Computed/package.json +0 -6
- package/Filtered/package.json +0 -6
- package/Model/package.json +0 -6
- package/RefAsyncData/package.json +0 -6
- package/RefAsyncDataArray/package.json +0 -6
- package/RefBoolean/package.json +0 -6
- package/RefNumber/package.json +0 -6
- 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
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.asSink = void 0;
|
|
7
|
+
exports.asyncDataRequest = asyncDataRequest;
|
|
8
|
+
exports.succeed = exports.stopLoading = exports.startLoading = exports.runIfNoData = exports.runIfExpired = exports.runAsyncData = exports.matchAsyncDataArray = exports.matchAsyncData = exports.mapInputEffect = exports.mapInput = exports.getSuccess = exports.getFailure = exports.failCause = exports.fail = exports.done = exports.awaitLoadingOrRefreshing = exports.awaitLoading = void 0;
|
|
9
|
+
var AsyncData = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@typed/async-data/AsyncData"));
|
|
10
|
+
var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Cause"));
|
|
11
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
12
|
+
var Either = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Either"));
|
|
13
|
+
var _Function = /*#__PURE__*/require("effect/Function");
|
|
14
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
|
15
|
+
var Fx = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Fx.js"));
|
|
16
|
+
var _keyed = /*#__PURE__*/require("./internal/keyed.js");
|
|
17
|
+
var RefSubject = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RefSubject.js"));
|
|
18
|
+
var Sink = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Sink.js"));
|
|
19
|
+
var _TypeId = /*#__PURE__*/require("./TypeId.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
|
+
/**
|
|
23
|
+
* AsyncData integrations with Fx.
|
|
24
|
+
* @since 1.20.0
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.20.0
|
|
29
|
+
*/
|
|
30
|
+
function asyncDataRequest(effect) {
|
|
31
|
+
return Fx.make(sink => Effect.flatMap(Effect.zipRight(sink.onSuccess(AsyncData.loading()), Effect.exit(effect)), exit => sink.onSuccess(AsyncData.fromExit(exit))));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @since 1.20.0
|
|
35
|
+
*/
|
|
36
|
+
const runAsyncData = exports.runAsyncData = /*#__PURE__*/(0, _Function.dual)(2, function runAsyncData(ref, effect) {
|
|
37
|
+
return ref.runUpdates(({
|
|
38
|
+
get,
|
|
39
|
+
set
|
|
40
|
+
}) => Effect.uninterruptibleMask(restore => Effect.flatMap(Effect.flatMap(Effect.tap(get, current => set(AsyncData.startLoading(current))), () => Effect.exit(restore(effect))), exit => set(AsyncData.fromExit(exit)))));
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* @since 1.20.0
|
|
44
|
+
*/
|
|
45
|
+
const matchAsyncData = exports.matchAsyncData = /*#__PURE__*/(0, _Function.dual)(2, function matchAsyncData(fx, matchers) {
|
|
46
|
+
return Fx.matchTags(fx, {
|
|
47
|
+
NoData: () => matchers.NoData,
|
|
48
|
+
Loading: loading => matchers.Loading(RefSubject.filterMap(loading, l => l.progress)),
|
|
49
|
+
Failure: failure => matchers.Failure(RefSubject.mapEffect(failure, f => Either.match(Cause.failureOrCause(f.cause), {
|
|
50
|
+
onLeft: Effect.succeed,
|
|
51
|
+
onRight: Effect.failCause
|
|
52
|
+
})), {
|
|
53
|
+
timestamp: RefSubject.map(failure, f => f.timestamp),
|
|
54
|
+
progress: RefSubject.filterMap(failure, f => Option.flatMap(f.refreshing, l => l.progress))
|
|
55
|
+
}),
|
|
56
|
+
Success: success => matchers.Success(RefSubject.transform(success, s => s.value, value => AsyncData.success(value)), {
|
|
57
|
+
timestamp: RefSubject.map(success, s => s.timestamp),
|
|
58
|
+
progress: RefSubject.filterMap(success, f => Option.flatMap(f.refreshing, l => l.progress))
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* @since 1.20.0
|
|
64
|
+
*/
|
|
65
|
+
const matchAsyncDataArray = exports.matchAsyncDataArray = /*#__PURE__*/(0, _Function.dual)(3, function matchAsyncData(fx, getKey, matchers) {
|
|
66
|
+
return Fx.matchTags(fx, {
|
|
67
|
+
NoData: () => matchers.NoData,
|
|
68
|
+
Loading: loading => matchers.Loading(RefSubject.filterMap(loading, l => l.progress)),
|
|
69
|
+
Failure: failure => matchers.Failure(RefSubject.mapEffect(failure, f => Either.match(Cause.failureOrCause(f.cause), {
|
|
70
|
+
onLeft: Effect.succeed,
|
|
71
|
+
onRight: Effect.failCause
|
|
72
|
+
})), {
|
|
73
|
+
timestamp: RefSubject.map(failure, f => f.timestamp),
|
|
74
|
+
progress: RefSubject.filterMap(failure, f => Option.flatMap(f.refreshing, l => l.progress))
|
|
75
|
+
}),
|
|
76
|
+
Success: success => (0, _keyed.keyed)(RefSubject.map(success, s => s.value), {
|
|
77
|
+
getKey,
|
|
78
|
+
onValue: matchers.Success
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* @since 1.20.0
|
|
84
|
+
*/
|
|
85
|
+
const runIfNoData = exports.runIfNoData = /*#__PURE__*/(0, _Function.dual)(2, function runIfNoData(ref, effect) {
|
|
86
|
+
return Effect.flatMap(ref, current => AsyncData.isNoData(current) ? runAsyncData(ref, effect) : Effect.succeed(current));
|
|
87
|
+
});
|
|
88
|
+
/**
|
|
89
|
+
* @since 1.20.0
|
|
90
|
+
*/
|
|
91
|
+
const runIfExpired = exports.runIfExpired = /*#__PURE__*/(0, _Function.dual)(3, function runIfExpired(ref, effect, {
|
|
92
|
+
now,
|
|
93
|
+
ttl
|
|
94
|
+
}) {
|
|
95
|
+
return Effect.flatMap(ref, current => AsyncData.isExpired(current, ttl, now) ? runAsyncData(ref, effect) : Effect.succeed(current));
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* Await for the AsyncData to stop loading.
|
|
99
|
+
* @since 1.20.0
|
|
100
|
+
* @category updates
|
|
101
|
+
*/
|
|
102
|
+
const awaitLoading = data => data.pipe(Fx.dropWhile(AsyncData.isLoading), Fx.take(1), Fx.toReadonlyArray, Effect.map(x => x[0]));
|
|
103
|
+
/**
|
|
104
|
+
* Await for the AsyncData to stop loading or refreshing.
|
|
105
|
+
* @since 1.20.0
|
|
106
|
+
* @category updates
|
|
107
|
+
*/
|
|
108
|
+
exports.awaitLoading = awaitLoading;
|
|
109
|
+
const awaitLoadingOrRefreshing = data => data.pipe(Fx.dropWhile(AsyncData.isLoadingOrRefreshing), Fx.take(1), Fx.toReadonlyArray, Effect.map(x => x[0]));
|
|
110
|
+
/**
|
|
111
|
+
* Change the current value of a RefAsyncData to a loading or refreshing state.
|
|
112
|
+
* @since 1.20.0
|
|
113
|
+
* @category updates
|
|
114
|
+
*/
|
|
115
|
+
exports.awaitLoadingOrRefreshing = awaitLoadingOrRefreshing;
|
|
116
|
+
const startLoading = ref => RefSubject.update(ref, AsyncData.startLoading);
|
|
117
|
+
/**
|
|
118
|
+
* Change the current value of a RefAsyncData to a non-loading/non-refreshing state.
|
|
119
|
+
* @since 1.20.0
|
|
120
|
+
* @category updates
|
|
121
|
+
*/
|
|
122
|
+
exports.startLoading = startLoading;
|
|
123
|
+
const stopLoading = ref => RefSubject.update(ref, AsyncData.stopLoading);
|
|
124
|
+
/**
|
|
125
|
+
* Convert RefAsyncData into a Sink.
|
|
126
|
+
* @since 1.20.0
|
|
127
|
+
* @category conversions
|
|
128
|
+
*/
|
|
129
|
+
exports.stopLoading = stopLoading;
|
|
130
|
+
const asSink = ref => Sink.make(cause => RefSubject.set(ref, AsyncData.failCause(cause)), a => RefSubject.set(ref, AsyncData.success(a)));
|
|
131
|
+
/**
|
|
132
|
+
* Map the input value using an Effect
|
|
133
|
+
* @since 1.20.0
|
|
134
|
+
*/
|
|
135
|
+
exports.asSink = asSink;
|
|
136
|
+
const mapInputEffect = (ref, f) => Sink.mapEffect(asSink(ref), f);
|
|
137
|
+
/**
|
|
138
|
+
* Map the input value
|
|
139
|
+
* @since 1.20.0
|
|
140
|
+
*/
|
|
141
|
+
exports.mapInputEffect = mapInputEffect;
|
|
142
|
+
const mapInput = (ref, f) => Sink.map(asSink(ref), f);
|
|
143
|
+
exports.mapInput = mapInput;
|
|
144
|
+
const isRefFirst = args => args.length === 3 || _TypeId.RefSubjectTypeId in args[0];
|
|
145
|
+
/**
|
|
146
|
+
* Fail with a given cause
|
|
147
|
+
* @since 1.20.0
|
|
148
|
+
*/
|
|
149
|
+
const failCause = exports.failCause = /*#__PURE__*/(0, _Function.dual)(isRefFirst, (ref, cause, options) => RefSubject.set(ref, AsyncData.failCause(cause, options)));
|
|
150
|
+
/**
|
|
151
|
+
* Fail with a given error
|
|
152
|
+
* @since 1.20.0
|
|
153
|
+
*/
|
|
154
|
+
const fail = exports.fail = /*#__PURE__*/(0, _Function.dual)(isRefFirst, (ref, error, options) => RefSubject.set(ref, AsyncData.fail(error, options)));
|
|
155
|
+
/**
|
|
156
|
+
* Succeed with a value
|
|
157
|
+
* @since 1.20.0
|
|
158
|
+
*/
|
|
159
|
+
const succeed = exports.succeed = /*#__PURE__*/(0, _Function.dual)(isRefFirst, (ref, value, options) => RefSubject.set(ref, AsyncData.success(value, options)));
|
|
160
|
+
/**
|
|
161
|
+
* Set Exit value of RefAsyncData
|
|
162
|
+
* @since 1.20.0
|
|
163
|
+
*/
|
|
164
|
+
const done = exports.done = /*#__PURE__*/(0, _Function.dual)(2, (ref, exit) => RefSubject.set(ref, AsyncData.done(exit)));
|
|
165
|
+
/**
|
|
166
|
+
* @since 1.20.0
|
|
167
|
+
* @category Filtered
|
|
168
|
+
*/
|
|
169
|
+
const getFailure = ref => RefSubject.filterMap(ref, AsyncData.getFailure);
|
|
170
|
+
/**
|
|
171
|
+
* @since 1.20.0
|
|
172
|
+
* @category Filtered
|
|
173
|
+
*/
|
|
174
|
+
exports.getFailure = getFailure;
|
|
175
|
+
const getSuccess = ref => RefSubject.filterMap(ref, AsyncData.getSuccess);
|
|
176
|
+
exports.getSuccess = getSuccess;
|
|
177
|
+
//# sourceMappingURL=AsyncData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncData.js","names":["AsyncData","_interopRequireWildcard","require","Cause","Effect","Either","_Function","Option","Fx","_keyed","RefSubject","Sink","_TypeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","asyncDataRequest","effect","make","sink","flatMap","zipRight","onSuccess","loading","exit","fromExit","runAsyncData","exports","dual","ref","runUpdates","uninterruptibleMask","restore","tap","current","startLoading","matchAsyncData","fx","matchers","matchTags","NoData","Loading","filterMap","l","progress","Failure","failure","mapEffect","f","match","failureOrCause","cause","onLeft","succeed","onRight","failCause","timestamp","map","refreshing","Success","success","transform","s","value","matchAsyncDataArray","getKey","keyed","onValue","runIfNoData","isNoData","runIfExpired","now","ttl","isExpired","awaitLoading","data","pipe","dropWhile","isLoading","take","toReadonlyArray","x","awaitLoadingOrRefreshing","isLoadingOrRefreshing","update","stopLoading","asSink","mapInputEffect","mapInput","isRefFirst","args","length","RefSubjectTypeId","options","fail","error","done","getFailure","getSuccess"],"sources":["../../src/AsyncData.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/dist/cjs/Emitter.js
CHANGED
|
@@ -3,35 +3,38 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.withEmitter = withEmitter;
|
|
7
|
+
var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Cause"));
|
|
7
8
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
8
|
-
var
|
|
9
|
+
var ExecutionStrategy = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/ExecutionStrategy"));
|
|
10
|
+
var Fiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Fiber"));
|
|
11
|
+
var Runtime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Runtime"));
|
|
9
12
|
var _helpers = /*#__PURE__*/require("./internal/helpers.js");
|
|
13
|
+
var Sink = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Sink.js"));
|
|
10
14
|
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); }
|
|
11
15
|
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; }
|
|
12
16
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @since 1.18.0
|
|
17
|
+
* Emitter is a helper for creating Fx from external libraries which are not Effect-native.
|
|
18
|
+
* @since 1.20.0
|
|
16
19
|
*/
|
|
17
20
|
|
|
18
21
|
/**
|
|
19
|
-
*
|
|
20
|
-
* @since 1.18.0
|
|
21
|
-
* @category constructors
|
|
22
|
+
* @since 1.20.0
|
|
22
23
|
*/
|
|
23
|
-
function
|
|
24
|
-
return
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
function withEmitter(sink, f) {
|
|
25
|
+
return (0, _helpers.withScope)(scope => Sink.withEarlyExit(sink, sink => {
|
|
26
|
+
return Effect.flatMap(Effect.runtime(), runtime => {
|
|
27
|
+
const runPromiseExit = Runtime.runPromiseExit(runtime);
|
|
28
|
+
const run = effect => runPromiseExit(Effect.flatMap(Effect.forkIn(effect, scope), Fiber.join));
|
|
29
|
+
const emitter = {
|
|
30
|
+
succeed: value => run(sink.onSuccess(value)),
|
|
31
|
+
failCause: cause => run(sink.onFailure(cause)),
|
|
32
|
+
fail: error => run(sink.onFailure(Cause.fail(error))),
|
|
33
|
+
die: error => run(sink.onFailure(Cause.die(error))),
|
|
34
|
+
end: () => run(sink.earlyExit)
|
|
35
|
+
};
|
|
36
|
+
return f(emitter);
|
|
37
|
+
});
|
|
38
|
+
}), ExecutionStrategy.sequential);
|
|
36
39
|
}
|
|
37
40
|
//# sourceMappingURL=Emitter.js.map
|
package/dist/cjs/Emitter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Emitter.js","names":["
|
|
1
|
+
{"version":3,"file":"Emitter.js","names":["Cause","_interopRequireWildcard","require","Effect","ExecutionStrategy","Fiber","Runtime","_helpers","Sink","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","withEmitter","sink","f","withScope","scope","withEarlyExit","flatMap","runtime","runPromiseExit","run","effect","forkIn","join","emitter","succeed","value","onSuccess","failCause","cause","onFailure","fail","error","die","end","earlyExit","sequential"],"sources":["../../src/Emitter.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/dist/cjs/Form.js
CHANGED
|
@@ -5,16 +5,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Form = Form;
|
|
7
7
|
exports.FormTypeId = void 0;
|
|
8
|
-
exports.
|
|
8
|
+
exports.derive = derive;
|
|
9
|
+
exports.deriveInput = deriveInput;
|
|
9
10
|
var _schema = /*#__PURE__*/require("@effect/schema");
|
|
10
11
|
var _Equivalence = /*#__PURE__*/require("@effect/schema/Equivalence");
|
|
11
12
|
var S = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Schema"));
|
|
12
|
-
var
|
|
13
|
-
var
|
|
13
|
+
var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Cause"));
|
|
14
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
15
|
+
var _Predicate = /*#__PURE__*/require("effect/Predicate");
|
|
14
16
|
var FormEntry = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./FormEntry.js"));
|
|
15
17
|
var core = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/core.js"));
|
|
16
18
|
var _protos = /*#__PURE__*/require("./internal/protos.js");
|
|
17
19
|
var _share = /*#__PURE__*/require("./internal/share.js");
|
|
20
|
+
var RefSubject = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RefSubject.js"));
|
|
18
21
|
var _TypeId = /*#__PURE__*/require("./TypeId.js");
|
|
19
22
|
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); }
|
|
20
23
|
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; }
|
|
@@ -25,55 +28,79 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
25
28
|
/**
|
|
26
29
|
* @since 1.18.0
|
|
27
30
|
*/
|
|
28
|
-
const FormTypeId = exports.FormTypeId = /*#__PURE__*/Symbol.for("
|
|
31
|
+
const FormTypeId = exports.FormTypeId = /*#__PURE__*/Symbol.for("@typed/fx/Form");
|
|
29
32
|
/**
|
|
30
33
|
* @since 1.18.0
|
|
31
34
|
*/
|
|
32
35
|
function Form(entries) {
|
|
33
36
|
return new FormImpl(entries);
|
|
34
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* @since 1.20.0
|
|
40
|
+
*/
|
|
41
|
+
function derive(schema) {
|
|
42
|
+
return input => Effect.map(deriveMakeEntries(input, schema.ast), entries => {
|
|
43
|
+
const form = Form(entries);
|
|
44
|
+
if (_TypeId.RefSubjectTypeId in input) {
|
|
45
|
+
return Object.assign(form, {
|
|
46
|
+
persist: Effect.matchEffect(form.decoded, {
|
|
47
|
+
onFailure: error => isParseError(error) ? Effect.unit : input.onFailure(Cause.fail(error)),
|
|
48
|
+
onSuccess: a => input.onSuccess(a)
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return form;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
35
55
|
/**
|
|
36
56
|
* @since 1.18.0
|
|
37
57
|
*/
|
|
38
|
-
function
|
|
39
|
-
return input =>
|
|
58
|
+
function deriveInput(schema) {
|
|
59
|
+
return input => Effect.map(deriveMakeInputEntries(input, schema.ast), entries => {
|
|
40
60
|
const form = Form(entries);
|
|
41
61
|
if (_TypeId.RefSubjectTypeId in input) {
|
|
42
62
|
return Object.assign(form, {
|
|
43
|
-
persist:
|
|
63
|
+
persist: Effect.matchEffect(form, {
|
|
64
|
+
onFailure: error => isParseError(error) ? Effect.unit : input.onFailure(Cause.fail(error)),
|
|
65
|
+
onSuccess: a => input.onSuccess(a)
|
|
66
|
+
})
|
|
44
67
|
});
|
|
45
68
|
}
|
|
46
69
|
return form;
|
|
47
70
|
});
|
|
48
71
|
}
|
|
72
|
+
function isParseError(u) {
|
|
73
|
+
return (0, _Predicate.hasProperty)(u, "_tag") && u["_tag"] === "ParseError";
|
|
74
|
+
}
|
|
49
75
|
const parseOptions = {
|
|
50
76
|
errors: "all",
|
|
51
77
|
onExcessProperty: "ignore"
|
|
52
78
|
};
|
|
53
|
-
// @ts-expect-error
|
|
54
79
|
class FormImpl extends _protos.FxEffectBase {
|
|
55
80
|
entries;
|
|
56
81
|
[FormTypeId] = FormTypeId;
|
|
82
|
+
_fx;
|
|
83
|
+
version;
|
|
57
84
|
constructor(entries) {
|
|
58
85
|
super();
|
|
59
86
|
this.entries = entries;
|
|
60
87
|
this.schema = buildSchema(entries);
|
|
61
|
-
this.version =
|
|
88
|
+
this.version = Effect.map(
|
|
62
89
|
// @ts-ignore Infinite type instantiation
|
|
63
|
-
|
|
90
|
+
Effect.all(Object.values(entries).map(e => e.version)), versions => versions.reduce((a, b) => a + b, 0));
|
|
91
|
+
this._fx = (0, _share.hold)(core.skipRepeatsWith(core.struct(this.entries), (0, _Equivalence.make)(S.from(this.schema))));
|
|
64
92
|
}
|
|
65
93
|
get = k => this.entries[k];
|
|
66
94
|
schema;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return (0, _share.hold)(core.skipRepeatsWith(core.struct(this.entries), (0, _Equivalence.from)(this.schema)));
|
|
95
|
+
run(sink) {
|
|
96
|
+
return this._fx.run(sink);
|
|
70
97
|
}
|
|
71
98
|
toEffect() {
|
|
72
|
-
return
|
|
99
|
+
return Effect.all(this.entries, {
|
|
73
100
|
concurrency: "unbounded"
|
|
74
101
|
});
|
|
75
102
|
}
|
|
76
|
-
decoded =
|
|
103
|
+
decoded = RefSubject.mapEffect(this, i => S.decode(this.schema)(i, parseOptions));
|
|
77
104
|
}
|
|
78
105
|
function buildSchema(entries) {
|
|
79
106
|
const schemas = {};
|
|
@@ -87,12 +114,12 @@ function buildSchema(entries) {
|
|
|
87
114
|
}
|
|
88
115
|
return S.struct(schemas);
|
|
89
116
|
}
|
|
90
|
-
const deriveMakeEntries = (input, ast) =>
|
|
117
|
+
const deriveMakeEntries = (input, ast) => Effect.suspend(() => {
|
|
91
118
|
switch (ast._tag) {
|
|
92
119
|
case "TypeLiteral":
|
|
93
120
|
{
|
|
94
121
|
const propertySignatures = ast.propertySignatures;
|
|
95
|
-
return
|
|
122
|
+
return Effect.gen(function* (_) {
|
|
96
123
|
const entries = {};
|
|
97
124
|
for (const prop of propertySignatures) {
|
|
98
125
|
const nested = propOf(input, prop.name);
|
|
@@ -100,7 +127,36 @@ const deriveMakeEntries = (input, ast) => _effect.Effect.suspend(() => {
|
|
|
100
127
|
if (prop.type._tag === "TypeLiteral") {
|
|
101
128
|
entries[prop.name] = Form(yield* _(deriveMakeEntries(nested, ast)));
|
|
102
129
|
} else {
|
|
103
|
-
entries[prop.name] = yield* _(FormEntry.
|
|
130
|
+
entries[prop.name] = yield* _(FormEntry.derive({
|
|
131
|
+
name: prop.name,
|
|
132
|
+
schema: S.make(ast)
|
|
133
|
+
})(nested));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return entries;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
default:
|
|
140
|
+
{
|
|
141
|
+
// TODO: Wrap in an error
|
|
142
|
+
return Effect.die(new TypeError("Form.deriveMakeEntries only supports TypeLiteral schemas."));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
const deriveMakeInputEntries = (input, ast) => Effect.suspend(() => {
|
|
147
|
+
switch (ast._tag) {
|
|
148
|
+
case "TypeLiteral":
|
|
149
|
+
{
|
|
150
|
+
const propertySignatures = ast.propertySignatures;
|
|
151
|
+
return Effect.gen(function* (_) {
|
|
152
|
+
const entries = {};
|
|
153
|
+
for (const prop of propertySignatures) {
|
|
154
|
+
const nested = propOf(input, prop.name);
|
|
155
|
+
const ast = prop.isOptional ? _schema.AST.createUnion([prop.type, _schema.AST.undefinedKeyword]) : prop.type;
|
|
156
|
+
if (prop.type._tag === "TypeLiteral") {
|
|
157
|
+
entries[prop.name] = Form(yield* _(deriveMakeInputEntries(nested, ast)));
|
|
158
|
+
} else {
|
|
159
|
+
entries[prop.name] = yield* _(FormEntry.deriveInput({
|
|
104
160
|
name: prop.name,
|
|
105
161
|
schema: S.make(ast)
|
|
106
162
|
})(nested));
|
|
@@ -111,13 +167,14 @@ const deriveMakeEntries = (input, ast) => _effect.Effect.suspend(() => {
|
|
|
111
167
|
}
|
|
112
168
|
default:
|
|
113
169
|
{
|
|
114
|
-
|
|
170
|
+
// TODO: Wrap in an error
|
|
171
|
+
return Effect.die(new TypeError("Form.deriveMakeEntries only supports TypeLiteral schemas."));
|
|
115
172
|
}
|
|
116
173
|
}
|
|
117
174
|
});
|
|
118
175
|
const propOf = (input, key) => {
|
|
119
176
|
if (_TypeId.RefSubjectTypeId in input || _TypeId.ComputedTypeId in input || _TypeId.FilteredTypeId in input) {
|
|
120
|
-
return
|
|
121
|
-
} else if (_TypeId.TypeId in input) return core.map(input, o => o[key]);else return
|
|
177
|
+
return RefSubject.map(input, o => o[key]);
|
|
178
|
+
} else if (_TypeId.TypeId in input) return core.map(input, o => o[key]);else return Effect.map(input, o => o[key]);
|
|
122
179
|
};
|
|
123
180
|
//# sourceMappingURL=Form.js.map
|
package/dist/cjs/Form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":["_schema","require","_Equivalence","S","_interopRequireWildcard","
|
|
1
|
+
{"version":3,"file":"Form.js","names":["_schema","require","_Equivalence","S","_interopRequireWildcard","Cause","Effect","_Predicate","FormEntry","core","_protos","_share","RefSubject","_TypeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","FormTypeId","exports","Symbol","for","Form","entries","FormImpl","derive","schema","input","map","deriveMakeEntries","ast","form","RefSubjectTypeId","assign","persist","matchEffect","decoded","onFailure","error","isParseError","unit","fail","onSuccess","deriveInput","deriveMakeInputEntries","hasProperty","parseOptions","errors","onExcessProperty","FxEffectBase","_fx","version","constructor","buildSchema","all","values","versions","reduce","b","hold","skipRepeatsWith","struct","make","from","k","run","sink","toEffect","concurrency","mapEffect","decode","schemas","key","Reflect","ownKeys","entry","suspend","_tag","propertySignatures","gen","_","prop","nested","propOf","name","isOptional","AST","createUnion","type","undefinedKeyword","die","TypeError","ComputedTypeId","FilteredTypeId","o","TypeId"],"sources":["../../src/Form.ts"],"sourcesContent":[null],"mappings":"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"}
|