@typed/fx 1.19.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +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 +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 +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 +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 +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/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
package/dist/dts/RefSubject.d.ts
CHANGED
|
@@ -1,282 +1,491 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A RefSubject is
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* @since 1.18.0
|
|
2
|
+
* A RefSubject is a Subject that can be used to read and write a value.
|
|
3
|
+
* @since 1.20.0
|
|
6
4
|
*/
|
|
7
|
-
import type { Schema } from "@effect/schema";
|
|
8
5
|
import * as C from "@typed/context";
|
|
9
|
-
import type {
|
|
10
|
-
import
|
|
6
|
+
import type { Equivalence, FiberId, Runtime } from "effect";
|
|
7
|
+
import * as Cause from "effect/Cause";
|
|
11
8
|
import * as Effect from "effect/Effect";
|
|
12
|
-
import
|
|
13
|
-
import
|
|
9
|
+
import * as ExecutionStrategy from "effect/ExecutionStrategy";
|
|
10
|
+
import * as Layer from "effect/Layer";
|
|
14
11
|
import * as Option from "effect/Option";
|
|
15
|
-
import
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
/**
|
|
22
|
-
* A
|
|
23
|
-
* @since 1.
|
|
24
|
-
* @category models
|
|
12
|
+
import * as Scope from "effect/Scope";
|
|
13
|
+
import type { Fx } from "./Fx.js";
|
|
14
|
+
import type { UnionToTuple } from "./internal/UnionToTuple.js";
|
|
15
|
+
import * as Subject from "./Subject.js";
|
|
16
|
+
import { ComputedTypeId, FilteredTypeId, RefSubjectTypeId } from "./TypeId.js";
|
|
17
|
+
import * as Versioned from "./Versioned.js";
|
|
18
|
+
/**
|
|
19
|
+
* A Computed is essentially a readonly RefSubject.
|
|
20
|
+
* @since 1.20.0
|
|
25
21
|
*/
|
|
26
|
-
export interface
|
|
27
|
-
readonly [
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
*/
|
|
34
|
-
readonly get: Effect.Effect<R, E, A>;
|
|
35
|
-
/**
|
|
36
|
-
* Set the current value of this RefSubject.
|
|
37
|
-
* @since 1.18.0
|
|
38
|
-
*/
|
|
39
|
-
readonly set: (a: A) => Effect.Effect<R, never, A>;
|
|
40
|
-
/**
|
|
41
|
-
* Modify the current value of this RefSubject using the provided function.
|
|
42
|
-
* @since 1.18.0
|
|
43
|
-
*/
|
|
44
|
-
readonly update: (f: (a: A) => A) => Effect.Effect<R, E, A>;
|
|
45
|
-
/**
|
|
46
|
-
* Modify the current value of this RefSubject and compute a new value.
|
|
47
|
-
* @since 1.18.0
|
|
48
|
-
*/
|
|
49
|
-
readonly modify: <B>(f: (a: A) => readonly [B, A]) => Effect.Effect<R, E, B>;
|
|
50
|
-
/**
|
|
51
|
-
* Delete the current value of this RefSubject. If it was not initialized the Option.none will be returned.
|
|
52
|
-
* Otherwise the current value will be returned as an Option.some and the RefSubject will be uninitialized.
|
|
53
|
-
* If there are existing subscribers to this RefSubject then the RefSubject will be re-initialized.
|
|
54
|
-
* @since 1.18.0
|
|
55
|
-
*/
|
|
56
|
-
readonly delete: Effect.Effect<R, never, Option.Option<A>>;
|
|
22
|
+
export interface Computed<out R, out E, out A> extends Versioned.Versioned<R, E, R | Scope.Scope, E, A, R, E, A> {
|
|
23
|
+
readonly [ComputedTypeId]: ComputedTypeId;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.20.0
|
|
27
|
+
*/
|
|
28
|
+
export declare namespace Computed {
|
|
57
29
|
/**
|
|
58
|
-
*
|
|
59
|
-
* @since 1.18.0
|
|
30
|
+
* @since 1.20.0
|
|
60
31
|
*/
|
|
61
|
-
|
|
32
|
+
type Any = Computed<any, any, any> | Computed<never, any, any> | Computed<any, never, any> | Computed<never, never, any>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A Filtered is essentially a readonly RefSubject that may have its values filtered out.
|
|
36
|
+
* @since 1.20.0
|
|
37
|
+
*/
|
|
38
|
+
export interface Filtered<out R, out E, out A> extends Versioned.Versioned<R, E, R | Scope.Scope, E, A, R, E | Cause.NoSuchElementException, A> {
|
|
39
|
+
readonly [FilteredTypeId]: FilteredTypeId;
|
|
62
40
|
/**
|
|
63
|
-
*
|
|
64
|
-
* @since 1.18.0
|
|
41
|
+
* @since 1.20.0
|
|
65
42
|
*/
|
|
66
|
-
|
|
43
|
+
asComputed(): Computed<R, E, Option.Option<A>>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @since 1.20.0
|
|
47
|
+
*/
|
|
48
|
+
export declare namespace Filtered {
|
|
67
49
|
/**
|
|
68
|
-
*
|
|
69
|
-
* The key difference is it will allow running a workflow and setting the value multiple times. Optionally,
|
|
70
|
-
* another function can be provided to change the value
|
|
71
|
-
* @since 1.18.0
|
|
50
|
+
* @since 1.20.0
|
|
72
51
|
*/
|
|
73
|
-
|
|
52
|
+
type Any = Filtered<any, any, any> | Filtered<never, any, any> | Filtered<any, never, any> | Filtered<never, never, any>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A RefSubject is a Subject that can be used to read and write a value.
|
|
56
|
+
* @since 1.20.0
|
|
57
|
+
*/
|
|
58
|
+
export interface RefSubject<out R, in out E, in out A> extends Computed<R, E, A>, Subject.Subject<R, E, A> {
|
|
59
|
+
readonly [RefSubjectTypeId]: RefSubjectTypeId;
|
|
74
60
|
/**
|
|
75
|
-
*
|
|
61
|
+
* @since 1.20.0
|
|
76
62
|
*/
|
|
77
|
-
readonly
|
|
63
|
+
readonly runUpdates: <R2, E2, B>(f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<R2, E2, B>) => Effect.Effect<R | R2, E2, B>;
|
|
78
64
|
}
|
|
79
65
|
/**
|
|
80
|
-
* @since 1.
|
|
66
|
+
* @since 1.20.0
|
|
81
67
|
*/
|
|
82
68
|
export declare namespace RefSubject {
|
|
83
69
|
/**
|
|
84
|
-
* @since 1.
|
|
70
|
+
* @since 1.20.0
|
|
85
71
|
*/
|
|
86
72
|
type Any = RefSubject<any, any, any> | RefSubject<never, any, any> | RefSubject<any, never, any> | RefSubject<never, never, any>;
|
|
87
73
|
/**
|
|
88
|
-
*
|
|
89
|
-
* @since 1.18.0
|
|
90
|
-
* @category models
|
|
74
|
+
* @since 1.20.0
|
|
91
75
|
*/
|
|
92
76
|
interface Tagged<I, E, A> extends RefSubject<I, E, A> {
|
|
93
|
-
readonly tag: C.Tagged<I, RefSubject<never, E, A>>;
|
|
94
|
-
/**
|
|
95
|
-
* Make a layer initializing a RefSubject
|
|
96
|
-
* @since 1.18.0
|
|
97
|
-
*/
|
|
98
|
-
readonly make: <R = never>(fx: Exclude<Fx.FxInput<R, E, A>, Iterable<A>>, eq?: Equivalence<A>) => Layer.Layer<R, never, I>;
|
|
99
77
|
/**
|
|
100
|
-
*
|
|
101
|
-
* @since 1.18.0
|
|
78
|
+
* @since 1.20.0
|
|
102
79
|
*/
|
|
103
|
-
readonly
|
|
104
|
-
/**
|
|
105
|
-
* Provide an implementation of this RefSubject
|
|
106
|
-
* @since 1.18.0
|
|
107
|
-
*/
|
|
108
|
-
readonly provide: <R2>(fx: Fx.FxInput<R2, E, A>, eq?: Equivalence<A>) => <R3, E3, C>(effect: Effect.Effect<R3, E3, C>) => Effect.Effect<R2 | Exclude<R3, I> | Scope.Scope, E | E3, C>;
|
|
80
|
+
readonly tag: C.Tagged<I, RefSubject<never, E, A>>;
|
|
109
81
|
/**
|
|
110
|
-
*
|
|
111
|
-
* @since 1.18.0
|
|
82
|
+
* @since 1.20.0
|
|
112
83
|
*/
|
|
113
|
-
readonly
|
|
84
|
+
readonly make: <R>(fxOrEffect: Fx<R, E, A> | Effect.Effect<R, E, A>) => Layer.Layer<R, never, I>;
|
|
114
85
|
}
|
|
115
86
|
/**
|
|
116
87
|
* A Contextual wrapper around a RefSubject
|
|
117
88
|
* @since 1.18.0
|
|
118
89
|
* @category models
|
|
119
90
|
*/
|
|
120
|
-
interface Derived<
|
|
121
|
-
readonly persist: Effect.Effect<
|
|
91
|
+
interface Derived<R, E, A> extends RefSubject<R, E, A> {
|
|
92
|
+
readonly persist: Effect.Effect<R, never, void>;
|
|
122
93
|
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* @since 1.20.0
|
|
97
|
+
*/
|
|
98
|
+
export type Context<T> = Fx.Context<T>;
|
|
99
|
+
/**
|
|
100
|
+
* @since 1.20.0
|
|
101
|
+
*/
|
|
102
|
+
export type Error<T> = Fx.Error<T>;
|
|
103
|
+
/**
|
|
104
|
+
* @since 1.20.0
|
|
105
|
+
*/
|
|
106
|
+
export type Success<T> = Fx.Success<T>;
|
|
107
|
+
/**
|
|
108
|
+
* @since 1.20.0
|
|
109
|
+
*/
|
|
110
|
+
export interface RefSubjectOptions<A> {
|
|
111
|
+
readonly eq?: Equivalence.Equivalence<A>;
|
|
112
|
+
readonly replay?: number;
|
|
113
|
+
readonly executionStrategy?: ExecutionStrategy.ExecutionStrategy;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @since 1.20.0
|
|
117
|
+
*/
|
|
118
|
+
export declare function fromEffect<R, E, A>(effect: Effect.Effect<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A>>;
|
|
119
|
+
/**
|
|
120
|
+
* @since 1.20.0
|
|
121
|
+
*/
|
|
122
|
+
export declare function fromFx<R, E, A>(fx: Fx<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A>>;
|
|
123
|
+
/**
|
|
124
|
+
* @since 1.20.0
|
|
125
|
+
*/
|
|
126
|
+
export declare function fromRefSubject<R, E, A>(ref: RefSubject<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject.Derived<never, E, A>>;
|
|
127
|
+
/**
|
|
128
|
+
* @since 1.20.0
|
|
129
|
+
*/
|
|
130
|
+
export declare const make: {
|
|
131
|
+
<R, E, A>(ref: RefSubject<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject.Derived<never, E, A>>;
|
|
132
|
+
<R, E, A>(fxOrEffect: Fx<R, E, A> | Effect.Effect<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A>>;
|
|
133
|
+
<R, E, A>(fxOrEffect: Fx<R, E, A> | Effect.Effect<R, E, A> | RefSubject<R, E, A>, options?: RefSubjectOptions<A>): Effect.Effect<R | Scope.Scope, never, RefSubject<never, E, A> | RefSubject.Derived<never, E, A>>;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* @since 1.20.0
|
|
137
|
+
*/
|
|
138
|
+
export declare function of<A, E = never>(a: A, options?: RefSubjectOptions<A>): Effect.Effect<Scope.Scope, never, RefSubject<never, E, A>>;
|
|
139
|
+
/**
|
|
140
|
+
* @since 1.20.0
|
|
141
|
+
*/
|
|
142
|
+
export declare function unsafeMake<E, A>(params: {
|
|
143
|
+
readonly id: FiberId.FiberId;
|
|
144
|
+
readonly initial: Effect.Effect<never, E, A>;
|
|
145
|
+
readonly options?: RefSubjectOptions<A> | undefined;
|
|
146
|
+
readonly scope: Scope.CloseableScope;
|
|
147
|
+
readonly initialValue?: A;
|
|
148
|
+
}): Effect.Effect<never, never, RefSubject<never, E, A>>;
|
|
149
|
+
/**
|
|
150
|
+
* @since 1.20.0
|
|
151
|
+
*/
|
|
152
|
+
export declare const set: {
|
|
153
|
+
<A>(value: A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R, E, A>;
|
|
154
|
+
<R, E, A>(ref: RefSubject<R, E, A>, a: A): Effect.Effect<R, E, A>;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* @since 1.20.0
|
|
158
|
+
*/
|
|
159
|
+
export declare function reset<R, E, A>(ref: RefSubject<R, E, A>): Effect.Effect<R, E, Option.Option<A>>;
|
|
160
|
+
/**
|
|
161
|
+
* @since 1.20.0
|
|
162
|
+
*/
|
|
163
|
+
export {
|
|
164
|
+
/**
|
|
165
|
+
* @since 1.20.0
|
|
166
|
+
*/
|
|
167
|
+
reset as delete };
|
|
168
|
+
/**
|
|
169
|
+
* @since 1.20.0
|
|
170
|
+
*/
|
|
171
|
+
export interface GetSetDelete<R, E, A> {
|
|
123
172
|
/**
|
|
124
|
-
*
|
|
125
|
-
* @since 1.18.0
|
|
173
|
+
* @since 1.20.0
|
|
126
174
|
*/
|
|
127
|
-
|
|
175
|
+
readonly get: Effect.Effect<R, E, A>;
|
|
128
176
|
/**
|
|
129
|
-
*
|
|
130
|
-
* @since 1.18.0
|
|
177
|
+
* @since 1.20.0
|
|
131
178
|
*/
|
|
132
|
-
|
|
179
|
+
readonly set: (a: A) => Effect.Effect<R, never, A>;
|
|
133
180
|
/**
|
|
134
|
-
*
|
|
135
|
-
* @since 1.18.0
|
|
181
|
+
* @since 1.20.0
|
|
136
182
|
*/
|
|
137
|
-
|
|
183
|
+
readonly delete: Effect.Effect<R, E, Option.Option<A>>;
|
|
138
184
|
}
|
|
139
185
|
/**
|
|
140
|
-
*
|
|
141
|
-
* @since 1.18.0
|
|
186
|
+
* @since 1.20.0
|
|
142
187
|
*/
|
|
143
|
-
export
|
|
188
|
+
export declare const updateEffect: {
|
|
189
|
+
<A, R2, E2>(f: (value: A) => Effect.Effect<R2, E2, A>): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R | R2, E | E2, A>;
|
|
190
|
+
<R, E, A, R2, E2>(ref: RefSubject<R, E, A>, f: (value: A) => Effect.Effect<R2, E2, A>): Effect.Effect<R | R2, E | E2, A>;
|
|
191
|
+
};
|
|
144
192
|
/**
|
|
145
|
-
*
|
|
146
|
-
* @since 1.18.0
|
|
193
|
+
* @since 1.20.0
|
|
147
194
|
*/
|
|
148
|
-
export
|
|
195
|
+
export declare const update: {
|
|
196
|
+
<A>(f: (value: A) => A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R, E, A>;
|
|
197
|
+
<R, E, A>(ref: RefSubject<R, E, A>, f: (value: A) => A): Effect.Effect<R, E, A>;
|
|
198
|
+
};
|
|
149
199
|
/**
|
|
150
|
-
*
|
|
151
|
-
* @since 1.18.0
|
|
200
|
+
* @since 1.20.0
|
|
152
201
|
*/
|
|
153
|
-
export
|
|
202
|
+
export declare const modifyEffect: {
|
|
203
|
+
<A, R2, E2, B>(f: (value: A) => Effect.Effect<R2, E2, readonly [B, A]>): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R | R2, E | E2, B>;
|
|
204
|
+
<R, E, A, R2, E2, B>(ref: RefSubject<R, E, A>, f: (value: A) => Effect.Effect<R2, E2, readonly [B, A]>): Effect.Effect<R | R2, E | E2, B>;
|
|
205
|
+
};
|
|
154
206
|
/**
|
|
155
|
-
*
|
|
156
|
-
* @since 1.18.0
|
|
157
|
-
* @category constructors
|
|
207
|
+
* @since 1.20.0
|
|
158
208
|
*/
|
|
159
|
-
export declare
|
|
209
|
+
export declare const modify: {
|
|
210
|
+
<A, B>(f: (value: A) => readonly [B, A]): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<R, E, B>;
|
|
211
|
+
<R, E, A, B>(ref: RefSubject<R, E, A>, f: (value: A) => readonly [B, A]): Effect.Effect<R, E, B>;
|
|
212
|
+
};
|
|
160
213
|
/**
|
|
161
|
-
*
|
|
162
|
-
* @since 1.18.0
|
|
163
|
-
* @category constructors
|
|
214
|
+
* @since 1.20.0
|
|
164
215
|
*/
|
|
165
|
-
export declare
|
|
216
|
+
export declare const runUpdates: {
|
|
217
|
+
<R, E, A, R2, E2, B, R3 = never, E3 = never, C = never>(f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<R2, E2, B>, options?: {
|
|
218
|
+
readonly onInterrupt: (value: A) => Effect.Effect<R3, E3, C>;
|
|
219
|
+
readonly value?: "initial" | "current";
|
|
220
|
+
} | undefined): (ref: RefSubject<R, E, A>) => Effect.Effect<R | R2 | R3, E | E2 | E3, B>;
|
|
221
|
+
<R, E, A, R2, E2, B, R3 = never, E3 = never, C = never>(ref: RefSubject<R, E, A>, f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<R2, E2, B>, options?: {
|
|
222
|
+
readonly onInterrupt: (value: A) => Effect.Effect<R3, E3, C>;
|
|
223
|
+
readonly value?: "initial" | "current";
|
|
224
|
+
} | undefined): Effect.Effect<R | R2 | R3, E | E2 | E3, B>;
|
|
225
|
+
};
|
|
166
226
|
/**
|
|
167
|
-
*
|
|
168
|
-
* @since 1.18.0
|
|
169
|
-
* @category constructors
|
|
227
|
+
* @since 1.20.0
|
|
170
228
|
*/
|
|
171
|
-
export declare
|
|
229
|
+
export declare const mapEffect: {
|
|
230
|
+
<A, R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, B>): {
|
|
231
|
+
<R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Computed<R | R2, E | E2, B>;
|
|
232
|
+
<R, E>(ref: Filtered<R, E, A>): Filtered<R | R2, E | E2, B>;
|
|
233
|
+
<R0, E0, R, E, R2, E2, C>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R2, E2, C>): Computed<R0 | R2, E0 | E | E2, C>;
|
|
234
|
+
};
|
|
235
|
+
<R, E, A, R2, E2, B>(ref: RefSubject<R, E, A> | Computed<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, B>): Computed<R | R2, E | E2, B>;
|
|
236
|
+
<R, E, A, R2, E2, B>(ref: Filtered<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, B>): Filtered<R | R2, E | E2, B>;
|
|
237
|
+
<R0, E0, R, E, A, R2, E2, R3, E3, C>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R3, E3, C>): Computed<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, C>;
|
|
238
|
+
};
|
|
172
239
|
/**
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
* @since 1.18.0
|
|
176
|
-
* @category constructors
|
|
240
|
+
* @since 1.20.0
|
|
177
241
|
*/
|
|
178
|
-
export declare
|
|
179
|
-
|
|
242
|
+
export declare const map: {
|
|
243
|
+
<A, B>(f: (a: A) => B): {
|
|
244
|
+
<R, E>(ref: RefSubject<R, E, A>): Computed<R, E, B>;
|
|
245
|
+
<R, E>(ref: Computed<R, E, A>): Computed<R, E, B>;
|
|
246
|
+
<R, E>(ref: Filtered<R, E, A>): Filtered<R, E, B>;
|
|
247
|
+
<R0, E0, R, E, R2, E2>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => B): Computed<R0 | R2, E0 | E | E2, B>;
|
|
248
|
+
};
|
|
249
|
+
<R, E, A, B>(ref: RefSubject<R, E, A> | Computed<R, E, A>, f: (a: A) => B): Computed<R, E, B>;
|
|
250
|
+
<R, E, A, B>(filtered: Filtered<R, E, A>, f: (a: A) => B): Filtered<R, E, B>;
|
|
251
|
+
<R0, E0, R, E, A, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => B): Computed<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | E2, B> | Filtered<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | E2, B>;
|
|
252
|
+
};
|
|
180
253
|
/**
|
|
181
|
-
*
|
|
182
|
-
* a Ref Subject.
|
|
183
|
-
* @since 1.18.0
|
|
184
|
-
* @category constructors
|
|
254
|
+
* @since 1.20.0
|
|
185
255
|
*/
|
|
186
|
-
export declare
|
|
187
|
-
<
|
|
188
|
-
|
|
256
|
+
export declare const filterMapEffect: {
|
|
257
|
+
<A, R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>): {
|
|
258
|
+
<R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Filtered<R | R2, E | E2, B>;
|
|
259
|
+
<R, E>(ref: Filtered<R, E, A>): Filtered<R | R2, E | E2, B>;
|
|
260
|
+
<R0, E0, R, E, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>): Filtered<R0 | R2, E0 | E | E2, B>;
|
|
261
|
+
};
|
|
262
|
+
<R, E, A, R2, E2, B>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>): Filtered<R | R2, E | E2, B>;
|
|
263
|
+
<R0, E0, R, E, A, R2, E2, B, R3, E3>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R3, E3, Option.Option<B>>): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, B>;
|
|
189
264
|
};
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
265
|
+
/**
|
|
266
|
+
* @since 1.20.0
|
|
267
|
+
*/
|
|
268
|
+
export declare const filterMap: {
|
|
269
|
+
<A, B>(f: (a: A) => Option.Option<B>): {
|
|
270
|
+
<R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>): Filtered<R, E, B>;
|
|
271
|
+
<R0, E0, R, E, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Option.Option<B>): Filtered<R0 | R2, E0 | E | E2, B>;
|
|
272
|
+
};
|
|
273
|
+
<R0, E0, R, E, A, R2, E2, B>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Option.Option<B>): Filtered<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | E2, B>;
|
|
274
|
+
<R, E, A, B>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => Option.Option<B>): Filtered<R, E, B>;
|
|
193
275
|
};
|
|
194
276
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* @since 1.18.0
|
|
198
|
-
* @category constructors
|
|
277
|
+
* @since 1.20.0
|
|
199
278
|
*/
|
|
200
|
-
export declare
|
|
201
|
-
|
|
279
|
+
export declare const compact: {
|
|
280
|
+
<R, E, A>(ref: RefSubject<R, E, Option.Option<A>> | Computed<R, E, Option.Option<A>>): Filtered<R, E, A>;
|
|
281
|
+
<R, E, A>(ref: Filtered<R, E, Option.Option<A>>): Filtered<R, E, A>;
|
|
282
|
+
<R0, E0, R, E, A, R2, E2>(versioned: Versioned.Versioned<R0, E0, R, E, Option.Option<A>, R2, E2, Option.Option<A>>): Filtered<R0 | R2 | Exclude<R, Scope.Scope>, E0 | E | Exclude<E, Cause.NoSuchElementException> | Exclude<E2, Cause.NoSuchElementException>, A>;
|
|
283
|
+
};
|
|
202
284
|
/**
|
|
203
|
-
*
|
|
204
|
-
* @since 1.18.0
|
|
205
|
-
* @category constructors
|
|
285
|
+
* @since 1.20.0
|
|
206
286
|
*/
|
|
207
|
-
export declare const
|
|
287
|
+
export declare const filterEffect: {
|
|
288
|
+
<R, E, A, R2, E2>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => Effect.Effect<R2, E2, boolean>): Filtered<R | R2, E | E2, A>;
|
|
289
|
+
<R0, E0, R, E, A, R2, E2, R3, E3>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => Effect.Effect<R3, E3, boolean>): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, A>;
|
|
290
|
+
};
|
|
208
291
|
/**
|
|
209
|
-
*
|
|
210
|
-
|
|
211
|
-
|
|
292
|
+
* @since 1.20.0
|
|
293
|
+
*/
|
|
294
|
+
export declare const filter: {
|
|
295
|
+
<A>(f: (a: A) => boolean): {
|
|
296
|
+
<R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>): Filtered<R, E, A>;
|
|
297
|
+
<R0, E0, R, E, R2, E2>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => boolean): Filtered<R0 | R2, E0 | E | E2, A>;
|
|
298
|
+
};
|
|
299
|
+
<R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, f: (a: A) => boolean): Filtered<R, E, A>;
|
|
300
|
+
<R0, E0, R, E, A, R2, E2, R3, E3>(versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>, f: (a: A) => boolean): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, A>;
|
|
301
|
+
};
|
|
302
|
+
/**
|
|
303
|
+
* @since 1.20.0
|
|
212
304
|
*/
|
|
213
|
-
export declare const
|
|
305
|
+
export declare const skipRepeatsWith: {
|
|
306
|
+
<A>(eq: Equivalence.Equivalence<A>): {
|
|
307
|
+
<R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Computed<R, E, A>;
|
|
308
|
+
<R, E>(ref: Filtered<R, E, A>): Filtered<R, E, A>;
|
|
309
|
+
};
|
|
310
|
+
<R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A>, eq: Equivalence.Equivalence<A>): Computed<R, E, A>;
|
|
311
|
+
<R, E, A>(ref: Filtered<R, E, A>, eq: Equivalence.Equivalence<A>): Filtered<R, E, A>;
|
|
312
|
+
<R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>, eq: Equivalence.Equivalence<A>): Computed<R, E, A> | Filtered<R, E, A>;
|
|
313
|
+
};
|
|
214
314
|
/**
|
|
215
|
-
*
|
|
216
|
-
* success values separately.
|
|
217
|
-
* @since 1.18.0
|
|
218
|
-
* @category combinators
|
|
315
|
+
* @since 1.20.0
|
|
219
316
|
*/
|
|
220
|
-
export declare
|
|
317
|
+
export declare function skipRepeats<R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Computed<R, E, A>;
|
|
318
|
+
export declare function skipRepeats<R, E, A>(ref: Filtered<R, E, A>): Filtered<R, E, A>;
|
|
319
|
+
export declare function skipRepeats<R, E, A>(ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>): Computed<R, E, A> | Filtered<R, E, A>;
|
|
221
320
|
/**
|
|
222
|
-
*
|
|
223
|
-
|
|
321
|
+
* @since 1.20.0
|
|
322
|
+
*/
|
|
323
|
+
export declare function transform<R, E, A, B>(ref: RefSubject<R, E, A>, from: (a: A) => B, to: (b: B) => A): RefSubject<R, E, B>;
|
|
324
|
+
/**
|
|
325
|
+
* @since 1.20.0
|
|
326
|
+
*/
|
|
327
|
+
export declare function transformOrFail<R, E, R2, E2, A, R3, E3, B>(ref: RefSubject<R, E, A>, from: (a: A) => Effect.Effect<R2, E2, B>, to: (b: B) => Effect.Effect<R3, E3, A>): RefSubject<R | R2 | R3, E | E2 | E3, B>;
|
|
328
|
+
/**
|
|
329
|
+
* @since 1.20.0
|
|
330
|
+
*/
|
|
331
|
+
export declare function tuple<const Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>>(refs: Refs): TupleFrom<Refs>;
|
|
332
|
+
type RefKind = "r" | "c" | "f";
|
|
333
|
+
/**
|
|
334
|
+
* @since 1.20.0
|
|
335
|
+
*/
|
|
336
|
+
export type TupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = {
|
|
337
|
+
"c": [ComputedTupleFrom<Refs>] extends [Computed<infer R, infer E, infer A>] ? Computed<R, E, A> : never;
|
|
338
|
+
"f": [FilteredTupleFrom<Refs>] extends [Filtered<infer R, infer E, infer A>] ? Filtered<R, E, A> : never;
|
|
339
|
+
"r": [RefSubjectTupleFrom<Refs>] extends [RefSubject<infer R, infer E, infer A>] ? RefSubject<R, E, A> : never;
|
|
340
|
+
}[GetTupleKind<Refs>];
|
|
341
|
+
type Ref = RefSubject.Any | Computed.Any | Filtered.Any;
|
|
342
|
+
/**
|
|
343
|
+
* @since 1.20.0
|
|
344
|
+
*/
|
|
345
|
+
export type GetTupleKind<Refs extends ReadonlyArray<Ref>, Kind extends RefKind = "r"> = Refs extends readonly [infer Head extends Ref, ...infer Tail extends ReadonlyArray<Ref>] ? GetTupleKind<Tail, MergeKind<Kind, MatchKind<Head>>> : Kind;
|
|
346
|
+
/**
|
|
347
|
+
* @since 1.20.0
|
|
348
|
+
*/
|
|
349
|
+
export type MatchKind<T extends Ref> = [T] extends [Filtered.Any] ? "f" : [T] extends [RefSubject.Any] ? "r" : "c";
|
|
350
|
+
type MergeKind<A extends RefKind, B extends RefKind> = A extends "f" ? A : B extends "f" ? B : A extends "r" ? B : B extends "r" ? A : "c";
|
|
351
|
+
type FilteredTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = Filtered<Effect.Effect.Context<Refs[number]>, Fx.Error<Refs[number]>, {
|
|
352
|
+
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
|
|
353
|
+
}>;
|
|
354
|
+
type ComputedTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = Computed<Effect.Effect.Context<Refs[number]>, Effect.Effect.Error<Refs[number]>, {
|
|
355
|
+
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
|
|
356
|
+
}>;
|
|
357
|
+
type RefSubjectTupleFrom<Refs extends ReadonlyArray<RefSubject<any, any, any> | Computed<any, any, any> | Filtered<any, any, any>>> = RefSubject<Effect.Effect.Context<Refs[number]>, Effect.Effect.Error<Refs[number]>, {
|
|
358
|
+
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
|
|
359
|
+
}>;
|
|
360
|
+
/**
|
|
361
|
+
* @since 1.20.0
|
|
224
362
|
*/
|
|
225
|
-
export
|
|
226
|
-
|
|
227
|
-
<
|
|
228
|
-
<
|
|
229
|
-
<
|
|
230
|
-
|
|
231
|
-
|
|
363
|
+
export declare function struct<const Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>>(refs: Refs): StructFrom<Refs>;
|
|
364
|
+
type StructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = {
|
|
365
|
+
"c": [ComputedStructFrom<Refs>] extends [Computed<infer R, infer E, infer A>] ? Computed<R, E, A> : never;
|
|
366
|
+
"f": [FilteredStructFrom<Refs>] extends [Filtered<infer R, infer E, infer A>] ? Filtered<R, E, A> : never;
|
|
367
|
+
"r": [RefSubjectStructFrom<Refs>] extends [RefSubject<infer R, infer E, infer A>] ? RefSubject<R, E, A> : never;
|
|
368
|
+
}[GetStructKind<Refs>];
|
|
369
|
+
/**
|
|
370
|
+
* @since 1.20.0
|
|
371
|
+
*/
|
|
372
|
+
export type GetStructKind<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = MergeKinds<UnionToTuple<{
|
|
373
|
+
[K in keyof Refs]: MatchKind<Refs[K]>;
|
|
374
|
+
}[keyof Refs]>>;
|
|
375
|
+
type MergeKinds<Kinds extends ReadonlyArray<any>> = Kinds extends readonly [infer Head extends RefKind, ...infer Tail extends ReadonlyArray<RefKind>] ? MergeKind<Head, MergeKinds<Tail>> : "r";
|
|
376
|
+
type FilteredStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = Filtered<Effect.Effect.Context<Refs[keyof Refs]>, Fx.Error<Refs[keyof Refs]>, {
|
|
377
|
+
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
|
|
378
|
+
}>;
|
|
379
|
+
type ComputedStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = Computed<Effect.Effect.Context<Refs[keyof Refs]>, Effect.Effect.Error<Refs[keyof Refs]>, {
|
|
380
|
+
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
|
|
381
|
+
}>;
|
|
382
|
+
type RefSubjectStructFrom<Refs extends Readonly<Record<string, RefSubject.Any | Computed.Any | Filtered.Any>>> = RefSubject<Effect.Effect.Context<Refs[keyof Refs]>, Effect.Effect.Error<Refs[keyof Refs]>, {
|
|
383
|
+
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>;
|
|
384
|
+
}>;
|
|
385
|
+
/**
|
|
386
|
+
* @since 1.20.0
|
|
387
|
+
*/
|
|
388
|
+
export declare function tagged<E, A>(replay?: number): {
|
|
389
|
+
<const I extends C.IdentifierFactory<any>>(identifier: I): RefSubject.Tagged<C.IdentifierOf<I>, E, A>;
|
|
390
|
+
<const I>(identifier: I): RefSubject.Tagged<C.IdentifierOf<I>, E, A>;
|
|
232
391
|
};
|
|
233
392
|
/**
|
|
234
|
-
*
|
|
235
|
-
* the ouput value is a Record as well.
|
|
236
|
-
* @since 1.18.0
|
|
393
|
+
* @since 1.20.0
|
|
237
394
|
*/
|
|
238
|
-
export
|
|
239
|
-
readonly [K in keyof O]: ToRefSubject<E, O[K]>;
|
|
240
|
-
} : RefSubject<never, E, O>;
|
|
395
|
+
export declare function fromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => RefSubject<R, E, A>): RefSubject<I | R, E, A>;
|
|
241
396
|
/**
|
|
242
|
-
*
|
|
243
|
-
|
|
244
|
-
|
|
397
|
+
* @since 1.20.0
|
|
398
|
+
*/
|
|
399
|
+
export declare function isRefSubject<R, E, A>(u: unknown): u is RefSubject<R, E, A>;
|
|
400
|
+
export declare function isRefSubject(u: unknown): u is RefSubject.Any;
|
|
401
|
+
/**
|
|
402
|
+
* @since 1.20.0
|
|
403
|
+
*/
|
|
404
|
+
export declare function isComputed<R, E, A>(u: unknown): u is Computed<R, E, A>;
|
|
405
|
+
export declare function isComputed(u: unknown): u is Computed.Any;
|
|
406
|
+
/**
|
|
407
|
+
* @since 1.20.0
|
|
408
|
+
*/
|
|
409
|
+
export declare function isFiltered<R, E, A>(u: unknown): u is Filtered<R, E, A>;
|
|
410
|
+
export declare function isFiltered(u: unknown): u is Filtered.Any;
|
|
411
|
+
/**
|
|
412
|
+
* @since 1.20.0
|
|
413
|
+
*/
|
|
414
|
+
export declare function isDerived<R, E, A>(u: unknown): u is RefSubject.Derived<R, E, A>;
|
|
415
|
+
export declare function isDerived(u: unknown): u is RefSubject.Derived<unknown, unknown, unknown>;
|
|
416
|
+
/**
|
|
417
|
+
* @since 1.20.0
|
|
418
|
+
*/
|
|
419
|
+
export declare function computedFromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => Computed<R, E, A>): Computed<I | R, E, A>;
|
|
420
|
+
/**
|
|
421
|
+
* @since 1.20.0
|
|
422
|
+
*/
|
|
423
|
+
export declare function filteredFromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => Filtered<R, E, A>): Filtered<I | R, E, A>;
|
|
424
|
+
/**
|
|
425
|
+
* @since 1.20.0
|
|
245
426
|
*/
|
|
246
|
-
export
|
|
247
|
-
|
|
427
|
+
export declare const provide: {
|
|
428
|
+
<S>(context: C.Context<S> | Runtime.Runtime<S>): {
|
|
429
|
+
<R, E, A>(filtered: Filtered<R, E, A>): Filtered<Exclude<R, S>, E, A>;
|
|
430
|
+
<R, E, A>(computed: Computed<R, E, A>): Computed<Exclude<R, S>, E, A>;
|
|
431
|
+
<R, E, A>(ref: RefSubject<R, E, A>): RefSubject<Exclude<R, S>, E, A>;
|
|
432
|
+
};
|
|
433
|
+
<R2, S>(layer: Layer.Layer<R2, never, S>): {
|
|
434
|
+
<R, E, A>(filtered: Filtered<R, E, A>): Filtered<Exclude<R, S> | R2, E, A>;
|
|
435
|
+
<R, E, A>(computed: Computed<R, E, A>): Computed<Exclude<R, S> | R2, E, A>;
|
|
436
|
+
<R, E, A>(ref: RefSubject<R, E, A>): RefSubject<Exclude<R, S> | R2, E, A>;
|
|
437
|
+
};
|
|
438
|
+
<R, E, A, S>(filtered: Filtered<R, E, A>, context: C.Context<S> | Runtime.Runtime<S>): Filtered<Exclude<R, S>, E, A>;
|
|
439
|
+
<R, E, A, S>(computed: Computed<R, E, A>, context: C.Context<S> | Runtime.Runtime<S>): Computed<Exclude<R, S>, E, A>;
|
|
440
|
+
<R, E, A, S>(ref: RefSubject<R, E, A>, context: C.Context<S> | Runtime.Runtime<S>): RefSubject<Exclude<R, S>, E, A>;
|
|
441
|
+
<R, E, A, R2, S>(filtered: Filtered<R, E, A>, layer: Layer.Layer<R2, never, S>): Filtered<Exclude<R, S> | R2, E, A>;
|
|
442
|
+
<R, E, A, R2, S>(computed: Computed<R, E, A>, layer: Layer.Layer<R2, never, S>): Computed<Exclude<R, S> | R2, E, A>;
|
|
443
|
+
<R, E, A, R2, S>(ref: RefSubject<R, E, A>, layer: Layer.Layer<R2, never, S>): RefSubject<Exclude<R, S> | R2, E, A>;
|
|
248
444
|
};
|
|
249
445
|
/**
|
|
250
|
-
*
|
|
446
|
+
* Set the value to true
|
|
251
447
|
* @since 1.18.0
|
|
252
448
|
*/
|
|
253
|
-
export declare
|
|
449
|
+
export declare const asTrue: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R, E, boolean>;
|
|
254
450
|
/**
|
|
255
|
-
*
|
|
451
|
+
* Set the value to false
|
|
256
452
|
* @since 1.18.0
|
|
257
453
|
*/
|
|
258
|
-
export declare
|
|
454
|
+
export declare const asFalse: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R, E, boolean>;
|
|
259
455
|
/**
|
|
456
|
+
* Toggle the boolean value between true and false
|
|
260
457
|
* @since 1.18.0
|
|
261
458
|
*/
|
|
262
|
-
export declare const
|
|
263
|
-
readonly [K in keyof REFS]: RefSubject.Success<REFS[K]>;
|
|
264
|
-
}>;
|
|
459
|
+
export declare const toggle: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R, E, boolean>;
|
|
265
460
|
/**
|
|
461
|
+
* Set the value to true
|
|
266
462
|
* @since 1.18.0
|
|
267
463
|
*/
|
|
268
|
-
export declare const
|
|
269
|
-
readonly [K in keyof REFS]: RefSubject.Success<REFS[K]>;
|
|
270
|
-
}>;
|
|
464
|
+
export declare const increment: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<R, E, number>;
|
|
271
465
|
/**
|
|
466
|
+
* Set the value to false
|
|
272
467
|
* @since 1.18.0
|
|
273
468
|
*/
|
|
274
|
-
export declare
|
|
469
|
+
export declare const decrement: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<R, E, number>;
|
|
275
470
|
/**
|
|
276
|
-
* @since 1.
|
|
471
|
+
* @since 1.20.0
|
|
472
|
+
*/
|
|
473
|
+
export declare const slice: {
|
|
474
|
+
(drop: number, take: number): <R, E, A>(ref: RefSubject<R, E, A>) => RefSubject<R, E, A>;
|
|
475
|
+
<R, E, A>(ref: RefSubject<R, E, A>, drop: number, take: number): RefSubject<R, E, A>;
|
|
476
|
+
};
|
|
477
|
+
/**
|
|
478
|
+
* @since 1.20.0
|
|
479
|
+
*/
|
|
480
|
+
export declare const drop: {
|
|
481
|
+
(drop: number): <R, E, A>(ref: RefSubject<R, E, A>) => RefSubject<R, E, A>;
|
|
482
|
+
<R, E, A>(ref: RefSubject<R, E, A>, drop: number): RefSubject<R, E, A>;
|
|
483
|
+
};
|
|
484
|
+
/**
|
|
485
|
+
* @since 1.20.0
|
|
277
486
|
*/
|
|
278
|
-
export declare const
|
|
279
|
-
|
|
280
|
-
<R, E, A
|
|
487
|
+
export declare const take: {
|
|
488
|
+
(take: number): <R, E, A>(ref: RefSubject<R, E, A>) => RefSubject<R, E, A>;
|
|
489
|
+
<R, E, A>(ref: RefSubject<R, E, A>, take: number): RefSubject<R, E, A>;
|
|
281
490
|
};
|
|
282
491
|
//# sourceMappingURL=RefSubject.d.ts.map
|