@typed/fx 1.18.4 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AsyncData/package.json +6 -0
- package/Emitter/package.json +6 -0
- package/Form/package.json +6 -0
- package/FormEntry/package.json +6 -0
- package/Fx/package.json +6 -0
- package/Guard/package.json +6 -0
- package/Idle/package.json +6 -0
- package/Match/package.json +6 -0
- package/Pull/package.json +6 -0
- package/Push/package.json +6 -0
- package/RefArray/package.json +6 -0
- package/RefChunk/package.json +6 -0
- package/RefHashMap/package.json +6 -0
- package/RefHashSet/package.json +6 -0
- package/RefSubject/package.json +6 -0
- package/Sink/package.json +6 -0
- package/Stream/package.json +6 -0
- package/Subject/package.json +6 -0
- package/TypeId/package.json +6 -0
- package/Typeclass/package.json +6 -0
- package/Versioned/package.json +6 -0
- package/dist/cjs/AsyncData.js +177 -0
- package/dist/cjs/AsyncData.js.map +1 -0
- package/dist/cjs/Emitter.js +24 -21
- package/dist/cjs/Emitter.js.map +1 -1
- package/dist/cjs/Form.js +78 -21
- package/dist/cjs/Form.js.map +1 -1
- package/dist/cjs/FormEntry.js +75 -48
- package/dist/cjs/FormEntry.js.map +1 -1
- package/dist/cjs/Fx.js +517 -872
- package/dist/cjs/Fx.js.map +1 -1
- package/dist/cjs/Guard.js +21 -13
- package/dist/cjs/Guard.js.map +1 -1
- package/dist/cjs/Idle.js +49 -37
- package/dist/cjs/Idle.js.map +1 -1
- package/dist/cjs/Match.js +99 -61
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/Pull.js.map +1 -1
- package/dist/cjs/Push.js +168 -0
- package/dist/cjs/Push.js.map +1 -0
- package/dist/cjs/RefArray.js +32 -30
- package/dist/cjs/RefArray.js.map +1 -1
- package/dist/cjs/RefChunk.js +26 -24
- package/dist/cjs/RefChunk.js.map +1 -1
- package/dist/cjs/RefHashMap.js +20 -20
- package/dist/cjs/RefHashMap.js.map +1 -1
- package/dist/cjs/RefHashSet.js +11 -8
- package/dist/cjs/RefHashSet.js.map +1 -1
- package/dist/cjs/RefSubject.js +899 -158
- package/dist/cjs/RefSubject.js.map +1 -1
- package/dist/cjs/Sink.js +588 -62
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js +15 -10
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Subject.js +153 -55
- package/dist/cjs/Subject.js.map +1 -1
- package/dist/cjs/TypeId.js +10 -5
- package/dist/cjs/TypeId.js.map +1 -1
- package/dist/cjs/Typeclass.js +28 -31
- package/dist/cjs/Typeclass.js.map +1 -1
- package/dist/cjs/Versioned.js +118 -57
- package/dist/cjs/Versioned.js.map +1 -1
- package/dist/cjs/index.js +44 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/{deferred-ref.js → DeferredRef.js} +45 -13
- package/dist/cjs/internal/DeferredRef.js.map +1 -0
- package/dist/cjs/internal/UnionToTuple.js +6 -0
- package/dist/cjs/internal/UnionToTuple.js.map +1 -0
- package/dist/cjs/internal/core.js +1590 -779
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/diff.js +114 -0
- package/dist/cjs/internal/diff.js.map +1 -0
- package/dist/cjs/internal/effect-loop-operator.js +288 -0
- package/dist/cjs/internal/effect-loop-operator.js.map +1 -0
- package/dist/cjs/internal/effect-operator.js +46 -37
- package/dist/cjs/internal/effect-operator.js.map +1 -1
- package/dist/cjs/internal/effect-producer.js +74 -0
- package/dist/cjs/internal/effect-producer.js.map +1 -0
- package/dist/cjs/internal/helpers.js +158 -128
- package/dist/cjs/internal/helpers.js.map +1 -1
- package/dist/cjs/internal/keyed.js +136 -173
- package/dist/cjs/internal/keyed.js.map +1 -1
- package/dist/cjs/internal/loop-operator.js +213 -0
- package/dist/cjs/internal/loop-operator.js.map +1 -0
- package/dist/cjs/internal/operator.js +79 -0
- package/dist/cjs/internal/operator.js.map +1 -0
- package/dist/cjs/internal/protos.js +19 -81
- package/dist/cjs/internal/protos.js.map +1 -1
- package/dist/cjs/internal/provide.js +47 -25
- package/dist/cjs/internal/provide.js.map +1 -1
- package/dist/cjs/internal/requestIdleCallback.js +5 -5
- package/dist/cjs/internal/requestIdleCallback.js.map +1 -1
- package/dist/cjs/internal/share.js +12 -15
- package/dist/cjs/internal/share.js.map +1 -1
- package/dist/cjs/internal/sync-operator.js +50 -22
- package/dist/cjs/internal/sync-operator.js.map +1 -1
- package/dist/cjs/internal/sync-producer.js +114 -0
- package/dist/cjs/internal/sync-producer.js.map +1 -0
- package/dist/cjs/internal/withKey.js +45 -51
- package/dist/cjs/internal/withKey.js.map +1 -1
- package/dist/dts/AsyncData.d.ts +185 -0
- package/dist/dts/AsyncData.d.ts.map +1 -0
- package/dist/dts/Emitter.d.ts +13 -20
- package/dist/dts/Emitter.d.ts.map +1 -1
- package/dist/dts/Form.d.ts +45 -28
- package/dist/dts/Form.d.ts.map +1 -1
- package/dist/dts/FormEntry.d.ts +25 -13
- package/dist/dts/FormEntry.d.ts.map +1 -1
- package/dist/dts/Fx.d.ts +983 -1387
- package/dist/dts/Fx.d.ts.map +1 -1
- package/dist/dts/Guard.d.ts +8 -1
- package/dist/dts/Guard.d.ts.map +1 -1
- package/dist/dts/Idle.d.ts +3 -3
- package/dist/dts/Idle.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +8 -8
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/Pull.d.ts +5 -5
- package/dist/dts/Pull.d.ts.map +1 -1
- package/dist/dts/Push.d.ts +170 -0
- package/dist/dts/Push.d.ts.map +1 -0
- package/dist/dts/RefArray.d.ts +21 -23
- package/dist/dts/RefArray.d.ts.map +1 -1
- package/dist/dts/RefChunk.d.ts +17 -19
- package/dist/dts/RefChunk.d.ts.map +1 -1
- package/dist/dts/RefHashMap.d.ts +19 -20
- package/dist/dts/RefHashMap.d.ts.map +1 -1
- package/dist/dts/RefHashSet.d.ts +12 -16
- package/dist/dts/RefHashSet.d.ts.map +1 -1
- package/dist/dts/RefSubject.d.ts +396 -187
- package/dist/dts/RefSubject.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +193 -93
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +7 -1
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Subject.d.ts +27 -36
- package/dist/dts/Subject.d.ts.map +1 -1
- package/dist/dts/TypeId.d.ts +10 -0
- package/dist/dts/TypeId.d.ts.map +1 -1
- package/dist/dts/Typeclass.d.ts +2 -2
- package/dist/dts/Typeclass.d.ts.map +1 -1
- package/dist/dts/Versioned.d.ts +50 -78
- package/dist/dts/Versioned.d.ts.map +1 -1
- package/dist/dts/index.d.ts +66 -6
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/DeferredRef.d.ts +20 -0
- package/dist/dts/internal/DeferredRef.d.ts.map +1 -0
- package/dist/dts/internal/UnionToTuple.d.ts +6 -0
- package/dist/dts/internal/UnionToTuple.d.ts.map +1 -0
- package/dist/dts/internal/core.d.ts +218 -450
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/diff.d.ts +38 -0
- package/dist/dts/internal/diff.d.ts.map +1 -0
- package/dist/dts/internal/effect-loop-operator.d.ts +34 -0
- package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -0
- package/dist/dts/internal/effect-operator.d.ts +8 -5
- package/dist/dts/internal/effect-operator.d.ts.map +1 -1
- package/dist/dts/internal/effect-producer.d.ts +25 -0
- package/dist/dts/internal/effect-producer.d.ts.map +1 -0
- package/dist/dts/internal/helpers.d.ts +33 -24
- package/dist/dts/internal/helpers.d.ts.map +1 -1
- package/dist/dts/internal/keyed.d.ts +3 -3
- package/dist/dts/internal/keyed.d.ts.map +1 -1
- package/dist/dts/internal/loop-operator.d.ts +40 -0
- package/dist/dts/internal/loop-operator.d.ts.map +1 -0
- package/dist/dts/internal/operator.d.ts +16 -0
- package/dist/dts/internal/operator.d.ts.map +1 -0
- package/dist/dts/internal/protos.d.ts +16 -43
- package/dist/dts/internal/protos.d.ts.map +1 -1
- package/dist/dts/internal/provide.d.ts +7 -1
- package/dist/dts/internal/provide.d.ts.map +1 -1
- package/dist/dts/internal/share.d.ts +12 -9
- package/dist/dts/internal/share.d.ts.map +1 -1
- package/dist/dts/internal/sync-operator.d.ts +7 -3
- package/dist/dts/internal/sync-operator.d.ts.map +1 -1
- package/dist/dts/internal/sync-producer.d.ts +36 -0
- package/dist/dts/internal/sync-producer.d.ts.map +1 -0
- package/dist/dts/internal/withKey.d.ts +3 -3
- package/dist/dts/internal/withKey.d.ts.map +1 -1
- package/dist/esm/AsyncData.js +151 -0
- package/dist/esm/AsyncData.js.map +1 -0
- package/dist/esm/Emitter.js +24 -21
- package/dist/esm/Emitter.js.map +1 -1
- package/dist/esm/Form.js +69 -14
- package/dist/esm/Form.js.map +1 -1
- package/dist/esm/FormEntry.js +77 -52
- package/dist/esm/FormEntry.js.map +1 -1
- package/dist/esm/Fx.js +509 -874
- package/dist/esm/Fx.js.map +1 -1
- package/dist/esm/Guard.js +5 -1
- package/dist/esm/Guard.js.map +1 -1
- package/dist/esm/Idle.js +49 -39
- package/dist/esm/Idle.js.map +1 -1
- package/dist/esm/Match.js +103 -63
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Pull.js.map +1 -1
- package/dist/esm/Push.js +159 -0
- package/dist/esm/Push.js.map +1 -0
- package/dist/esm/RefArray.js +32 -30
- package/dist/esm/RefArray.js.map +1 -1
- package/dist/esm/RefChunk.js +26 -24
- package/dist/esm/RefChunk.js.map +1 -1
- package/dist/esm/RefHashMap.js +20 -20
- package/dist/esm/RefHashMap.js.map +1 -1
- package/dist/esm/RefHashSet.js +11 -8
- package/dist/esm/RefHashSet.js.map +1 -1
- package/dist/esm/RefSubject.js +873 -150
- package/dist/esm/RefSubject.js.map +1 -1
- package/dist/esm/Sink.js +608 -57
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js +13 -9
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Subject.js +151 -56
- package/dist/esm/Subject.js.map +1 -1
- package/dist/esm/TypeId.js +9 -4
- package/dist/esm/TypeId.js.map +1 -1
- package/dist/esm/Typeclass.js +29 -29
- package/dist/esm/Typeclass.js.map +1 -1
- package/dist/esm/Versioned.js +110 -53
- package/dist/esm/Versioned.js.map +1 -1
- package/dist/esm/index.js +66 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/DeferredRef.js +54 -0
- package/dist/esm/internal/DeferredRef.js.map +1 -0
- package/dist/esm/internal/UnionToTuple.js +2 -0
- package/dist/esm/internal/UnionToTuple.js.map +1 -0
- package/dist/esm/internal/core.js +1439 -719
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/diff.js +82 -0
- package/dist/esm/internal/diff.js.map +1 -0
- package/dist/esm/internal/effect-loop-operator.js +269 -0
- package/dist/esm/internal/effect-loop-operator.js.map +1 -0
- package/dist/esm/internal/effect-operator.js +44 -37
- package/dist/esm/internal/effect-operator.js.map +1 -1
- package/dist/esm/internal/effect-producer.js +47 -0
- package/dist/esm/internal/effect-producer.js.map +1 -0
- package/dist/esm/internal/helpers.js +157 -129
- package/dist/esm/internal/helpers.js.map +1 -1
- package/dist/esm/internal/keyed.js +128 -139
- package/dist/esm/internal/keyed.js.map +1 -1
- package/dist/esm/internal/loop-operator.js +186 -0
- package/dist/esm/internal/loop-operator.js.map +1 -0
- package/dist/esm/internal/operator.js +68 -0
- package/dist/esm/internal/operator.js.map +1 -0
- package/dist/esm/internal/protos.js +16 -75
- package/dist/esm/internal/protos.js.map +1 -1
- package/dist/esm/internal/provide.js +33 -25
- package/dist/esm/internal/provide.js.map +1 -1
- package/dist/esm/internal/requestIdleCallback.js +5 -5
- package/dist/esm/internal/requestIdleCallback.js.map +1 -1
- package/dist/esm/internal/share.js +12 -12
- package/dist/esm/internal/share.js.map +1 -1
- package/dist/esm/internal/sync-operator.js +49 -21
- package/dist/esm/internal/sync-operator.js.map +1 -1
- package/dist/esm/internal/sync-producer.js +88 -0
- package/dist/esm/internal/sync-producer.js.map +1 -0
- package/dist/esm/internal/withKey.js +46 -47
- package/dist/esm/internal/withKey.js.map +1 -1
- package/package.json +22 -62
- package/src/AsyncData.ts +447 -0
- package/src/Emitter.ts +47 -38
- package/src/Form.ts +185 -65
- package/src/FormEntry.ts +142 -109
- package/src/Fx.ts +1685 -1851
- package/src/Guard.ts +12 -1
- package/src/Idle.ts +76 -62
- package/src/Match.ts +149 -93
- package/src/Pull.ts +8 -8
- package/src/Push.ts +472 -0
- package/src/RefArray.ts +53 -51
- package/src/RefChunk.ts +44 -41
- package/src/RefHashMap.ts +57 -43
- package/src/RefHashSet.ts +21 -31
- package/src/RefSubject.ts +1984 -457
- package/src/Sink.ts +922 -171
- package/src/Stream.ts +32 -20
- package/src/Subject.ts +230 -87
- package/src/TypeId.ts +16 -4
- package/src/Typeclass.ts +31 -32
- package/src/Versioned.ts +220 -168
- package/src/index.ts +78 -6
- package/src/internal/DeferredRef.ts +62 -0
- package/src/internal/UnionToTuple.ts +11 -0
- package/src/internal/core.ts +2491 -1950
- package/src/internal/diff.ts +157 -0
- package/src/internal/effect-loop-operator.ts +466 -0
- package/src/internal/effect-operator.ts +89 -54
- package/src/internal/effect-producer.ts +125 -0
- package/src/internal/helpers.ts +275 -205
- package/src/internal/keyed.ts +192 -241
- package/src/internal/loop-operator.ts +266 -0
- package/src/internal/operator.ts +87 -0
- package/src/internal/protos.ts +29 -104
- package/src/internal/provide.ts +48 -40
- package/src/internal/requestIdleCallback.ts +5 -6
- package/src/internal/share.ts +26 -24
- package/src/internal/sync-operator.ts +68 -27
- package/src/internal/sync-producer.ts +146 -0
- package/src/internal/withKey.ts +64 -74
- package/dist/cjs/Computed.js +0 -115
- package/dist/cjs/Computed.js.map +0 -1
- package/dist/cjs/Filtered.js +0 -95
- package/dist/cjs/Filtered.js.map +0 -1
- package/dist/cjs/Model.js +0 -119
- package/dist/cjs/Model.js.map +0 -1
- package/dist/cjs/RefAsyncData.js +0 -187
- package/dist/cjs/RefAsyncData.js.map +0 -1
- package/dist/cjs/RefAsyncDataArray.js +0 -38
- package/dist/cjs/RefAsyncDataArray.js.map +0 -1
- package/dist/cjs/RefBoolean.js +0 -45
- package/dist/cjs/RefBoolean.js.map +0 -1
- package/dist/cjs/RefNumber.js +0 -49
- package/dist/cjs/RefNumber.js.map +0 -1
- package/dist/cjs/internal/core-ref-subject.js +0 -254
- package/dist/cjs/internal/core-ref-subject.js.map +0 -1
- package/dist/cjs/internal/core-subject.js +0 -108
- package/dist/cjs/internal/core-subject.js.map +0 -1
- package/dist/cjs/internal/deferred-ref.js.map +0 -1
- package/dist/cjs/internal/effect-primitive.js +0 -47
- package/dist/cjs/internal/effect-primitive.js.map +0 -1
- package/dist/cjs/internal/fx-effect-proto.js +0 -58
- package/dist/cjs/internal/fx-effect-proto.js.map +0 -1
- package/dist/cjs/internal/fx-primitive.js +0 -193
- package/dist/cjs/internal/fx-primitive.js.map +0 -1
- package/dist/cjs/internal/fx.js +0 -240
- package/dist/cjs/internal/fx.js.map +0 -1
- package/dist/cjs/internal/matchers.js +0 -34
- package/dist/cjs/internal/matchers.js.map +0 -1
- package/dist/cjs/internal/run.js +0 -54
- package/dist/cjs/internal/run.js.map +0 -1
- package/dist/cjs/internal/schema-ref-subject.js +0 -132
- package/dist/cjs/internal/schema-ref-subject.js.map +0 -1
- package/dist/cjs/internal/versioned-transform.js +0 -46
- package/dist/cjs/internal/versioned-transform.js.map +0 -1
- package/dist/dts/Computed.d.ts +0 -106
- package/dist/dts/Computed.d.ts.map +0 -1
- package/dist/dts/Filtered.d.ts +0 -97
- package/dist/dts/Filtered.d.ts.map +0 -1
- package/dist/dts/Model.d.ts +0 -200
- package/dist/dts/Model.d.ts.map +0 -1
- package/dist/dts/RefAsyncData.d.ts +0 -236
- package/dist/dts/RefAsyncData.d.ts.map +0 -1
- package/dist/dts/RefAsyncDataArray.d.ts +0 -56
- package/dist/dts/RefAsyncDataArray.d.ts.map +0 -1
- package/dist/dts/RefBoolean.d.ts +0 -47
- package/dist/dts/RefBoolean.d.ts.map +0 -1
- package/dist/dts/RefNumber.d.ts +0 -48
- package/dist/dts/RefNumber.d.ts.map +0 -1
- package/dist/dts/internal/core-ref-subject.d.ts +0 -100
- package/dist/dts/internal/core-ref-subject.d.ts.map +0 -1
- package/dist/dts/internal/core-subject.d.ts +0 -5
- package/dist/dts/internal/core-subject.d.ts.map +0 -1
- package/dist/dts/internal/deferred-ref.d.ts +0 -12
- package/dist/dts/internal/deferred-ref.d.ts.map +0 -1
- package/dist/dts/internal/effect-primitive.d.ts +0 -6
- package/dist/dts/internal/effect-primitive.d.ts.map +0 -1
- package/dist/dts/internal/fx-effect-proto.d.ts +0 -30
- package/dist/dts/internal/fx-effect-proto.d.ts.map +0 -1
- package/dist/dts/internal/fx-primitive.d.ts +0 -109
- package/dist/dts/internal/fx-primitive.d.ts.map +0 -1
- package/dist/dts/internal/fx.d.ts +0 -245
- package/dist/dts/internal/fx.d.ts.map +0 -1
- package/dist/dts/internal/matchers.d.ts +0 -33
- package/dist/dts/internal/matchers.d.ts.map +0 -1
- package/dist/dts/internal/run.d.ts +0 -8
- package/dist/dts/internal/run.d.ts.map +0 -1
- package/dist/dts/internal/schema-ref-subject.d.ts +0 -5
- package/dist/dts/internal/schema-ref-subject.d.ts.map +0 -1
- package/dist/dts/internal/versioned-transform.d.ts +0 -17
- package/dist/dts/internal/versioned-transform.d.ts.map +0 -1
- package/dist/esm/Computed.js +0 -103
- package/dist/esm/Computed.js.map +0 -1
- package/dist/esm/Filtered.js +0 -83
- package/dist/esm/Filtered.js.map +0 -1
- package/dist/esm/Model.js +0 -100
- package/dist/esm/Model.js.map +0 -1
- package/dist/esm/RefAsyncData.js +0 -163
- package/dist/esm/RefAsyncData.js.map +0 -1
- package/dist/esm/RefAsyncDataArray.js +0 -27
- package/dist/esm/RefAsyncDataArray.js.map +0 -1
- package/dist/esm/RefBoolean.js +0 -31
- package/dist/esm/RefBoolean.js.map +0 -1
- package/dist/esm/RefNumber.js +0 -35
- package/dist/esm/RefNumber.js.map +0 -1
- package/dist/esm/internal/core-ref-subject.js +0 -242
- package/dist/esm/internal/core-ref-subject.js.map +0 -1
- package/dist/esm/internal/core-subject.js +0 -90
- package/dist/esm/internal/core-subject.js.map +0 -1
- package/dist/esm/internal/deferred-ref.js +0 -23
- package/dist/esm/internal/deferred-ref.js.map +0 -1
- package/dist/esm/internal/effect-primitive.js +0 -41
- package/dist/esm/internal/effect-primitive.js.map +0 -1
- package/dist/esm/internal/fx-effect-proto.js +0 -43
- package/dist/esm/internal/fx-effect-proto.js.map +0 -1
- package/dist/esm/internal/fx-primitive.js +0 -175
- package/dist/esm/internal/fx-primitive.js.map +0 -1
- package/dist/esm/internal/fx.js +0 -216
- package/dist/esm/internal/fx.js.map +0 -1
- package/dist/esm/internal/matchers.js +0 -38
- package/dist/esm/internal/matchers.js.map +0 -1
- package/dist/esm/internal/run.js +0 -32
- package/dist/esm/internal/run.js.map +0 -1
- package/dist/esm/internal/schema-ref-subject.js +0 -121
- package/dist/esm/internal/schema-ref-subject.js.map +0 -1
- package/dist/esm/internal/versioned-transform.js +0 -37
- package/dist/esm/internal/versioned-transform.js.map +0 -1
- package/src/Computed.ts +0 -289
- package/src/Filtered.ts +0 -274
- package/src/Model.ts +0 -483
- package/src/RefAsyncData.ts +0 -547
- package/src/RefAsyncDataArray.ts +0 -135
- package/src/RefBoolean.ts +0 -71
- package/src/RefNumber.ts +0 -77
- package/src/internal/core-ref-subject.ts +0 -528
- package/src/internal/core-subject.ts +0 -143
- package/src/internal/deferred-ref.ts +0 -26
- package/src/internal/effect-primitive.ts +0 -230
- package/src/internal/fx-effect-proto.ts +0 -56
- package/src/internal/fx-primitive.ts +0 -223
- package/src/internal/fx.ts +0 -619
- package/src/internal/matchers.ts +0 -83
- package/src/internal/run.ts +0 -51
- package/src/internal/schema-ref-subject.ts +0 -163
- package/src/internal/versioned-transform.ts +0 -48
package/src/Stream.ts
CHANGED
|
@@ -12,7 +12,7 @@ import * as Queue from "effect/Queue"
|
|
|
12
12
|
import type * as Scope from "effect/Scope"
|
|
13
13
|
import * as Stream from "effect/Stream"
|
|
14
14
|
import * as Fx from "./Fx.js"
|
|
15
|
-
import
|
|
15
|
+
import * as Sink from "./Sink.js"
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Convert an Fx to a Stream
|
|
@@ -21,9 +21,8 @@ import { Sink } from "./Sink.js"
|
|
|
21
21
|
*/
|
|
22
22
|
export function toStream<R, E, A>(fx: Fx.Fx<R, E, A>): Stream.Stream<R, E, A> {
|
|
23
23
|
return Stream.asyncScoped<R | Scope.Scope, E, A>((emit) =>
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Sink(
|
|
24
|
+
fx.run(
|
|
25
|
+
Sink.make(
|
|
27
26
|
(cause) => Effect.promise(() => emit(Effect.failCause(Cause.map(cause, Option.some)))),
|
|
28
27
|
(a) => Effect.promise(() => emit(Effect.succeed(Chunk.of(a))))
|
|
29
28
|
)
|
|
@@ -54,20 +53,20 @@ export const toStreamQueued: {
|
|
|
54
53
|
fx: Fx.Fx<R, E, A>,
|
|
55
54
|
make: Effect.Effect<R2, E2, Queue.Queue<Exit.Exit<Option.Option<E>, A>>>
|
|
56
55
|
): Stream.Stream<R | R2, E | E2, A> {
|
|
57
|
-
return
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
56
|
+
return make.pipe(
|
|
57
|
+
Effect.tap((queue) =>
|
|
58
|
+
fx.pipe(
|
|
59
|
+
Fx.mapError(Option.some),
|
|
60
|
+
Fx.exit,
|
|
61
|
+
Fx.toEnqueue(queue),
|
|
62
|
+
Effect.ensuring(queue.offer(Exit.fail(Option.none()))),
|
|
63
|
+
Effect.forkScoped
|
|
64
|
+
)
|
|
65
|
+
),
|
|
66
|
+
Effect.map((queue) => Stream.fromQueue(queue)),
|
|
67
|
+
Stream.unwrapScoped,
|
|
68
|
+
Stream.flattenExitOption
|
|
69
|
+
)
|
|
71
70
|
})
|
|
72
71
|
|
|
73
72
|
/**
|
|
@@ -118,11 +117,24 @@ export const toStreamBounded: {
|
|
|
118
117
|
}
|
|
119
118
|
)
|
|
120
119
|
|
|
120
|
+
/**
|
|
121
|
+
* Convert a Stream to an Fx
|
|
122
|
+
* @since 1.18.0
|
|
123
|
+
* @category conversions
|
|
124
|
+
*/
|
|
125
|
+
export function fromStream<R, E, A>(
|
|
126
|
+
stream: Stream.Stream<R, E, A>
|
|
127
|
+
): Fx.Fx<R, E, A> {
|
|
128
|
+
return Fx.make<R, E, A>((sink) => Effect.catchAllCause(Stream.runForEach(stream, sink.onSuccess), sink.onFailure))
|
|
129
|
+
}
|
|
130
|
+
|
|
121
131
|
/**
|
|
122
132
|
* Convert a Stream to an Fx of chunks
|
|
123
133
|
* @since 1.18.0
|
|
124
134
|
* @category conversions
|
|
125
135
|
*/
|
|
126
|
-
export function
|
|
127
|
-
return Fx.
|
|
136
|
+
export function fromStreamChunked<R, E, A>(stream: Stream.Stream<R, E, A>): Fx.Fx<R, E, Chunk.Chunk<A>> {
|
|
137
|
+
return Fx.make<R, E, Chunk.Chunk<A>>((sink) =>
|
|
138
|
+
Effect.catchAllCause(Stream.runForEachChunk(stream, sink.onSuccess), sink.onFailure)
|
|
139
|
+
)
|
|
128
140
|
}
|
package/src/Subject.ts
CHANGED
|
@@ -1,143 +1,286 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* @since 1.18.0
|
|
2
|
+
* Subject is an Fx type which can also be imperatively pushed into.
|
|
3
|
+
* @since 1.20.0
|
|
5
4
|
*/
|
|
6
5
|
|
|
7
6
|
import * as C from "@typed/context"
|
|
8
|
-
import type { Cause } from "effect
|
|
7
|
+
import type { Cause, Layer, Pipeable } from "effect"
|
|
8
|
+
import * as Context from "effect/Context"
|
|
9
9
|
import * as Effect from "effect/Effect"
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
10
|
+
import * as ExecutionStrategy from "effect/ExecutionStrategy"
|
|
11
|
+
import * as Exit from "effect/Exit"
|
|
12
|
+
import { dual, identity } from "effect/Function"
|
|
13
|
+
import * as MutableRef from "effect/MutableRef"
|
|
14
|
+
import * as Option from "effect/Option"
|
|
15
|
+
import { hasProperty } from "effect/Predicate"
|
|
16
|
+
import * as Scope from "effect/Scope"
|
|
17
|
+
import { type Fx } from "./Fx.js"
|
|
13
18
|
import { provide } from "./internal/core.js"
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
19
|
+
import { awaitScopeClose, RingBuffer, withScope } from "./internal/helpers.js"
|
|
20
|
+
import { FxBase } from "./internal/protos.js"
|
|
21
|
+
import type { Push } from "./Push.js"
|
|
22
|
+
import type { Sink } from "./Sink.js"
|
|
23
|
+
import { TypeId } from "./TypeId.js"
|
|
16
24
|
|
|
17
25
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* @since 1.18.0
|
|
21
|
-
* @category models
|
|
26
|
+
* Subject is an Fx type which can also be imperatively pushed into.
|
|
27
|
+
* @since 1.20.0
|
|
22
28
|
*/
|
|
23
|
-
export interface Subject<R, E, A>
|
|
29
|
+
export interface Subject<R, E, A>
|
|
30
|
+
extends Push<R, E, A, R | Scope.Scope, E, A>, Fx<R | Scope.Scope, E, A>, Pipeable.Pipeable
|
|
31
|
+
{
|
|
24
32
|
readonly subscriberCount: Effect.Effect<R, never, number>
|
|
25
33
|
readonly interrupt: Effect.Effect<R, never, void>
|
|
26
34
|
}
|
|
27
35
|
|
|
28
36
|
/**
|
|
29
|
-
* @since 1.
|
|
37
|
+
* @since 1.20.0
|
|
30
38
|
*/
|
|
31
39
|
export namespace Subject {
|
|
32
40
|
/**
|
|
33
|
-
*
|
|
34
|
-
* @since 1.18.0
|
|
35
|
-
* @category models
|
|
41
|
+
* @since 1.20.0
|
|
36
42
|
*/
|
|
37
43
|
export interface Tagged<I, E, A> extends Subject<I, E, A> {
|
|
38
44
|
readonly tag: C.Tagged<I, Subject<never, E, A>>
|
|
39
45
|
|
|
40
|
-
readonly
|
|
46
|
+
readonly make: (replay?: number) => Layer.Layer<never, never, I>
|
|
47
|
+
readonly provide: Provide<I>
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @since 1.20.0
|
|
52
|
+
*/
|
|
53
|
+
export type Provide<I> = <
|
|
54
|
+
const Args extends
|
|
55
|
+
| readonly [
|
|
56
|
+
| Fx<any, any, any>
|
|
57
|
+
| Effect.Effect<any, any, any>,
|
|
58
|
+
number?
|
|
59
|
+
]
|
|
60
|
+
| readonly [
|
|
61
|
+
number
|
|
62
|
+
]
|
|
63
|
+
>(
|
|
64
|
+
...args: Args
|
|
65
|
+
) => Args extends readonly [infer _ extends number] ? <T extends Fx<any, any, any> | Effect.Effect<any, any, any>>(
|
|
66
|
+
fxOrEffect: T
|
|
67
|
+
) => [T] extends [Fx<infer R2, infer E2, infer B>] ? Fx<Exclude<R2, I>, E2, B>
|
|
68
|
+
: [T] extends [Effect.Effect<infer R2, infer E2, infer B>] ? Effect.Effect<Exclude<R2, I>, E2, B>
|
|
69
|
+
: never
|
|
70
|
+
: Args extends readonly [Fx<infer R2, infer E2, infer B>] ? Fx<Exclude<R2, I>, E2, B>
|
|
71
|
+
: Args extends readonly [Effect.Effect<infer R2, infer E2, infer B>] ? Effect.Effect<Exclude<R2, I>, E2, B>
|
|
72
|
+
: never
|
|
73
|
+
}
|
|
41
74
|
|
|
42
|
-
|
|
43
|
-
replay?: number
|
|
44
|
-
) => <R2, E2, B>(effect: Effect.Effect<R2, E2, B>) => Effect.Effect<Exclude<R2, I>, E2, B>
|
|
75
|
+
const DISCARD = { discard: true } as const
|
|
45
76
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
77
|
+
/**
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
export class SubjectImpl<E, A> extends FxBase<Scope.Scope, E, A> implements Subject<never, E, A> {
|
|
81
|
+
protected sinks: Set<readonly [Sink<any, E, A>, Context.Context<any>]> = new Set()
|
|
82
|
+
protected scopes: Set<Scope.CloseableScope> = new Set()
|
|
49
83
|
|
|
50
|
-
|
|
84
|
+
constructor() {
|
|
85
|
+
super()
|
|
86
|
+
this.onFailure = this.onFailure.bind(this)
|
|
87
|
+
this.onSuccess = this.onSuccess.bind(this)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
run<R2>(sink: Sink<R2, E, A>): Effect.Effect<R2 | Scope.Scope, never, unknown> {
|
|
91
|
+
return this.addSink(sink, awaitScopeClose)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Emit a failure to all sinks
|
|
95
|
+
onFailure(cause: Cause.Cause<E>) {
|
|
96
|
+
return this.onCause(cause)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Emit an event to all sinks
|
|
100
|
+
onSuccess(a: A) {
|
|
101
|
+
return this.onEvent(a)
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
readonly interrupt = Effect.fiberIdWith((id) =>
|
|
105
|
+
Effect.forEach(this.scopes, (scope) => Scope.close(scope, Exit.interrupt(id)), DISCARD)
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
protected addSink<R, R2, B>(
|
|
109
|
+
sink: Sink<R, E, A>,
|
|
110
|
+
f: (scope: Scope.Scope) => Effect.Effect<R2, never, B>
|
|
111
|
+
): Effect.Effect<R2 | Scope.Scope, never, B> {
|
|
112
|
+
return withScope(
|
|
113
|
+
(innerScope) =>
|
|
114
|
+
Effect.contextWithEffect((ctx) => {
|
|
115
|
+
const entry = [sink, Context.add(ctx, Scope.Scope, innerScope)] as const
|
|
116
|
+
const add = Effect.sync(() => {
|
|
117
|
+
this.sinks.add(entry)
|
|
118
|
+
this.scopes.add(innerScope)
|
|
119
|
+
})
|
|
120
|
+
const remove = Effect.sync(() => {
|
|
121
|
+
this.sinks.delete(entry)
|
|
122
|
+
this.scopes.delete(innerScope)
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
return Effect.zipRight(
|
|
126
|
+
Scope.addFinalizer(innerScope, remove),
|
|
127
|
+
Effect.zipRight(add, f(innerScope))
|
|
128
|
+
)
|
|
129
|
+
}),
|
|
130
|
+
ExecutionStrategy.sequential
|
|
131
|
+
)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
readonly subscriberCount: Effect.Effect<never, never, number> = Effect.sync(() => this.sinks.size)
|
|
135
|
+
|
|
136
|
+
protected onEvent(a: A) {
|
|
137
|
+
if (this.sinks.size === 0) return Effect.unit
|
|
138
|
+
else {
|
|
139
|
+
return Effect.forEach(this.sinks, ([sink, ctx]) => Effect.provide(sink.onSuccess(a), ctx), DISCARD)
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
protected onCause(cause: Cause.Cause<E>) {
|
|
144
|
+
return Effect.forEach(
|
|
145
|
+
this.sinks,
|
|
146
|
+
([sink, ctx]) => Effect.provide(sink.onFailure(cause), ctx),
|
|
147
|
+
DISCARD
|
|
148
|
+
)
|
|
51
149
|
}
|
|
52
150
|
}
|
|
53
151
|
|
|
54
152
|
/**
|
|
55
|
-
*
|
|
56
|
-
* @since 1.18.0
|
|
57
|
-
* @category constructors
|
|
153
|
+
* @internal
|
|
58
154
|
*/
|
|
59
|
-
export
|
|
155
|
+
export class HoldSubjectImpl<E, A> extends SubjectImpl<E, A> implements Subject<never, E, A> {
|
|
156
|
+
private lastValue: MutableRef.MutableRef<Option.Option<A>> = MutableRef.make(Option.none())
|
|
157
|
+
|
|
158
|
+
// Emit an event to all sinks
|
|
159
|
+
onSuccess = (a: A) =>
|
|
160
|
+
Effect.suspend(() => {
|
|
161
|
+
MutableRef.set(this.lastValue, Option.some(a))
|
|
162
|
+
|
|
163
|
+
return this.onEvent(a)
|
|
164
|
+
})
|
|
165
|
+
|
|
166
|
+
run<R2>(sink: Sink<R2, E, A>): Effect.Effect<R2 | Scope.Scope, never, unknown> {
|
|
167
|
+
return this.addSink(sink, (scope) =>
|
|
168
|
+
Option.match(MutableRef.get(this.lastValue), {
|
|
169
|
+
onNone: () => awaitScopeClose(scope),
|
|
170
|
+
onSome: (a) => Effect.zipRight(sink.onSuccess(a), awaitScopeClose(scope))
|
|
171
|
+
}))
|
|
172
|
+
}
|
|
173
|
+
}
|
|
60
174
|
|
|
61
175
|
/**
|
|
62
|
-
*
|
|
63
|
-
* If a previous event has been consumed previously, any "late" subscribers will
|
|
64
|
-
* receive that previous event.
|
|
65
|
-
* @since 1.18.0
|
|
66
|
-
* @category constructors
|
|
176
|
+
* @internal
|
|
67
177
|
*/
|
|
68
|
-
export
|
|
178
|
+
export class ReplaySubjectImpl<E, A> extends SubjectImpl<E, A> {
|
|
179
|
+
constructor(readonly buffer: RingBuffer<A>) {
|
|
180
|
+
super()
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Emit an event to all sinks
|
|
184
|
+
onSuccess = (a: A) =>
|
|
185
|
+
Effect.suspend(() => {
|
|
186
|
+
this.buffer.push(a)
|
|
187
|
+
|
|
188
|
+
return this.onEvent(a)
|
|
189
|
+
})
|
|
190
|
+
|
|
191
|
+
run<R2>(sink: Sink<R2, E, A>): Effect.Effect<R2 | Scope.Scope, never, unknown> {
|
|
192
|
+
return this.addSink(
|
|
193
|
+
sink,
|
|
194
|
+
(scope) => Effect.zipRight(this.buffer.forEach((a) => sink.onSuccess(a)), awaitScopeClose(scope))
|
|
195
|
+
)
|
|
196
|
+
}
|
|
197
|
+
}
|
|
69
198
|
|
|
70
199
|
/**
|
|
71
|
-
*
|
|
72
|
-
* If a previous event has been consumed previously, any "late" subscribers will
|
|
73
|
-
* receive _up to_ `capacity` previous events.
|
|
74
|
-
* @since 1.18.0
|
|
75
|
-
* @category constructors
|
|
200
|
+
* @since 1.20.0
|
|
76
201
|
*/
|
|
77
|
-
export
|
|
202
|
+
export function unsafeMake<E, A>(replay: number = 0): Subject<never, E, A> {
|
|
203
|
+
replay = Math.max(0, replay)
|
|
204
|
+
|
|
205
|
+
if (replay === 0) {
|
|
206
|
+
return new SubjectImpl<E, A>()
|
|
207
|
+
} else if (replay === 1) {
|
|
208
|
+
return new HoldSubjectImpl<E, A>()
|
|
209
|
+
} else {
|
|
210
|
+
return new ReplaySubjectImpl<E, A>(new RingBuffer(replay))
|
|
211
|
+
}
|
|
212
|
+
}
|
|
78
213
|
|
|
79
214
|
/**
|
|
80
|
-
*
|
|
81
|
-
* @since 1.18.0
|
|
82
|
-
* @category constructors
|
|
215
|
+
* @since 1.20.0
|
|
83
216
|
*/
|
|
84
|
-
export function
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
} {
|
|
88
|
-
function makeTagged<const I extends C.IdentifierFactory<any>>(
|
|
89
|
-
identifier: I
|
|
90
|
-
): Subject.Tagged<C.IdentifierOf<I>, E, A>
|
|
91
|
-
function makeTagged<const I>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
|
|
92
|
-
function makeTagged<const I>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A> {
|
|
93
|
-
return new ContextImpl(C.Tagged<I, Subject<never, E, A>>(identifier))
|
|
94
|
-
}
|
|
217
|
+
export function make<E, A>(replay?: number): Effect.Effect<Scope.Scope, never, Subject<never, E, A>> {
|
|
218
|
+
return Effect.acquireRelease(Effect.sync(() => unsafeMake(replay)), (subject) => subject.interrupt)
|
|
219
|
+
}
|
|
95
220
|
|
|
96
|
-
|
|
221
|
+
/**
|
|
222
|
+
* @since 1.20.0
|
|
223
|
+
*/
|
|
224
|
+
export function fromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => Subject<R, E, A>): Subject<I | R, E, A> {
|
|
225
|
+
return new FromTag(tag, f)
|
|
97
226
|
}
|
|
98
227
|
|
|
99
|
-
class
|
|
100
|
-
|
|
101
|
-
subscriberCount: Subject.Tagged<I, E, A>["subscriberCount"]
|
|
228
|
+
class FromTag<I, S, R, E, A> extends FxBase<I | R | Scope.Scope, E, A> implements Subject<I | R, E, A> {
|
|
229
|
+
private get: Effect.Effect<I, never, Subject<R, E, A>>
|
|
102
230
|
|
|
103
|
-
|
|
231
|
+
readonly subscriberCount: Effect.Effect<I | R, never, number>
|
|
232
|
+
readonly interrupt: Effect.Effect<I | R, never, void>
|
|
233
|
+
|
|
234
|
+
constructor(readonly tag: C.Tag<I, S>, readonly f: (s: S) => Subject<R, E, A>) {
|
|
104
235
|
super()
|
|
105
236
|
|
|
106
|
-
this.
|
|
107
|
-
this.
|
|
108
|
-
this.
|
|
109
|
-
this.make = this.make.bind(this)
|
|
110
|
-
this.interrupt = tag.withEffect((subject) => subject.interrupt)
|
|
111
|
-
this.subscriberCount = tag.withEffect((subject) => subject.subscriberCount)
|
|
237
|
+
this.get = Effect.map(tag, f)
|
|
238
|
+
this.subscriberCount = Effect.flatMap(this.get, (subject) => subject.subscriberCount)
|
|
239
|
+
this.interrupt = Effect.flatMap(this.get, (subject) => subject.interrupt)
|
|
112
240
|
}
|
|
113
241
|
|
|
114
|
-
|
|
115
|
-
return
|
|
242
|
+
run<R2>(sink: Sink<R2, E, A>): Effect.Effect<I | R | R2 | Scope.Scope, never, unknown> {
|
|
243
|
+
return Effect.flatMap(this.get, (subject) => subject.run(sink))
|
|
116
244
|
}
|
|
117
245
|
|
|
118
|
-
onFailure(cause: Cause<E>) {
|
|
119
|
-
return this.
|
|
246
|
+
onFailure(cause: Cause.Cause<E>): Effect.Effect<I | R, never, unknown> {
|
|
247
|
+
return Effect.flatMap(this.get, (subject) => subject.onFailure(cause))
|
|
120
248
|
}
|
|
121
249
|
|
|
122
|
-
onSuccess(
|
|
123
|
-
return this.
|
|
250
|
+
onSuccess(value: A): Effect.Effect<I | R, never, unknown> {
|
|
251
|
+
return Effect.flatMap(this.get, (subject) => subject.onSuccess(value))
|
|
124
252
|
}
|
|
253
|
+
}
|
|
125
254
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
255
|
+
/**
|
|
256
|
+
* @since 1.20.0
|
|
257
|
+
*/
|
|
258
|
+
export function tagged<E, A>(): {
|
|
259
|
+
<const I extends C.IdentifierFactory<any>>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
|
|
260
|
+
<const I>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
|
|
261
|
+
} {
|
|
262
|
+
return <const I>(identifier: I) => new TaggedImpl(C.Tagged<I, Subject<never, E, A>>(identifier))
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
const isDataFirst = (args: IArguments): boolean =>
|
|
266
|
+
args.length === 2 || Effect.isEffect(args[0]) || hasProperty(args[0], TypeId)
|
|
267
|
+
|
|
268
|
+
class TaggedImpl<I, E, A> extends FromTag<I, Subject<never, E, A>, never, E, A> implements Subject.Tagged<I, E, A> {
|
|
269
|
+
readonly provide: Subject.Tagged<I, E, A>["provide"]
|
|
270
|
+
|
|
271
|
+
constructor(readonly tag: C.Tagged<I, Subject<never, E, A>>) {
|
|
272
|
+
super(tag, identity)
|
|
273
|
+
|
|
274
|
+
this.provide = dual(
|
|
275
|
+
isDataFirst,
|
|
276
|
+
<R2, E2, B>(fxOrEffect: Fx<R2, E2, B> | Effect.Effect<R2, E2, B>, replay?: number) => {
|
|
277
|
+
if (TypeId in fxOrEffect) return provide(fxOrEffect as Fx<Exclude<R2, I>, E2, B>, this.make(replay))
|
|
278
|
+
else return Effect.provide(fxOrEffect as Effect.Effect<R2, E2, B>, this.make(replay))
|
|
134
279
|
}
|
|
135
|
-
|
|
280
|
+
)
|
|
136
281
|
}
|
|
137
282
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
provideFx: (replay?: number) => <R2, E2, B>(fx: Fx<R2, E2, B>) => Fx<Exclude<R2, I>, E2, B> = (replay) => (fx) =>
|
|
142
|
-
provide(fx, this.make(replay))
|
|
283
|
+
make(replay?: number): Layer.Layer<never, never, I> {
|
|
284
|
+
return this.tag.scoped(make(replay))
|
|
285
|
+
}
|
|
143
286
|
}
|
package/src/TypeId.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @since 1.18.0
|
|
3
3
|
* @category symbols
|
|
4
4
|
*/
|
|
5
|
-
export const TypeId = Symbol.for("
|
|
5
|
+
export const TypeId = Symbol.for("@typed/fx/Fx")
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @since 1.18.0
|
|
@@ -14,7 +14,7 @@ export type TypeId = typeof TypeId
|
|
|
14
14
|
* @since 1.18.0
|
|
15
15
|
* @category symbols
|
|
16
16
|
*/
|
|
17
|
-
export const RefSubjectTypeId = Symbol.for("
|
|
17
|
+
export const RefSubjectTypeId = Symbol.for("@typed/fx/RefSubject")
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* @since 1.18.0
|
|
@@ -26,7 +26,7 @@ export type RefSubjectTypeId = typeof RefSubjectTypeId
|
|
|
26
26
|
* @since 1.18.0
|
|
27
27
|
* @category symbols
|
|
28
28
|
*/
|
|
29
|
-
export const ComputedTypeId = Symbol.for("
|
|
29
|
+
export const ComputedTypeId = Symbol.for("@typed/fx/Computed")
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* @since 1.18.0
|
|
@@ -38,10 +38,22 @@ export type ComputedTypeId = typeof ComputedTypeId
|
|
|
38
38
|
* @since 1.18.0
|
|
39
39
|
* @category symbols
|
|
40
40
|
*/
|
|
41
|
-
export const FilteredTypeId = Symbol.for("
|
|
41
|
+
export const FilteredTypeId = Symbol.for("@typed/fx/Filtered")
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* @since 1.18.0
|
|
45
45
|
* @category symbols
|
|
46
46
|
*/
|
|
47
47
|
export type FilteredTypeId = typeof FilteredTypeId
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @since 1.18.0
|
|
51
|
+
* @category symbols
|
|
52
|
+
*/
|
|
53
|
+
export const PushTypeId = Symbol.for("@typed/fx/Push")
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @since 1.18.0
|
|
57
|
+
* @category symbols
|
|
58
|
+
*/
|
|
59
|
+
export type PushTypeId = typeof PushTypeId
|