@typed/fx 1.17.4 → 1.18.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/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/cjs/Computed.js +111 -74
- package/dist/cjs/Computed.js.map +1 -1
- package/dist/cjs/Emitter.js +37 -0
- package/dist/cjs/Emitter.js.map +1 -0
- package/dist/cjs/Filtered.js +91 -74
- package/dist/cjs/Filtered.js.map +1 -1
- package/dist/cjs/Form.js +123 -0
- package/dist/cjs/Form.js.map +1 -0
- package/dist/cjs/FormEntry.js +78 -0
- package/dist/cjs/FormEntry.js.map +1 -0
- package/dist/cjs/Fx.js +1303 -31
- package/dist/cjs/Fx.js.map +1 -1
- package/dist/cjs/Guard.js +67 -0
- package/dist/cjs/Guard.js.map +1 -0
- package/dist/cjs/Idle.js +176 -0
- package/dist/cjs/Idle.js.map +1 -0
- package/dist/cjs/Match.js +156 -0
- package/dist/cjs/Match.js.map +1 -0
- package/dist/cjs/Model.js +119 -0
- package/dist/cjs/Model.js.map +1 -0
- package/dist/cjs/Pull.js +50 -0
- package/dist/cjs/Pull.js.map +1 -0
- package/dist/cjs/RefArray.js +248 -94
- package/dist/cjs/RefArray.js.map +1 -1
- package/dist/cjs/RefAsyncData.js +187 -0
- package/dist/cjs/RefAsyncData.js.map +1 -0
- package/dist/cjs/RefAsyncDataArray.js +38 -0
- package/dist/cjs/RefAsyncDataArray.js.map +1 -0
- package/dist/cjs/RefBoolean.js +45 -0
- package/dist/cjs/RefBoolean.js.map +1 -0
- package/dist/cjs/RefChunk.js +210 -0
- package/dist/cjs/RefChunk.js.map +1 -0
- package/dist/cjs/RefHashMap.js +198 -0
- package/dist/cjs/RefHashMap.js.map +1 -0
- package/dist/cjs/RefHashSet.js +96 -0
- package/dist/cjs/RefHashSet.js.map +1 -0
- package/dist/cjs/RefNumber.js +49 -0
- package/dist/cjs/RefNumber.js.map +1 -0
- package/dist/cjs/RefSubject.js +234 -431
- package/dist/cjs/RefSubject.js.map +1 -1
- package/dist/cjs/Sink.js +118 -8
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js +82 -0
- package/dist/cjs/Stream.js.map +1 -0
- package/dist/cjs/Subject.js +87 -49
- package/dist/cjs/Subject.js.map +1 -1
- package/dist/cjs/TypeId.js +27 -0
- package/dist/cjs/TypeId.js.map +1 -0
- package/dist/cjs/Typeclass.js +383 -0
- package/dist/cjs/Typeclass.js.map +1 -0
- package/dist/cjs/Versioned.js +111 -0
- package/dist/cjs/Versioned.js.map +1 -0
- package/dist/cjs/index.js +52 -213
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/bounds.js +26 -0
- package/dist/cjs/internal/bounds.js.map +1 -0
- package/dist/cjs/internal/core-ref-subject.js +254 -0
- package/dist/cjs/internal/core-ref-subject.js.map +1 -0
- package/dist/cjs/internal/core-subject.js +108 -0
- package/dist/cjs/internal/core-subject.js.map +1 -0
- package/dist/cjs/internal/core.js +924 -0
- package/dist/cjs/internal/core.js.map +1 -0
- package/dist/cjs/internal/deferred-ref.js +32 -0
- package/dist/cjs/internal/deferred-ref.js.map +1 -0
- package/dist/cjs/internal/effect-operator.js +147 -0
- package/dist/cjs/internal/effect-operator.js.map +1 -0
- package/dist/cjs/internal/effect-primitive.js +47 -0
- package/dist/cjs/internal/effect-primitive.js.map +1 -0
- package/dist/cjs/internal/fx-effect-proto.js +58 -0
- package/dist/cjs/internal/fx-effect-proto.js.map +1 -0
- package/dist/cjs/internal/fx-primitive.js +193 -0
- package/dist/cjs/internal/fx-primitive.js.map +1 -0
- package/dist/cjs/internal/fx.js +240 -0
- package/dist/cjs/internal/fx.js.map +1 -0
- package/dist/cjs/internal/helpers.js +270 -0
- package/dist/cjs/internal/helpers.js.map +1 -0
- package/dist/cjs/internal/keyed.js +198 -0
- package/dist/cjs/internal/keyed.js.map +1 -0
- package/dist/cjs/internal/matchers.js +34 -0
- package/dist/cjs/internal/matchers.js.map +1 -0
- package/dist/cjs/internal/protos.js +110 -0
- package/dist/cjs/internal/protos.js.map +1 -0
- package/dist/cjs/internal/provide.js +78 -0
- package/dist/cjs/internal/provide.js.map +1 -0
- package/dist/cjs/internal/requestIdleCallback.js +22 -0
- package/dist/cjs/internal/requestIdleCallback.js.map +1 -0
- package/dist/cjs/internal/run.js +54 -0
- package/dist/cjs/internal/run.js.map +1 -0
- package/dist/cjs/internal/schema-ref-subject.js +132 -0
- package/dist/cjs/internal/schema-ref-subject.js.map +1 -0
- package/dist/cjs/internal/share.js +79 -0
- package/dist/cjs/internal/share.js.map +1 -0
- package/dist/cjs/internal/strategies.js +34 -0
- package/dist/cjs/internal/strategies.js.map +1 -0
- package/dist/cjs/internal/sync-operator.js +92 -0
- package/dist/cjs/internal/sync-operator.js.map +1 -0
- package/dist/cjs/internal/versioned-transform.js +46 -0
- package/dist/cjs/internal/versioned-transform.js.map +1 -0
- package/dist/cjs/internal/withKey.js +69 -0
- package/dist/cjs/internal/withKey.js.map +1 -0
- package/dist/dts/Computed.d.ts +106 -0
- package/dist/dts/Computed.d.ts.map +1 -0
- package/dist/dts/Emitter.d.ts +31 -0
- package/dist/dts/Emitter.d.ts.map +1 -0
- package/dist/dts/Filtered.d.ts +97 -0
- package/dist/dts/Filtered.d.ts.map +1 -0
- package/dist/dts/Form.d.ts +126 -0
- package/dist/dts/Form.d.ts.map +1 -0
- package/dist/dts/FormEntry.d.ts +53 -0
- package/dist/dts/FormEntry.d.ts.map +1 -0
- package/dist/dts/Fx.d.ts +2006 -0
- package/dist/dts/Fx.d.ts.map +1 -0
- package/dist/dts/Guard.d.ts +95 -0
- package/dist/dts/Guard.d.ts.map +1 -0
- package/dist/dts/Idle.d.ts +84 -0
- package/dist/dts/Idle.d.ts.map +1 -0
- package/dist/dts/Match.d.ts +66 -0
- package/dist/dts/Match.d.ts.map +1 -0
- package/dist/dts/Model.d.ts +200 -0
- package/dist/dts/Model.d.ts.map +1 -0
- package/dist/dts/Pull.d.ts +37 -0
- package/dist/dts/Pull.d.ts.map +1 -0
- package/dist/dts/RefArray.d.ts +281 -0
- package/dist/dts/RefArray.d.ts.map +1 -0
- package/dist/dts/RefAsyncData.d.ts +236 -0
- package/dist/dts/RefAsyncData.d.ts.map +1 -0
- package/dist/dts/RefAsyncDataArray.d.ts +56 -0
- package/dist/dts/RefAsyncDataArray.d.ts.map +1 -0
- package/dist/dts/RefBoolean.d.ts +47 -0
- package/dist/dts/RefBoolean.d.ts.map +1 -0
- package/dist/dts/RefChunk.d.ts +232 -0
- package/dist/dts/RefChunk.d.ts.map +1 -0
- package/dist/dts/RefHashMap.d.ts +190 -0
- package/dist/dts/RefHashMap.d.ts.map +1 -0
- package/dist/dts/RefHashSet.d.ts +104 -0
- package/dist/dts/RefHashSet.d.ts.map +1 -0
- package/dist/dts/RefNumber.d.ts +48 -0
- package/dist/dts/RefNumber.d.ts.map +1 -0
- package/dist/dts/RefSubject.d.ts +282 -0
- package/dist/dts/RefSubject.d.ts.map +1 -0
- package/dist/dts/Sink.d.ts +152 -0
- package/dist/dts/Sink.d.ts.map +1 -0
- package/dist/dts/Stream.d.ts +60 -0
- package/dist/dts/Stream.d.ts.map +1 -0
- package/dist/dts/Subject.d.ts +69 -0
- package/dist/dts/Subject.d.ts.map +1 -0
- package/dist/dts/TypeId.d.ts +41 -0
- package/dist/dts/TypeId.d.ts.map +1 -0
- package/dist/dts/Typeclass.d.ts +284 -0
- package/dist/dts/Typeclass.d.ts.map +1 -0
- package/dist/dts/Versioned.d.ts +143 -0
- package/dist/dts/Versioned.d.ts.map +1 -0
- package/dist/dts/index.d.ts +56 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/bounds.d.ts +9 -0
- package/dist/dts/internal/bounds.d.ts.map +1 -0
- package/dist/dts/internal/core-ref-subject.d.ts +100 -0
- package/dist/dts/internal/core-ref-subject.d.ts.map +1 -0
- package/dist/dts/internal/core-subject.d.ts +5 -0
- package/dist/dts/internal/core-subject.d.ts.map +1 -0
- package/dist/dts/internal/core.d.ts +456 -0
- package/dist/dts/internal/core.d.ts.map +1 -0
- package/dist/dts/internal/deferred-ref.d.ts +12 -0
- package/dist/dts/internal/deferred-ref.d.ts.map +1 -0
- package/dist/dts/internal/effect-operator.d.ts +37 -0
- package/dist/dts/internal/effect-operator.d.ts.map +1 -0
- package/dist/dts/internal/effect-primitive.d.ts +6 -0
- package/dist/dts/internal/effect-primitive.d.ts.map +1 -0
- package/dist/dts/internal/fx-effect-proto.d.ts +30 -0
- package/dist/dts/internal/fx-effect-proto.d.ts.map +1 -0
- package/dist/dts/internal/fx-primitive.d.ts +109 -0
- package/dist/dts/internal/fx-primitive.d.ts.map +1 -0
- package/dist/dts/internal/fx.d.ts +245 -0
- package/dist/dts/internal/fx.d.ts.map +1 -0
- package/dist/dts/internal/helpers.d.ts +48 -0
- package/dist/dts/internal/helpers.d.ts.map +1 -0
- package/dist/dts/internal/keyed.d.ts +4 -0
- package/dist/dts/internal/keyed.d.ts.map +1 -0
- package/dist/dts/internal/matchers.d.ts +33 -0
- package/dist/dts/internal/matchers.d.ts.map +1 -0
- package/dist/dts/internal/protos.d.ts +50 -0
- package/dist/dts/internal/protos.d.ts.map +1 -0
- package/dist/dts/internal/provide.d.ts +40 -0
- package/dist/dts/internal/provide.d.ts.map +1 -0
- package/dist/dts/internal/requestIdleCallback.d.ts +3 -0
- package/dist/dts/internal/requestIdleCallback.d.ts.map +1 -0
- package/dist/dts/internal/run.d.ts +8 -0
- package/dist/dts/internal/run.d.ts.map +1 -0
- package/dist/dts/internal/schema-ref-subject.d.ts +5 -0
- package/dist/dts/internal/schema-ref-subject.d.ts.map +1 -0
- package/dist/dts/internal/share.d.ts +30 -0
- package/dist/dts/internal/share.d.ts.map +1 -0
- package/dist/dts/internal/strategies.d.ts +9 -0
- package/dist/dts/internal/strategies.d.ts.map +1 -0
- package/dist/dts/internal/sync-operator.d.ts +28 -0
- package/dist/dts/internal/sync-operator.d.ts.map +1 -0
- package/dist/dts/internal/versioned-transform.d.ts +17 -0
- package/dist/dts/internal/versioned-transform.d.ts.map +1 -0
- package/dist/dts/internal/withKey.d.ts +4 -0
- package/dist/dts/internal/withKey.d.ts.map +1 -0
- package/dist/esm/Computed.js +103 -0
- package/dist/esm/Computed.js.map +1 -0
- package/dist/esm/Emitter.js +28 -0
- package/dist/esm/Emitter.js.map +1 -0
- package/dist/esm/Filtered.js +83 -0
- package/dist/esm/Filtered.js.map +1 -0
- package/dist/esm/Form.js +111 -0
- package/dist/esm/Form.js.map +1 -0
- package/dist/esm/FormEntry.js +72 -0
- package/dist/esm/FormEntry.js.map +1 -0
- package/dist/esm/Fx.js +1298 -0
- package/dist/esm/Fx.js.map +1 -0
- package/dist/esm/Guard.js +56 -0
- package/dist/esm/Guard.js.map +1 -0
- package/dist/esm/Idle.js +166 -0
- package/dist/esm/Idle.js.map +1 -0
- package/dist/esm/Match.js +149 -0
- package/dist/esm/Match.js.map +1 -0
- package/dist/esm/Model.js +100 -0
- package/dist/esm/Model.js.map +1 -0
- package/dist/esm/Pull.js +41 -0
- package/dist/esm/Pull.js.map +1 -0
- package/dist/esm/RefArray.js +232 -0
- package/dist/esm/RefArray.js.map +1 -0
- package/dist/esm/RefAsyncData.js +163 -0
- package/dist/esm/RefAsyncData.js.map +1 -0
- package/dist/esm/RefAsyncDataArray.js +27 -0
- package/dist/esm/RefAsyncDataArray.js.map +1 -0
- package/dist/esm/RefBoolean.js +31 -0
- package/dist/esm/RefBoolean.js.map +1 -0
- package/dist/esm/RefChunk.js +194 -0
- package/dist/esm/RefChunk.js.map +1 -0
- package/dist/esm/RefHashMap.js +176 -0
- package/dist/esm/RefHashMap.js.map +1 -0
- package/dist/esm/RefHashSet.js +83 -0
- package/dist/esm/RefHashSet.js.map +1 -0
- package/dist/esm/RefNumber.js +35 -0
- package/dist/esm/RefNumber.js.map +1 -0
- package/dist/esm/RefSubject.js +217 -0
- package/dist/esm/RefSubject.js.map +1 -0
- package/dist/esm/Sink.js +108 -0
- package/dist/esm/Sink.js.map +1 -0
- package/dist/esm/Stream.js +72 -0
- package/dist/esm/Stream.js.map +1 -0
- package/dist/esm/Subject.js +84 -0
- package/dist/esm/Subject.js.map +1 -0
- package/dist/esm/TypeId.js +21 -0
- package/dist/esm/TypeId.js.map +1 -0
- package/dist/esm/Typeclass.js +375 -0
- package/dist/esm/Typeclass.js.map +1 -0
- package/dist/esm/Versioned.js +94 -0
- package/dist/esm/Versioned.js.map +1 -0
- package/dist/esm/index.js +56 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/bounds.js +13 -0
- package/dist/esm/internal/bounds.js.map +1 -0
- package/dist/esm/internal/core-ref-subject.js +242 -0
- package/dist/esm/internal/core-ref-subject.js.map +1 -0
- package/dist/esm/internal/core-subject.js +90 -0
- package/dist/esm/internal/core-subject.js.map +1 -0
- package/dist/esm/internal/core.js +841 -0
- package/dist/esm/internal/core.js.map +1 -0
- package/dist/esm/internal/deferred-ref.js +23 -0
- package/dist/esm/internal/deferred-ref.js.map +1 -0
- package/dist/esm/internal/effect-operator.js +127 -0
- package/dist/esm/internal/effect-operator.js.map +1 -0
- package/dist/esm/internal/effect-primitive.js +41 -0
- package/dist/esm/internal/effect-primitive.js.map +1 -0
- package/dist/esm/internal/fx-effect-proto.js +43 -0
- package/dist/esm/internal/fx-effect-proto.js.map +1 -0
- package/dist/esm/internal/fx-primitive.js +175 -0
- package/dist/esm/internal/fx-primitive.js.map +1 -0
- package/dist/esm/internal/fx.js +216 -0
- package/dist/esm/internal/fx.js.map +1 -0
- package/dist/esm/internal/helpers.js +253 -0
- package/dist/esm/internal/helpers.js.map +1 -0
- package/dist/esm/internal/keyed.js +156 -0
- package/dist/esm/internal/keyed.js.map +1 -0
- package/dist/esm/internal/matchers.js +38 -0
- package/dist/esm/internal/matchers.js.map +1 -0
- package/dist/esm/internal/protos.js +98 -0
- package/dist/esm/internal/protos.js.map +1 -0
- package/dist/esm/internal/provide.js +64 -0
- package/dist/esm/internal/provide.js.map +1 -0
- package/dist/esm/internal/requestIdleCallback.js +16 -0
- package/dist/esm/internal/requestIdleCallback.js.map +1 -0
- package/dist/esm/internal/run.js +32 -0
- package/dist/esm/internal/run.js.map +1 -0
- package/dist/esm/internal/schema-ref-subject.js +121 -0
- package/dist/esm/internal/schema-ref-subject.js.map +1 -0
- package/dist/esm/internal/share.js +64 -0
- package/dist/esm/internal/share.js.map +1 -0
- package/dist/esm/internal/strategies.js +8 -0
- package/dist/esm/internal/strategies.js.map +1 -0
- package/dist/esm/internal/sync-operator.js +67 -0
- package/dist/esm/internal/sync-operator.js.map +1 -0
- package/dist/esm/internal/versioned-transform.js +37 -0
- package/dist/esm/internal/versioned-transform.js.map +1 -0
- package/dist/esm/internal/withKey.js +57 -0
- package/dist/esm/internal/withKey.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +240 -30
- package/src/Computed.ts +247 -121
- package/src/Emitter.ts +54 -0
- package/src/Filtered.ts +239 -128
- package/src/Form.ts +373 -0
- package/src/FormEntry.ts +174 -0
- package/src/Fx.ts +2632 -43
- package/src/Guard.ts +159 -0
- package/src/Idle.ts +284 -0
- package/src/Match.ts +273 -0
- package/src/Model.ts +483 -0
- package/src/Pull.ts +96 -0
- package/src/RefArray.ts +507 -223
- package/src/RefAsyncData.ts +547 -0
- package/src/RefAsyncDataArray.ts +135 -0
- package/src/RefBoolean.ts +71 -0
- package/src/RefChunk.ts +403 -0
- package/src/RefHashMap.ts +319 -0
- package/src/RefHashSet.ts +188 -0
- package/src/RefNumber.ts +77 -0
- package/src/RefSubject.ts +583 -740
- package/src/Sink.ts +268 -11
- package/src/Stream.ts +128 -0
- package/src/Subject.ts +129 -23
- package/src/TypeId.ts +47 -0
- package/src/Typeclass.ts +460 -0
- package/src/Versioned.ts +302 -0
- package/src/index.ts +64 -1083
- package/src/internal/bounds.ts +21 -0
- package/src/internal/core-ref-subject.ts +528 -0
- package/src/internal/core-subject.ts +143 -0
- package/src/internal/core.ts +2198 -0
- package/src/internal/deferred-ref.ts +26 -0
- package/src/internal/effect-operator.ts +282 -0
- package/src/internal/effect-primitive.ts +230 -0
- package/src/internal/fx-effect-proto.ts +56 -0
- package/src/internal/fx-primitive.ts +223 -0
- package/src/internal/fx.ts +619 -0
- package/src/internal/helpers.ts +428 -0
- package/src/internal/keyed.ts +281 -0
- package/src/internal/matchers.ts +83 -0
- package/src/internal/protos.ts +132 -0
- package/src/internal/provide.ts +143 -0
- package/src/internal/requestIdleCallback.ts +20 -0
- package/src/internal/run.ts +51 -0
- package/src/internal/schema-ref-subject.ts +163 -0
- package/src/internal/share.ts +105 -0
- package/src/internal/strategies.ts +15 -0
- package/src/internal/sync-operator.ts +125 -0
- package/src/internal/versioned-transform.ts +48 -0
- package/src/internal/withKey.ts +92 -0
- package/dist/Computed.d.ts +0 -60
- package/dist/Computed.d.ts.map +0 -1
- package/dist/Computed.js +0 -51
- package/dist/Computed.js.map +0 -1
- package/dist/Filtered.d.ts +0 -52
- package/dist/Filtered.d.ts.map +0 -1
- package/dist/Filtered.js +0 -51
- package/dist/Filtered.js.map +0 -1
- package/dist/Fx.d.ts +0 -27
- package/dist/Fx.d.ts.map +0 -1
- package/dist/Fx.js +0 -28
- package/dist/Fx.js.map +0 -1
- package/dist/RefArray.d.ts +0 -116
- package/dist/RefArray.d.ts.map +0 -1
- package/dist/RefArray.js +0 -67
- package/dist/RefArray.js.map +0 -1
- package/dist/RefRemoteData.d.ts +0 -44
- package/dist/RefRemoteData.d.ts.map +0 -1
- package/dist/RefRemoteData.js +0 -63
- package/dist/RefRemoteData.js.map +0 -1
- package/dist/RefSubject.d.ts +0 -53
- package/dist/RefSubject.d.ts.map +0 -1
- package/dist/RefSubject.js +0 -404
- package/dist/RefSubject.js.map +0 -1
- package/dist/RefTransform.d.ts +0 -74
- package/dist/RefTransform.d.ts.map +0 -1
- package/dist/RefTransform.js +0 -86
- package/dist/RefTransform.js.map +0 -1
- package/dist/Sink.d.ts +0 -8
- package/dist/Sink.d.ts.map +0 -1
- package/dist/Sink.js +0 -7
- package/dist/Sink.js.map +0 -1
- package/dist/Subject.d.ts +0 -18
- package/dist/Subject.d.ts.map +0 -1
- package/dist/Subject.js +0 -24
- package/dist/Subject.js.map +0 -1
- package/dist/Transducer.d.ts +0 -2
- package/dist/Transducer.d.ts.map +0 -1
- package/dist/Transducer.js +0 -2
- package/dist/Transducer.js.map +0 -1
- package/dist/at.d.ts +0 -4
- package/dist/at.d.ts.map +0 -1
- package/dist/at.js +0 -6
- package/dist/at.js.map +0 -1
- package/dist/catchAllCause.d.ts +0 -14
- package/dist/catchAllCause.d.ts.map +0 -1
- package/dist/catchAllCause.js +0 -39
- package/dist/catchAllCause.js.map +0 -1
- package/dist/cjs/Computed.d.ts +0 -60
- package/dist/cjs/Computed.d.ts.map +0 -1
- package/dist/cjs/Filtered.d.ts +0 -52
- package/dist/cjs/Filtered.d.ts.map +0 -1
- package/dist/cjs/Fx.d.ts +0 -27
- package/dist/cjs/Fx.d.ts.map +0 -1
- package/dist/cjs/RefArray.d.ts +0 -116
- package/dist/cjs/RefArray.d.ts.map +0 -1
- package/dist/cjs/RefRemoteData.d.ts +0 -44
- package/dist/cjs/RefRemoteData.d.ts.map +0 -1
- package/dist/cjs/RefRemoteData.js +0 -93
- package/dist/cjs/RefRemoteData.js.map +0 -1
- package/dist/cjs/RefSubject.d.ts +0 -53
- package/dist/cjs/RefSubject.d.ts.map +0 -1
- package/dist/cjs/RefTransform.d.ts +0 -74
- package/dist/cjs/RefTransform.d.ts.map +0 -1
- package/dist/cjs/RefTransform.js +0 -113
- package/dist/cjs/RefTransform.js.map +0 -1
- package/dist/cjs/Sink.d.ts +0 -8
- package/dist/cjs/Sink.d.ts.map +0 -1
- package/dist/cjs/Subject.d.ts +0 -18
- package/dist/cjs/Subject.d.ts.map +0 -1
- package/dist/cjs/Transducer.d.ts +0 -2
- package/dist/cjs/Transducer.d.ts.map +0 -1
- package/dist/cjs/Transducer.js +0 -3
- package/dist/cjs/Transducer.js.map +0 -1
- package/dist/cjs/at.d.ts +0 -4
- package/dist/cjs/at.d.ts.map +0 -1
- package/dist/cjs/at.js +0 -33
- package/dist/cjs/at.js.map +0 -1
- package/dist/cjs/catchAllCause.d.ts +0 -14
- package/dist/cjs/catchAllCause.d.ts.map +0 -1
- package/dist/cjs/catchAllCause.js +0 -71
- package/dist/cjs/catchAllCause.js.map +0 -1
- package/dist/cjs/combineAll.d.ts +0 -6
- package/dist/cjs/combineAll.d.ts.map +0 -1
- package/dist/cjs/combineAll.js +0 -55
- package/dist/cjs/combineAll.js.map +0 -1
- package/dist/cjs/combineAllDiscard.d.ts +0 -3
- package/dist/cjs/combineAllDiscard.d.ts.map +0 -1
- package/dist/cjs/combineAllDiscard.js +0 -49
- package/dist/cjs/combineAllDiscard.js.map +0 -1
- package/dist/cjs/continueWith.d.ts +0 -7
- package/dist/cjs/continueWith.d.ts.map +0 -1
- package/dist/cjs/continueWith.js +0 -47
- package/dist/cjs/continueWith.js.map +0 -1
- package/dist/cjs/data-first.d.ts +0 -68
- package/dist/cjs/data-first.d.ts.map +0 -1
- package/dist/cjs/data-first.js +0 -84
- package/dist/cjs/data-first.js.map +0 -1
- package/dist/cjs/debounce.d.ts +0 -4
- package/dist/cjs/debounce.d.ts.map +0 -1
- package/dist/cjs/debounce.js +0 -33
- package/dist/cjs/debounce.js.map +0 -1
- package/dist/cjs/delay.d.ts +0 -4
- package/dist/cjs/delay.d.ts.map +0 -1
- package/dist/cjs/delay.js +0 -33
- package/dist/cjs/delay.js.map +0 -1
- package/dist/cjs/empty.d.ts +0 -3
- package/dist/cjs/empty.d.ts.map +0 -1
- package/dist/cjs/empty.js +0 -33
- package/dist/cjs/empty.js.map +0 -1
- package/dist/cjs/exhaustMap.d.ts +0 -7
- package/dist/cjs/exhaustMap.d.ts.map +0 -1
- package/dist/cjs/exhaustMap.js +0 -23
- package/dist/cjs/exhaustMap.js.map +0 -1
- package/dist/cjs/exhaustMapCause.d.ts +0 -8
- package/dist/cjs/exhaustMapCause.d.ts.map +0 -1
- package/dist/cjs/exhaustMapCause.js +0 -50
- package/dist/cjs/exhaustMapCause.js.map +0 -1
- package/dist/cjs/exhaustMapLatest.d.ts +0 -7
- package/dist/cjs/exhaustMapLatest.d.ts.map +0 -1
- package/dist/cjs/exhaustMapLatest.js +0 -23
- package/dist/cjs/exhaustMapLatest.js.map +0 -1
- package/dist/cjs/exhaustMapLatestCause.d.ts +0 -8
- package/dist/cjs/exhaustMapLatestCause.d.ts.map +0 -1
- package/dist/cjs/exhaustMapLatestCause.js +0 -50
- package/dist/cjs/exhaustMapLatestCause.js.map +0 -1
- package/dist/cjs/failCause.d.ts +0 -8
- package/dist/cjs/failCause.d.ts.map +0 -1
- package/dist/cjs/failCause.js +0 -45
- package/dist/cjs/failCause.js.map +0 -1
- package/dist/cjs/filter.d.ts +0 -7
- package/dist/cjs/filter.d.ts.map +0 -1
- package/dist/cjs/filter.js +0 -38
- package/dist/cjs/filter.js.map +0 -1
- package/dist/cjs/filterMap.d.ts +0 -5
- package/dist/cjs/filterMap.d.ts.map +0 -1
- package/dist/cjs/filterMap.js +0 -38
- package/dist/cjs/filterMap.js.map +0 -1
- package/dist/cjs/flatMap.d.ts +0 -7
- package/dist/cjs/flatMap.d.ts.map +0 -1
- package/dist/cjs/flatMap.js +0 -23
- package/dist/cjs/flatMap.js.map +0 -1
- package/dist/cjs/fromArray.d.ts +0 -3
- package/dist/cjs/fromArray.d.ts.map +0 -1
- package/dist/cjs/fromArray.js +0 -42
- package/dist/cjs/fromArray.js.map +0 -1
- package/dist/cjs/fromDequeue.d.ts +0 -5
- package/dist/cjs/fromDequeue.d.ts.map +0 -1
- package/dist/cjs/fromDequeue.js +0 -49
- package/dist/cjs/fromDequeue.js.map +0 -1
- package/dist/cjs/fromEffect.d.ts +0 -4
- package/dist/cjs/fromEffect.d.ts.map +0 -1
- package/dist/cjs/fromEffect.js +0 -46
- package/dist/cjs/fromEffect.js.map +0 -1
- package/dist/cjs/fromEmitter.d.ts +0 -11
- package/dist/cjs/fromEmitter.d.ts.map +0 -1
- package/dist/cjs/fromEmitter.js +0 -53
- package/dist/cjs/fromEmitter.js.map +0 -1
- package/dist/cjs/fromFxEffect.d.ts +0 -4
- package/dist/cjs/fromFxEffect.d.ts.map +0 -1
- package/dist/cjs/fromFxEffect.js +0 -33
- package/dist/cjs/fromFxEffect.js.map +0 -1
- package/dist/cjs/fromHub.d.ts +0 -5
- package/dist/cjs/fromHub.d.ts.map +0 -1
- package/dist/cjs/fromHub.js +0 -34
- package/dist/cjs/fromHub.js.map +0 -1
- package/dist/cjs/fromIterable.d.ts +0 -3
- package/dist/cjs/fromIterable.d.ts.map +0 -1
- package/dist/cjs/fromIterable.js +0 -47
- package/dist/cjs/fromIterable.js.map +0 -1
- package/dist/cjs/gen.d.ts +0 -7
- package/dist/cjs/gen.d.ts.map +0 -1
- package/dist/cjs/gen.js +0 -33
- package/dist/cjs/gen.js.map +0 -1
- package/dist/cjs/helpers.d.ts +0 -12
- package/dist/cjs/helpers.d.ts.map +0 -1
- package/dist/cjs/helpers.js +0 -90
- package/dist/cjs/helpers.js.map +0 -1
- package/dist/cjs/hold.d.ts +0 -14
- package/dist/cjs/hold.d.ts.map +0 -1
- package/dist/cjs/hold.js +0 -56
- package/dist/cjs/hold.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -391
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/keyed.d.ts +0 -4
- package/dist/cjs/keyed.d.ts.map +0 -1
- package/dist/cjs/keyed.js +0 -183
- package/dist/cjs/keyed.js.map +0 -1
- package/dist/cjs/map.d.ts +0 -4
- package/dist/cjs/map.d.ts.map +0 -1
- package/dist/cjs/map.js +0 -37
- package/dist/cjs/map.js.map +0 -1
- package/dist/cjs/mapEffect.d.ts +0 -7
- package/dist/cjs/mapEffect.d.ts.map +0 -1
- package/dist/cjs/mapEffect.js +0 -36
- package/dist/cjs/mapEffect.js.map +0 -1
- package/dist/cjs/mergeAll.d.ts +0 -5
- package/dist/cjs/mergeAll.d.ts.map +0 -1
- package/dist/cjs/mergeAll.js +0 -45
- package/dist/cjs/mergeAll.js.map +0 -1
- package/dist/cjs/mergeBufferConcurrently.d.ts +0 -8
- package/dist/cjs/mergeBufferConcurrently.d.ts.map +0 -1
- package/dist/cjs/mergeBufferConcurrently.js +0 -97
- package/dist/cjs/mergeBufferConcurrently.js.map +0 -1
- package/dist/cjs/mergeConcurrently.d.ts +0 -3
- package/dist/cjs/mergeConcurrently.d.ts.map +0 -1
- package/dist/cjs/mergeConcurrently.js +0 -69
- package/dist/cjs/mergeConcurrently.js.map +0 -1
- package/dist/cjs/multicast.d.ts +0 -32
- package/dist/cjs/multicast.d.ts.map +0 -1
- package/dist/cjs/multicast.js +0 -110
- package/dist/cjs/multicast.js.map +0 -1
- package/dist/cjs/never.d.ts +0 -3
- package/dist/cjs/never.d.ts.map +0 -1
- package/dist/cjs/never.js +0 -33
- package/dist/cjs/never.js.map +0 -1
- package/dist/cjs/observe.d.ts +0 -9
- package/dist/cjs/observe.d.ts.map +0 -1
- package/dist/cjs/observe.js +0 -52
- package/dist/cjs/observe.js.map +0 -1
- package/dist/cjs/onExit.d.ts +0 -5
- package/dist/cjs/onExit.d.ts.map +0 -1
- package/dist/cjs/onExit.js +0 -33
- package/dist/cjs/onExit.js.map +0 -1
- package/dist/cjs/onInterrupt.d.ts +0 -6
- package/dist/cjs/onInterrupt.d.ts.map +0 -1
- package/dist/cjs/onInterrupt.js +0 -33
- package/dist/cjs/onInterrupt.js.map +0 -1
- package/dist/cjs/orElse.d.ts +0 -4
- package/dist/cjs/orElse.d.ts.map +0 -1
- package/dist/cjs/orElse.js +0 -34
- package/dist/cjs/orElse.js.map +0 -1
- package/dist/cjs/promise.d.ts +0 -8
- package/dist/cjs/promise.d.ts.map +0 -1
- package/dist/cjs/promise.js +0 -54
- package/dist/cjs/promise.js.map +0 -1
- package/dist/cjs/provide.d.ts +0 -12
- package/dist/cjs/provide.d.ts.map +0 -1
- package/dist/cjs/provide.js +0 -62
- package/dist/cjs/provide.js.map +0 -1
- package/dist/cjs/reduce.d.ts +0 -5
- package/dist/cjs/reduce.d.ts.map +0 -1
- package/dist/cjs/reduce.js +0 -37
- package/dist/cjs/reduce.js.map +0 -1
- package/dist/cjs/scan.d.ts +0 -3
- package/dist/cjs/scan.d.ts.map +0 -1
- package/dist/cjs/scan.js +0 -36
- package/dist/cjs/scan.js.map +0 -1
- package/dist/cjs/scoped.d.ts +0 -4
- package/dist/cjs/scoped.d.ts.map +0 -1
- package/dist/cjs/scoped.js +0 -33
- package/dist/cjs/scoped.js.map +0 -1
- package/dist/cjs/skipRepeats.d.ts +0 -5
- package/dist/cjs/skipRepeats.d.ts.map +0 -1
- package/dist/cjs/skipRepeats.js +0 -46
- package/dist/cjs/skipRepeats.js.map +0 -1
- package/dist/cjs/skipWhile.d.ts +0 -5
- package/dist/cjs/skipWhile.d.ts.map +0 -1
- package/dist/cjs/skipWhile.js +0 -46
- package/dist/cjs/skipWhile.js.map +0 -1
- package/dist/cjs/slice.d.ts +0 -5
- package/dist/cjs/slice.d.ts.map +0 -1
- package/dist/cjs/slice.js +0 -55
- package/dist/cjs/slice.js.map +0 -1
- package/dist/cjs/snapshotEffect.d.ts +0 -5
- package/dist/cjs/snapshotEffect.d.ts.map +0 -1
- package/dist/cjs/snapshotEffect.js +0 -50
- package/dist/cjs/snapshotEffect.js.map +0 -1
- package/dist/cjs/struct.d.ts +0 -5
- package/dist/cjs/struct.d.ts.map +0 -1
- package/dist/cjs/struct.js +0 -10
- package/dist/cjs/struct.js.map +0 -1
- package/dist/cjs/succeed.d.ts +0 -4
- package/dist/cjs/succeed.d.ts.map +0 -1
- package/dist/cjs/succeed.js +0 -10
- package/dist/cjs/succeed.js.map +0 -1
- package/dist/cjs/suspend.d.ts +0 -3
- package/dist/cjs/suspend.d.ts.map +0 -1
- package/dist/cjs/suspend.js +0 -9
- package/dist/cjs/suspend.js.map +0 -1
- package/dist/cjs/switchMap.d.ts +0 -7
- package/dist/cjs/switchMap.d.ts.map +0 -1
- package/dist/cjs/switchMap.js +0 -46
- package/dist/cjs/switchMap.js.map +0 -1
- package/dist/cjs/switchMapCause.d.ts +0 -9
- package/dist/cjs/switchMapCause.d.ts.map +0 -1
- package/dist/cjs/switchMapCause.js +0 -61
- package/dist/cjs/switchMapCause.js.map +0 -1
- package/dist/cjs/switchMatch.d.ts +0 -8
- package/dist/cjs/switchMatch.d.ts.map +0 -1
- package/dist/cjs/switchMatch.js +0 -50
- package/dist/cjs/switchMatch.js.map +0 -1
- package/dist/cjs/takeWhile.d.ts +0 -5
- package/dist/cjs/takeWhile.d.ts.map +0 -1
- package/dist/cjs/takeWhile.js +0 -46
- package/dist/cjs/takeWhile.js.map +0 -1
- package/dist/cjs/tap.d.ts +0 -5
- package/dist/cjs/tap.d.ts.map +0 -1
- package/dist/cjs/tap.js +0 -37
- package/dist/cjs/tap.js.map +0 -1
- package/dist/cjs/tapCause.d.ts +0 -8
- package/dist/cjs/tapCause.d.ts.map +0 -1
- package/dist/cjs/tapCause.js +0 -50
- package/dist/cjs/tapCause.js.map +0 -1
- package/dist/cjs/test-utils.d.ts +0 -5
- package/dist/cjs/test-utils.d.ts.map +0 -1
- package/dist/cjs/test-utils.js +0 -52
- package/dist/cjs/test-utils.js.map +0 -1
- package/dist/cjs/throttle.d.ts +0 -4
- package/dist/cjs/throttle.d.ts.map +0 -1
- package/dist/cjs/throttle.js +0 -34
- package/dist/cjs/throttle.js.map +0 -1
- package/dist/cjs/toArray.d.ts +0 -5
- package/dist/cjs/toArray.d.ts.map +0 -1
- package/dist/cjs/toArray.js +0 -36
- package/dist/cjs/toArray.js.map +0 -1
- package/dist/cjs/toChunk.d.ts +0 -6
- package/dist/cjs/toChunk.d.ts.map +0 -1
- package/dist/cjs/toChunk.js +0 -38
- package/dist/cjs/toChunk.js.map +0 -1
- package/dist/cjs/toEnqueue.d.ts +0 -6
- package/dist/cjs/toEnqueue.d.ts.map +0 -1
- package/dist/cjs/toEnqueue.js +0 -9
- package/dist/cjs/toEnqueue.js.map +0 -1
- package/dist/cjs/toReadonlyArray.d.ts +0 -5
- package/dist/cjs/toReadonlyArray.d.ts.map +0 -1
- package/dist/cjs/toReadonlyArray.js +0 -9
- package/dist/cjs/toReadonlyArray.js.map +0 -1
- package/dist/cjs/toStream.d.ts +0 -4
- package/dist/cjs/toStream.d.ts.map +0 -1
- package/dist/cjs/toStream.js +0 -39
- package/dist/cjs/toStream.js.map +0 -1
- package/dist/combineAll.d.ts +0 -6
- package/dist/combineAll.d.ts.map +0 -1
- package/dist/combineAll.js +0 -27
- package/dist/combineAll.js.map +0 -1
- package/dist/combineAllDiscard.d.ts +0 -3
- package/dist/combineAllDiscard.d.ts.map +0 -1
- package/dist/combineAllDiscard.js +0 -22
- package/dist/combineAllDiscard.js.map +0 -1
- package/dist/continueWith.d.ts +0 -7
- package/dist/continueWith.d.ts.map +0 -1
- package/dist/continueWith.js +0 -17
- package/dist/continueWith.js.map +0 -1
- package/dist/data-first.d.ts +0 -68
- package/dist/data-first.d.ts.map +0 -1
- package/dist/data-first.js +0 -68
- package/dist/data-first.js.map +0 -1
- package/dist/debounce.d.ts +0 -4
- package/dist/debounce.d.ts.map +0 -1
- package/dist/debounce.js +0 -6
- package/dist/debounce.js.map +0 -1
- package/dist/delay.d.ts +0 -4
- package/dist/delay.d.ts.map +0 -1
- package/dist/delay.js +0 -6
- package/dist/delay.js.map +0 -1
- package/dist/empty.d.ts +0 -3
- package/dist/empty.d.ts.map +0 -1
- package/dist/empty.js +0 -6
- package/dist/empty.js.map +0 -1
- package/dist/exhaustMap.d.ts +0 -7
- package/dist/exhaustMap.d.ts.map +0 -1
- package/dist/exhaustMap.js +0 -16
- package/dist/exhaustMap.js.map +0 -1
- package/dist/exhaustMapCause.d.ts +0 -8
- package/dist/exhaustMapCause.d.ts.map +0 -1
- package/dist/exhaustMapCause.js +0 -20
- package/dist/exhaustMapCause.js.map +0 -1
- package/dist/exhaustMapLatest.d.ts +0 -7
- package/dist/exhaustMapLatest.d.ts.map +0 -1
- package/dist/exhaustMapLatest.js +0 -16
- package/dist/exhaustMapLatest.js.map +0 -1
- package/dist/exhaustMapLatestCause.d.ts +0 -8
- package/dist/exhaustMapLatestCause.d.ts.map +0 -1
- package/dist/exhaustMapLatestCause.js +0 -20
- package/dist/exhaustMapLatestCause.js.map +0 -1
- package/dist/failCause.d.ts +0 -8
- package/dist/failCause.d.ts.map +0 -1
- package/dist/failCause.js +0 -15
- package/dist/failCause.js.map +0 -1
- package/dist/filter.d.ts +0 -7
- package/dist/filter.d.ts.map +0 -1
- package/dist/filter.js +0 -10
- package/dist/filter.js.map +0 -1
- package/dist/filterMap.d.ts +0 -5
- package/dist/filterMap.d.ts.map +0 -1
- package/dist/filterMap.js +0 -10
- package/dist/filterMap.js.map +0 -1
- package/dist/flatMap.d.ts +0 -7
- package/dist/flatMap.d.ts.map +0 -1
- package/dist/flatMap.js +0 -16
- package/dist/flatMap.js.map +0 -1
- package/dist/fromArray.d.ts +0 -3
- package/dist/fromArray.d.ts.map +0 -1
- package/dist/fromArray.js +0 -15
- package/dist/fromArray.js.map +0 -1
- package/dist/fromDequeue.d.ts +0 -5
- package/dist/fromDequeue.d.ts.map +0 -1
- package/dist/fromDequeue.js +0 -21
- package/dist/fromDequeue.js.map +0 -1
- package/dist/fromEffect.d.ts +0 -4
- package/dist/fromEffect.d.ts.map +0 -1
- package/dist/fromEffect.js +0 -19
- package/dist/fromEffect.js.map +0 -1
- package/dist/fromEmitter.d.ts +0 -11
- package/dist/fromEmitter.d.ts.map +0 -1
- package/dist/fromEmitter.js +0 -26
- package/dist/fromEmitter.js.map +0 -1
- package/dist/fromFxEffect.d.ts +0 -4
- package/dist/fromFxEffect.d.ts.map +0 -1
- package/dist/fromFxEffect.js +0 -6
- package/dist/fromFxEffect.js.map +0 -1
- package/dist/fromHub.d.ts +0 -5
- package/dist/fromHub.d.ts.map +0 -1
- package/dist/fromHub.js +0 -7
- package/dist/fromHub.js.map +0 -1
- package/dist/fromIterable.d.ts +0 -3
- package/dist/fromIterable.d.ts.map +0 -1
- package/dist/fromIterable.js +0 -20
- package/dist/fromIterable.js.map +0 -1
- package/dist/gen.d.ts +0 -7
- package/dist/gen.d.ts.map +0 -1
- package/dist/gen.js +0 -6
- package/dist/gen.js.map +0 -1
- package/dist/helpers.d.ts +0 -12
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js +0 -59
- package/dist/helpers.js.map +0 -1
- package/dist/hold.d.ts +0 -14
- package/dist/hold.d.ts.map +0 -1
- package/dist/hold.js +0 -28
- package/dist/hold.js.map +0 -1
- package/dist/index.d.ts +0 -391
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -139
- package/dist/index.js.map +0 -1
- package/dist/keyed.d.ts +0 -4
- package/dist/keyed.d.ts.map +0 -1
- package/dist/keyed.js +0 -156
- package/dist/keyed.js.map +0 -1
- package/dist/map.d.ts +0 -4
- package/dist/map.d.ts.map +0 -1
- package/dist/map.js +0 -9
- package/dist/map.js.map +0 -1
- package/dist/mapEffect.d.ts +0 -7
- package/dist/mapEffect.d.ts.map +0 -1
- package/dist/mapEffect.js +0 -9
- package/dist/mapEffect.js.map +0 -1
- package/dist/mergeAll.d.ts +0 -5
- package/dist/mergeAll.d.ts.map +0 -1
- package/dist/mergeAll.js +0 -16
- package/dist/mergeAll.js.map +0 -1
- package/dist/mergeBufferConcurrently.d.ts +0 -8
- package/dist/mergeBufferConcurrently.d.ts.map +0 -1
- package/dist/mergeBufferConcurrently.js +0 -70
- package/dist/mergeBufferConcurrently.js.map +0 -1
- package/dist/mergeConcurrently.d.ts +0 -3
- package/dist/mergeConcurrently.d.ts.map +0 -1
- package/dist/mergeConcurrently.js +0 -42
- package/dist/mergeConcurrently.js.map +0 -1
- package/dist/multicast.d.ts +0 -32
- package/dist/multicast.d.ts.map +0 -1
- package/dist/multicast.js +0 -82
- package/dist/multicast.js.map +0 -1
- package/dist/never.d.ts +0 -3
- package/dist/never.d.ts.map +0 -1
- package/dist/never.js +0 -6
- package/dist/never.js.map +0 -1
- package/dist/observe.d.ts +0 -9
- package/dist/observe.d.ts.map +0 -1
- package/dist/observe.js +0 -22
- package/dist/observe.js.map +0 -1
- package/dist/onExit.d.ts +0 -5
- package/dist/onExit.d.ts.map +0 -1
- package/dist/onExit.js +0 -6
- package/dist/onExit.js.map +0 -1
- package/dist/onInterrupt.d.ts +0 -6
- package/dist/onInterrupt.d.ts.map +0 -1
- package/dist/onInterrupt.js +0 -6
- package/dist/onInterrupt.js.map +0 -1
- package/dist/orElse.d.ts +0 -4
- package/dist/orElse.d.ts.map +0 -1
- package/dist/orElse.js +0 -7
- package/dist/orElse.js.map +0 -1
- package/dist/promise.d.ts +0 -8
- package/dist/promise.d.ts.map +0 -1
- package/dist/promise.js +0 -22
- package/dist/promise.js.map +0 -1
- package/dist/provide.d.ts +0 -12
- package/dist/provide.d.ts.map +0 -1
- package/dist/provide.js +0 -29
- package/dist/provide.js.map +0 -1
- package/dist/reduce.d.ts +0 -5
- package/dist/reduce.d.ts.map +0 -1
- package/dist/reduce.js +0 -10
- package/dist/reduce.js.map +0 -1
- package/dist/scan.d.ts +0 -3
- package/dist/scan.d.ts.map +0 -1
- package/dist/scan.js +0 -9
- package/dist/scan.js.map +0 -1
- package/dist/scoped.d.ts +0 -4
- package/dist/scoped.d.ts.map +0 -1
- package/dist/scoped.js +0 -6
- package/dist/scoped.js.map +0 -1
- package/dist/skipRepeats.d.ts +0 -5
- package/dist/skipRepeats.d.ts.map +0 -1
- package/dist/skipRepeats.js +0 -15
- package/dist/skipRepeats.js.map +0 -1
- package/dist/skipWhile.d.ts +0 -5
- package/dist/skipWhile.d.ts.map +0 -1
- package/dist/skipWhile.js +0 -18
- package/dist/skipWhile.js.map +0 -1
- package/dist/slice.d.ts +0 -5
- package/dist/slice.d.ts.map +0 -1
- package/dist/slice.js +0 -26
- package/dist/slice.js.map +0 -1
- package/dist/snapshotEffect.d.ts +0 -5
- package/dist/snapshotEffect.d.ts.map +0 -1
- package/dist/snapshotEffect.js +0 -22
- package/dist/snapshotEffect.js.map +0 -1
- package/dist/struct.d.ts +0 -5
- package/dist/struct.d.ts.map +0 -1
- package/dist/struct.js +0 -6
- package/dist/struct.js.map +0 -1
- package/dist/succeed.d.ts +0 -4
- package/dist/succeed.d.ts.map +0 -1
- package/dist/succeed.js +0 -6
- package/dist/succeed.js.map +0 -1
- package/dist/suspend.d.ts +0 -3
- package/dist/suspend.d.ts.map +0 -1
- package/dist/suspend.js +0 -5
- package/dist/suspend.js.map +0 -1
- package/dist/switchMap.d.ts +0 -7
- package/dist/switchMap.d.ts.map +0 -1
- package/dist/switchMap.js +0 -16
- package/dist/switchMap.js.map +0 -1
- package/dist/switchMapCause.d.ts +0 -9
- package/dist/switchMapCause.d.ts.map +0 -1
- package/dist/switchMapCause.js +0 -30
- package/dist/switchMapCause.js.map +0 -1
- package/dist/switchMatch.d.ts +0 -8
- package/dist/switchMatch.d.ts.map +0 -1
- package/dist/switchMatch.js +0 -20
- package/dist/switchMatch.js.map +0 -1
- package/dist/takeWhile.d.ts +0 -5
- package/dist/takeWhile.d.ts.map +0 -1
- package/dist/takeWhile.js +0 -18
- package/dist/takeWhile.js.map +0 -1
- package/dist/tap.d.ts +0 -5
- package/dist/tap.d.ts.map +0 -1
- package/dist/tap.js +0 -9
- package/dist/tap.js.map +0 -1
- package/dist/tapCause.d.ts +0 -8
- package/dist/tapCause.d.ts.map +0 -1
- package/dist/tapCause.js +0 -20
- package/dist/tapCause.js.map +0 -1
- package/dist/test-utils.d.ts +0 -5
- package/dist/test-utils.d.ts.map +0 -1
- package/dist/test-utils.js +0 -24
- package/dist/test-utils.js.map +0 -1
- package/dist/throttle.d.ts +0 -4
- package/dist/throttle.d.ts.map +0 -1
- package/dist/throttle.js +0 -7
- package/dist/throttle.js.map +0 -1
- package/dist/toArray.d.ts +0 -5
- package/dist/toArray.d.ts.map +0 -1
- package/dist/toArray.js +0 -9
- package/dist/toArray.js.map +0 -1
- package/dist/toChunk.d.ts +0 -6
- package/dist/toChunk.d.ts.map +0 -1
- package/dist/toChunk.js +0 -11
- package/dist/toChunk.js.map +0 -1
- package/dist/toEnqueue.d.ts +0 -6
- package/dist/toEnqueue.d.ts.map +0 -1
- package/dist/toEnqueue.js +0 -5
- package/dist/toEnqueue.js.map +0 -1
- package/dist/toReadonlyArray.d.ts +0 -5
- package/dist/toReadonlyArray.d.ts.map +0 -1
- package/dist/toReadonlyArray.js +0 -5
- package/dist/toReadonlyArray.js.map +0 -1
- package/dist/toStream.d.ts +0 -4
- package/dist/toStream.d.ts.map +0 -1
- package/dist/toStream.js +0 -12
- package/dist/toStream.js.map +0 -1
- package/dist/tsconfig.cjs.build.tsbuildinfo +0 -1
- package/eslintrc.json +0 -3
- package/project.json +0 -43
- package/readme.md +0 -3
- package/src/RefRemoteData.test.ts +0 -100
- package/src/RefRemoteData.ts +0 -172
- package/src/RefSubject.test.ts +0 -437
- package/src/RefTransform.ts +0 -210
- package/src/Transducer.ts +0 -0
- package/src/at.ts +0 -8
- package/src/catchAllCause.test.ts +0 -23
- package/src/catchAllCause.ts +0 -82
- package/src/combineAll.ts +0 -65
- package/src/combineAllDiscard.ts +0 -46
- package/src/continueWith.test.ts +0 -17
- package/src/continueWith.ts +0 -30
- package/src/data-first.ts +0 -67
- package/src/debounce.test.ts +0 -18
- package/src/debounce.ts +0 -9
- package/src/delay.test.ts +0 -13
- package/src/delay.ts +0 -8
- package/src/empty.test.ts +0 -10
- package/src/empty.ts +0 -7
- package/src/exhaustMap.test.ts +0 -19
- package/src/exhaustMap.ts +0 -31
- package/src/exhaustMapCause.test.ts +0 -23
- package/src/exhaustMapCause.ts +0 -41
- package/src/exhaustMapLatest.test.ts +0 -19
- package/src/exhaustMapLatest.ts +0 -31
- package/src/exhaustMapLatestCause.test.ts +0 -23
- package/src/exhaustMapLatestCause.ts +0 -41
- package/src/failCause.test.ts +0 -21
- package/src/failCause.ts +0 -20
- package/src/filter.ts +0 -23
- package/src/filterMap.ts +0 -19
- package/src/flatMap.test.ts +0 -19
- package/src/flatMap.ts +0 -31
- package/src/fromArray.test.ts +0 -11
- package/src/fromArray.ts +0 -21
- package/src/fromDequeue.ts +0 -39
- package/src/fromEffect.test.ts +0 -16
- package/src/fromEffect.ts +0 -23
- package/src/fromEmitter.test.ts +0 -33
- package/src/fromEmitter.ts +0 -46
- package/src/fromFxEffect.test.ts +0 -17
- package/src/fromFxEffect.ts +0 -11
- package/src/fromHub.ts +0 -10
- package/src/fromIterable.test.ts +0 -11
- package/src/fromIterable.ts +0 -27
- package/src/gen.test.ts +0 -30
- package/src/gen.ts +0 -28
- package/src/helpers.ts +0 -142
- package/src/hold.test.ts +0 -37
- package/src/hold.ts +0 -36
- package/src/keyed.test.ts +0 -47
- package/src/keyed.ts +0 -278
- package/src/map.test.ts +0 -17
- package/src/map.ts +0 -11
- package/src/mapEffect.ts +0 -20
- package/src/mergeAll.test.ts +0 -17
- package/src/mergeAll.ts +0 -38
- package/src/mergeBufferConcurrently.test.ts +0 -37
- package/src/mergeBufferConcurrently.ts +0 -106
- package/src/mergeConcurrently.test.ts +0 -20
- package/src/mergeConcurrently.ts +0 -57
- package/src/multicast.test.ts +0 -88
- package/src/multicast.ts +0 -131
- package/src/never.ts +0 -7
- package/src/observe.ts +0 -43
- package/src/onExit.ts +0 -13
- package/src/onInterrupt.ts +0 -16
- package/src/orElse.ts +0 -16
- package/src/promise.ts +0 -37
- package/src/provide.ts +0 -76
- package/src/reduce.ts +0 -19
- package/src/scan.ts +0 -15
- package/src/scoped.ts +0 -8
- package/src/skipRepeats.ts +0 -29
- package/src/skipWhile.test.ts +0 -27
- package/src/skipWhile.ts +0 -31
- package/src/slice.test.ts +0 -26
- package/src/slice.ts +0 -43
- package/src/snapshotEffect.ts +0 -49
- package/src/struct.ts +0 -18
- package/src/succeed.ts +0 -7
- package/src/suspend.ts +0 -5
- package/src/switchMap.test.ts +0 -19
- package/src/switchMap.ts +0 -38
- package/src/switchMapCause.test.ts +0 -23
- package/src/switchMapCause.ts +0 -57
- package/src/switchMatch.test.ts +0 -26
- package/src/switchMatch.ts +0 -62
- package/src/takeWhile.test.ts +0 -27
- package/src/takeWhile.ts +0 -34
- package/src/tap.ts +0 -22
- package/src/tapCause.ts +0 -44
- package/src/test-utils.ts +0 -38
- package/src/throttle.test.ts +0 -18
- package/src/throttle.ts +0 -13
- package/src/toArray.ts +0 -16
- package/src/toChunk.ts +0 -16
- package/src/toEnqueue.ts +0 -13
- package/src/toReadonlyArray.ts +0 -11
- package/src/toStream.ts +0 -23
- package/tsconfig.build.json +0 -8
- package/tsconfig.build.tsbuildinfo +0 -1
- package/tsconfig.cjs.build.json +0 -13
- package/tsconfig.json +0 -18
- package/vite.config.js +0 -3
|
@@ -0,0 +1,841 @@
|
|
|
1
|
+
import { Cause, Chunk, Deferred, Effect, Effectable, Either, Equal, Fiber, Layer, Option, Ref, Scope, Stream, SynchronizedRef } from "effect";
|
|
2
|
+
import { dual, identity } from "effect/Function";
|
|
3
|
+
import { isContext } from "@typed/context";
|
|
4
|
+
import * as Schedule from "effect/Schedule";
|
|
5
|
+
import { compileEffectLoop, FilterEffect, FilterMapEffect, liftSyncOperator, MapEffect, TapEffect } from "./effect-operator";
|
|
6
|
+
import * as helpers from "./helpers";
|
|
7
|
+
import * as Provide from "./provide";
|
|
8
|
+
import * as strategies from "./strategies";
|
|
9
|
+
import { compileSyncReducer, Filter, FilterMap, Map } from "./sync-operator";
|
|
10
|
+
import * as Emitter from "../Emitter";
|
|
11
|
+
import * as Sink from "../Sink";
|
|
12
|
+
import { boundsFrom, mergeBounds } from "./bounds";
|
|
13
|
+
import { matchEffectPrimitive } from "./effect-primitive";
|
|
14
|
+
import { Empty, Fail, FromIterable, FromSink, Never, Succeed, Suspend, Sync, ToFx, Transformer, TransformerCause, TransformerEffect, WithEarlyExit, WithFlattenStrategy, WithScopedFork } from "./fx-primitive";
|
|
15
|
+
import { adjustTime } from "./helpers";
|
|
16
|
+
import { matchFxInput } from "./matchers";
|
|
17
|
+
import { OnceEffect } from "./protos";
|
|
18
|
+
import { run } from "./run";
|
|
19
|
+
const constUnit = () => Effect.unit;
|
|
20
|
+
class Merge extends ToFx {
|
|
21
|
+
i0;
|
|
22
|
+
i1;
|
|
23
|
+
constructor(i0, i1) {
|
|
24
|
+
super(i0, i1);
|
|
25
|
+
this.i0 = i0;
|
|
26
|
+
this.i1 = i1;
|
|
27
|
+
}
|
|
28
|
+
static make(fx, strategy) {
|
|
29
|
+
// TODO: Flatten nested Merges
|
|
30
|
+
if (fx.length === 0)
|
|
31
|
+
return empty;
|
|
32
|
+
const nonEmptyFx = fx.filter((fx) => !(fx instanceof Empty));
|
|
33
|
+
if (nonEmptyFx.length === 0)
|
|
34
|
+
return empty;
|
|
35
|
+
if (nonEmptyFx.length === 1)
|
|
36
|
+
return nonEmptyFx[0];
|
|
37
|
+
const neverIndex = nonEmptyFx.findIndex((fx) => fx instanceof Never);
|
|
38
|
+
if (neverIndex === -1)
|
|
39
|
+
return new Merge(nonEmptyFx, strategy);
|
|
40
|
+
switch (strategy._tag) {
|
|
41
|
+
case "Switch":
|
|
42
|
+
case "Ordered":
|
|
43
|
+
// Will only emit up to the first Never
|
|
44
|
+
return new Merge(nonEmptyFx.slice(0, neverIndex + 1), strategy);
|
|
45
|
+
// No use creating fibers for Fx that don't emit
|
|
46
|
+
case "Unordered":
|
|
47
|
+
return new Merge(nonEmptyFx, strategy);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
toFx() {
|
|
51
|
+
const { i0, i1 } = this;
|
|
52
|
+
switch (i1._tag) {
|
|
53
|
+
case "Ordered": {
|
|
54
|
+
const concurrency = i1.concurrency === Infinity ? "unbounded" : i1.concurrency;
|
|
55
|
+
return fromSink((sink) => (Effect.flatMap(helpers.withBuffers(i0.length, sink), (buffers) => Effect.all(i0.map((fx, i) => Effect.flatMap(run(fx, Sink.WithContext((cause) => Cause.isInterruptedOnly(cause) ? Effect.unit : sink.onFailure(cause), (a) => buffers.onSuccess(i, a))), () => buffers.onEnd(i))), {
|
|
56
|
+
concurrency
|
|
57
|
+
}))));
|
|
58
|
+
}
|
|
59
|
+
case "Switch":
|
|
60
|
+
return fromSink((sink) => Effect.all(i0.map((fx) => run(fx, sink)), { concurrency: 1 }));
|
|
61
|
+
case "Unordered":
|
|
62
|
+
return fromSink((sink) => Effect.all(i0.map((fx) => run(fx, sink)), {
|
|
63
|
+
concurrency: i1.concurrency === Infinity ? "unbounded" : i1.concurrency
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
class Slice extends ToFx {
|
|
69
|
+
i0;
|
|
70
|
+
i1;
|
|
71
|
+
constructor(i0, i1) {
|
|
72
|
+
super(i0, i1);
|
|
73
|
+
this.i0 = i0;
|
|
74
|
+
this.i1 = i1;
|
|
75
|
+
}
|
|
76
|
+
static make(fx, bounds) {
|
|
77
|
+
if (fx instanceof Slice) {
|
|
78
|
+
return new Slice(fx.i0, mergeBounds(fx.i1, bounds));
|
|
79
|
+
}
|
|
80
|
+
else if (fx instanceof Transformer && fx.i1._tag === "Map") {
|
|
81
|
+
return new Transformer(Slice.make(fx.i0, bounds), fx.i1);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return new Slice(fx, bounds);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
toFx() {
|
|
88
|
+
const fx = this.i0;
|
|
89
|
+
const { max, min } = this.i1;
|
|
90
|
+
return withEarlyExit(({ sink }) => Effect.suspend(() => {
|
|
91
|
+
let toSkip = min;
|
|
92
|
+
let toTake = max;
|
|
93
|
+
return run(fx, Sink.WithContext(sink.onFailure, (a) => Effect.suspend(() => {
|
|
94
|
+
if (toSkip > 0) {
|
|
95
|
+
toSkip -= 1;
|
|
96
|
+
return Effect.unit;
|
|
97
|
+
}
|
|
98
|
+
else if (toTake > 0) {
|
|
99
|
+
toTake -= 1;
|
|
100
|
+
return Effect.flatMap(sink.onSuccess(a), () => toTake <= 0 ? sink.earlyExit : Effect.unit);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return sink.earlyExit;
|
|
104
|
+
}
|
|
105
|
+
})));
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
class Loop extends ToFx {
|
|
110
|
+
i0;
|
|
111
|
+
i1;
|
|
112
|
+
i2;
|
|
113
|
+
constructor(i0, i1, i2) {
|
|
114
|
+
super(i0, i1, i2);
|
|
115
|
+
this.i0 = i0;
|
|
116
|
+
this.i1 = i1;
|
|
117
|
+
this.i2 = i2;
|
|
118
|
+
}
|
|
119
|
+
static make(fx, b, f) {
|
|
120
|
+
if (fx instanceof Transformer) {
|
|
121
|
+
return FilterMapLoop.make(fx.i0, b, compileSyncReducer(fx.i1, f));
|
|
122
|
+
}
|
|
123
|
+
else if (fx instanceof TransformerEffect) {
|
|
124
|
+
return new FilterMapLoopEffect(fx.i0, b, compileEffectLoop(fx.i1, (b, a) => Effect.sync(() => f(b, a))));
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
return new Loop(fx, f, b);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
toFx() {
|
|
131
|
+
return fromSink((sink) => Effect.suspend(() => {
|
|
132
|
+
let acc = this.i2;
|
|
133
|
+
return run(this.i0, Sink.WithContext(sink.onFailure, (a) => Effect.suspend(() => {
|
|
134
|
+
const [c, b] = this.i1(acc, a);
|
|
135
|
+
acc = b;
|
|
136
|
+
return sink.onSuccess(c);
|
|
137
|
+
})));
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
class FilterMapLoop extends ToFx {
|
|
142
|
+
i0;
|
|
143
|
+
i1;
|
|
144
|
+
i2;
|
|
145
|
+
constructor(i0, i1, i2) {
|
|
146
|
+
super(i0, i1, i2);
|
|
147
|
+
this.i0 = i0;
|
|
148
|
+
this.i1 = i1;
|
|
149
|
+
this.i2 = i2;
|
|
150
|
+
}
|
|
151
|
+
static make(fx, b, f) {
|
|
152
|
+
return new FilterMapLoop(fx, b, f);
|
|
153
|
+
}
|
|
154
|
+
toFx() {
|
|
155
|
+
return fromSink((sink) => Effect.suspend(() => {
|
|
156
|
+
let acc = this.i1;
|
|
157
|
+
return run(this.i0, Sink.WithContext(sink.onFailure, (a) => Effect.suspend(() => {
|
|
158
|
+
const optionCB = this.i2(acc, a);
|
|
159
|
+
if (Option.isNone(optionCB))
|
|
160
|
+
return Effect.unit;
|
|
161
|
+
const [c, b] = optionCB.value;
|
|
162
|
+
acc = b;
|
|
163
|
+
return sink.onSuccess(c);
|
|
164
|
+
})));
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
class LoopEffect extends ToFx {
|
|
169
|
+
i0;
|
|
170
|
+
i1;
|
|
171
|
+
i2;
|
|
172
|
+
constructor(i0, i1, i2) {
|
|
173
|
+
super(i0, i1, i2);
|
|
174
|
+
this.i0 = i0;
|
|
175
|
+
this.i1 = i1;
|
|
176
|
+
this.i2 = i2;
|
|
177
|
+
}
|
|
178
|
+
static make(fx, f, b) {
|
|
179
|
+
if (fx instanceof TransformerEffect) {
|
|
180
|
+
return new FilterMapLoopEffect(fx.i0, b, compileEffectLoop(fx.i1, f));
|
|
181
|
+
}
|
|
182
|
+
else if (fx instanceof Transformer) {
|
|
183
|
+
return new FilterMapLoopEffect(fx.i0, b, compileEffectLoop(liftSyncOperator(fx.i1), f));
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
return new LoopEffect(fx, f, b);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
toFx() {
|
|
190
|
+
const { i0, i1, i2 } = this;
|
|
191
|
+
return fromSink((sink) => Effect.flatMap(SynchronizedRef.make(i2), (ref) => run(i0, Sink.WithContext(sink.onFailure, (a) => SynchronizedRef.updateEffect(ref, (b) => Effect.matchCauseEffect(i1(b, a), {
|
|
192
|
+
onFailure: (cause) => Effect.as(sink.onFailure(cause), b),
|
|
193
|
+
onSuccess: ([c, b2]) => Effect.as(sink.onSuccess(c), b2)
|
|
194
|
+
}))))));
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
class FilterMapLoopEffect extends ToFx {
|
|
198
|
+
i0;
|
|
199
|
+
i1;
|
|
200
|
+
i2;
|
|
201
|
+
constructor(i0, i1, i2) {
|
|
202
|
+
super(i0, i1, i2);
|
|
203
|
+
this.i0 = i0;
|
|
204
|
+
this.i1 = i1;
|
|
205
|
+
this.i2 = i2;
|
|
206
|
+
}
|
|
207
|
+
toFx() {
|
|
208
|
+
return fromSink((sink) => Effect.suspend(() => {
|
|
209
|
+
let acc = this.i1;
|
|
210
|
+
return run(this.i0, Sink.WithContext(sink.onFailure, (a) => this.i2(acc, a).pipe(Effect.matchCauseEffect({
|
|
211
|
+
onFailure: sink.onFailure,
|
|
212
|
+
onSuccess: (optionCB) => Effect.suspend(() => {
|
|
213
|
+
if (Option.isNone(optionCB))
|
|
214
|
+
return Effect.unit;
|
|
215
|
+
const [c, b] = optionCB.value;
|
|
216
|
+
acc = b;
|
|
217
|
+
return sink.onSuccess(c);
|
|
218
|
+
})
|
|
219
|
+
}))));
|
|
220
|
+
}));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
class FxProvide extends ToFx {
|
|
224
|
+
i0;
|
|
225
|
+
i1;
|
|
226
|
+
constructor(i0, i1) {
|
|
227
|
+
super(i0, i1);
|
|
228
|
+
this.i0 = i0;
|
|
229
|
+
this.i1 = i1;
|
|
230
|
+
}
|
|
231
|
+
static make(fx, provide) {
|
|
232
|
+
if (fx instanceof FxProvide) {
|
|
233
|
+
return new FxProvide(fx.i0, Provide.merge(fx.i1, provide));
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
return new FxProvide(fx, provide);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
toFx() {
|
|
240
|
+
return fromSink((sink) => Effect.catchAllCause(Provide.provideToEffect(run(this.i0, sink), this.i1), sink.onFailure));
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
class Snapshot extends ToFx {
|
|
244
|
+
i0;
|
|
245
|
+
i1;
|
|
246
|
+
i2;
|
|
247
|
+
constructor(i0, i1, i2) {
|
|
248
|
+
super(i0, i1, i2);
|
|
249
|
+
this.i0 = i0;
|
|
250
|
+
this.i1 = i1;
|
|
251
|
+
this.i2 = i2;
|
|
252
|
+
}
|
|
253
|
+
toFx() {
|
|
254
|
+
return matchFxInput(this.i1, {
|
|
255
|
+
RefSubject: (fx2) => this.runScoped(this.i0, fx2, this.i2),
|
|
256
|
+
Fx: (fx2) => this.runScoped(this.i0, fx2, this.i2),
|
|
257
|
+
Effect: (effect2) => mapEffect(this.i0, (a) => Effect.flatMap(effect2, (b) => this.i2(a, b))),
|
|
258
|
+
Cause: (cause2) => matchCause(this.i0, {
|
|
259
|
+
onFailure: (cause1) => Effect.failCause(Cause.sequential(cause1, cause2)),
|
|
260
|
+
onSuccess: () => Effect.failCause(cause2)
|
|
261
|
+
}),
|
|
262
|
+
Iterable: (iterable) => withEarlyExit(({ sink }) => {
|
|
263
|
+
const iterator = iterable[Symbol.iterator]();
|
|
264
|
+
return run(this.i0, Sink.WithContext(sink.onFailure, (a) => {
|
|
265
|
+
const result = iterator.next();
|
|
266
|
+
if (result.done) {
|
|
267
|
+
return sink.earlyExit;
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
return Effect.matchCauseEffect(this.i2(a, result.value), sink);
|
|
271
|
+
}
|
|
272
|
+
}));
|
|
273
|
+
}),
|
|
274
|
+
Otherwise: (b) => mapEffect(this.i0, (a) => this.i2(a, b))
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
runScoped(fx, fx2, f) {
|
|
278
|
+
return withScopedFork(({ fork, sink }) => Effect.flatMap(Ref.make(Option.none()), (ref) => Effect.flatMap(fork(run(fx2, Sink.WithContext(sink.onFailure, (b) => Ref.set(ref, Option.some(b))))), () => adjustTime(1).pipe(Effect.zipRight(run(fx, Sink.WithContext(sink.onFailure, (a) => Effect.flatten(Ref.get(ref)).pipe(Effect.flatMap((b) => Effect.matchCauseEffect(f(a, b), sink)), Effect.optionFromOptional, Effect.asUnit))))))));
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
class Middleware extends ToFx {
|
|
282
|
+
i0;
|
|
283
|
+
i1;
|
|
284
|
+
i2;
|
|
285
|
+
constructor(i0, i1, i2) {
|
|
286
|
+
super(i0, i1);
|
|
287
|
+
this.i0 = i0;
|
|
288
|
+
this.i1 = i1;
|
|
289
|
+
this.i2 = i2;
|
|
290
|
+
}
|
|
291
|
+
static make(fx, middleware, mapSink) {
|
|
292
|
+
if (fx instanceof Middleware) {
|
|
293
|
+
return new Middleware(fx.i0, (effect) => middleware(fx.i1(effect)), (s) => fx.i2(mapSink(s)));
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
return new Middleware(fx, middleware, mapSink);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
toFx() {
|
|
300
|
+
return fromSink((sink) => this.i1(run(this.i0, this.i2(sink))));
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
export function succeed(value) {
|
|
304
|
+
return new Succeed(value);
|
|
305
|
+
}
|
|
306
|
+
export function fromIterable(iterable) {
|
|
307
|
+
return new FromIterable(iterable);
|
|
308
|
+
}
|
|
309
|
+
export const map = dual(2, function map(fx, f) {
|
|
310
|
+
return Transformer.make(fx, Map(f));
|
|
311
|
+
});
|
|
312
|
+
export const mapBoth = dual(2, function mapBoth(fx, options) {
|
|
313
|
+
return map(mapError(fx, options.onFailure), options.onSuccess);
|
|
314
|
+
});
|
|
315
|
+
export const filter = dual(2, function map(fx, f) {
|
|
316
|
+
return Transformer.make(fx, Filter(f));
|
|
317
|
+
});
|
|
318
|
+
export const filterMap = dual(2, function map(fx, f) {
|
|
319
|
+
return Transformer.make(fx, FilterMap(f));
|
|
320
|
+
});
|
|
321
|
+
export const compact = (fx) => filterMap(fx, identity);
|
|
322
|
+
export const mapErrorCause = dual(2, function map(fx, f) {
|
|
323
|
+
return TransformerCause.make(fx, Map(f));
|
|
324
|
+
});
|
|
325
|
+
export const mapError = dual(2, function map(fx, f) {
|
|
326
|
+
return TransformerCause.make(fx, Map(Cause.map(f)));
|
|
327
|
+
});
|
|
328
|
+
export const filterCause = dual(2, function map(fx, f) {
|
|
329
|
+
return TransformerCause.make(fx, Filter(f));
|
|
330
|
+
});
|
|
331
|
+
export const filterMapCause = dual(2, function map(fx, f) {
|
|
332
|
+
return TransformerCause.make(fx, FilterMap(f));
|
|
333
|
+
});
|
|
334
|
+
export const filterError = dual(2, function map(fx, f) {
|
|
335
|
+
return filterMapCause(fx, (cause) => Cause.failureOrCause(cause).pipe(Either.match({
|
|
336
|
+
onLeft: (e) => f(e) ? Option.some(Cause.fail(e)) : Option.none(),
|
|
337
|
+
onRight: Option.some
|
|
338
|
+
})));
|
|
339
|
+
});
|
|
340
|
+
export const filterMapError = dual(2, function map(fx, f) {
|
|
341
|
+
return filterMapCause(fx, (cause) => Cause.failureOrCause(cause).pipe(Either.match({
|
|
342
|
+
onLeft: (e) => Option.map(f(e), Cause.fail),
|
|
343
|
+
onRight: Option.some
|
|
344
|
+
})));
|
|
345
|
+
});
|
|
346
|
+
export const filterMapErrorEffect = dual(2, (fx, f) => {
|
|
347
|
+
return fromSink((sink) => run(fx, Sink.WithContext((cause) => Either.match(Cause.failureOrCause(cause), {
|
|
348
|
+
onLeft: (e) => Effect.matchCauseEffect(f(e), {
|
|
349
|
+
onFailure: sink.onFailure,
|
|
350
|
+
onSuccess: Option.match({
|
|
351
|
+
onNone: () => Effect.unit,
|
|
352
|
+
onSome: (b) => sink.onFailure(Cause.fail(b))
|
|
353
|
+
})
|
|
354
|
+
}),
|
|
355
|
+
onRight: sink.onFailure
|
|
356
|
+
}), sink.onSuccess)));
|
|
357
|
+
});
|
|
358
|
+
export function observe(fx, onSuccees) {
|
|
359
|
+
return helpers.withScopedFork((fork) => Effect.flatMap(Deferred.make(), (deferred) => run(fx, Sink.WithContext((cause) => Deferred.failCause(deferred, cause), (a) => Effect.catchAllCause(onSuccees(a), (cause) => Deferred.failCause(deferred, cause)))).pipe(Effect.intoDeferred(deferred), fork, Effect.flatMap(() => Deferred.await(deferred)))));
|
|
360
|
+
}
|
|
361
|
+
export function drain(fx) {
|
|
362
|
+
return observe(fx, constUnit);
|
|
363
|
+
}
|
|
364
|
+
export function toArray(fx) {
|
|
365
|
+
return Effect.suspend(() => {
|
|
366
|
+
const array = [];
|
|
367
|
+
return Effect.as(observe(fx, (a) => Effect.sync(() => array.push(a))), array);
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
export function toReadonlyArray(fx) {
|
|
371
|
+
return toArray(fx);
|
|
372
|
+
}
|
|
373
|
+
export const flatMapWithStrategy = dual(3, function flatMapWithStrategy(fx, f, strategy) {
|
|
374
|
+
return new WithFlattenStrategy(({ fork, sink }) => run(fx, Sink.WithContext(sink.onFailure, (a) => fork(run(from(f(a)), sink)))), strategy);
|
|
375
|
+
});
|
|
376
|
+
export const switchMap = dual(2, function switchMap(fx, f) {
|
|
377
|
+
return flatMapWithStrategy(fx, f, strategies.Switch);
|
|
378
|
+
});
|
|
379
|
+
export const exhaustMap = dual(2, function exhaustmap(fx, f) {
|
|
380
|
+
return flatMapWithStrategy(fx, f, strategies.Exhaust);
|
|
381
|
+
});
|
|
382
|
+
export const exhaust = (fx) => exhaustMap(fx, identity);
|
|
383
|
+
export const exhaustMapLatest = dual(2, function exhaustMapLatest(fx, f) {
|
|
384
|
+
return flatMapWithStrategy(fx, f, strategies.ExhaustLatest);
|
|
385
|
+
});
|
|
386
|
+
export const exhaustLatest = (fx) => exhaustMapLatest(fx, identity);
|
|
387
|
+
export const flatMap = dual(2, function flatMap(fx, f) {
|
|
388
|
+
return flatMapWithStrategy(fx, f, strategies.Unbounded);
|
|
389
|
+
});
|
|
390
|
+
export const flatten = (fx) => flatMap(fx, identity);
|
|
391
|
+
export const flatMapConcurrently = dual(3, function flatMapConcurrently(fx, f, concurrency) {
|
|
392
|
+
return flatMapWithStrategy(fx, f, strategies.Bounded(concurrency));
|
|
393
|
+
});
|
|
394
|
+
export const concatMap = dual(2, function concatMap(fx, f) {
|
|
395
|
+
return flatMapConcurrently(fx, f, 1);
|
|
396
|
+
});
|
|
397
|
+
export const acquireUseRelease = dual(3, function acquireUseRelease(acquire, use, release) {
|
|
398
|
+
return fromSink((sink) => Effect.catchAllCause(Effect.acquireUseRelease(acquire, (a) => run(from(use(a)), sink), (a, exit) => Effect.catchAllCause(release(a, exit), sink.onFailure)), sink.onFailure));
|
|
399
|
+
});
|
|
400
|
+
export function combine(fxs) {
|
|
401
|
+
return fromSink((sink) => Effect.suspend(() => {
|
|
402
|
+
const total = fxs.length;
|
|
403
|
+
if (total === 0)
|
|
404
|
+
return Effect.unit;
|
|
405
|
+
const values = new globalThis.Map();
|
|
406
|
+
const sample = () => Array.from({ length: total }, (_, i) => values.get(i));
|
|
407
|
+
const emitIfReady = (value, index) => Effect.suspend(() => {
|
|
408
|
+
values.set(index, value);
|
|
409
|
+
if (values.size === total) {
|
|
410
|
+
return sink.onSuccess(sample());
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
return Effect.unit;
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
return Effect.all(fxs.map((fx, index) => run(fx, Sink.WithContext(sink.onFailure, (a) => emitIfReady(a, index)))), { concurrency: "unbounded" });
|
|
417
|
+
}));
|
|
418
|
+
}
|
|
419
|
+
export function struct(fxs) {
|
|
420
|
+
return map(combine(Reflect.ownKeys(fxs).map((k) => map(fxs[k], (a) => [k, a]))), Object.fromEntries);
|
|
421
|
+
}
|
|
422
|
+
export function merge(fxs) {
|
|
423
|
+
return Merge.make(fxs, strategies.Unordered(Infinity));
|
|
424
|
+
}
|
|
425
|
+
export const mergeConcurrently = dual(2, function mergeConcurrently(fxs, concurrency) {
|
|
426
|
+
return Merge.make(fxs, strategies.Unordered(concurrency));
|
|
427
|
+
});
|
|
428
|
+
export function mergeBuffer(fxs) {
|
|
429
|
+
return Merge.make(fxs, strategies.Ordered(Infinity));
|
|
430
|
+
}
|
|
431
|
+
export const mergeBufferConcurrently = dual(2, function mergeConcurrently(fxs, concurrency) {
|
|
432
|
+
return Merge.make(fxs, strategies.Ordered(concurrency));
|
|
433
|
+
});
|
|
434
|
+
export const mergeSwitch = (fxs) => Merge.make(fxs, strategies.Switch);
|
|
435
|
+
export function race(fxs) {
|
|
436
|
+
if (fxs.length === 0)
|
|
437
|
+
return empty;
|
|
438
|
+
if (fxs.length === 1)
|
|
439
|
+
return fxs[0];
|
|
440
|
+
return withScopedFork(({ fork, sink }) => Effect.asyncEffect((resume) => Effect.gen(function* (_) {
|
|
441
|
+
let winningIndex = -1;
|
|
442
|
+
const fibers = yield* _(Effect.forEach(fxs, (fx, i) => fork(run(fx, Sink.Sink((cause) => Effect.suspend(() => pickWinner(i) ? sink.onFailure(cause) : Effect.unit), (a) => Effect.suspend(() => pickWinner(i) ? sink.onSuccess(a) : Effect.unit))))));
|
|
443
|
+
function pickWinner(i) {
|
|
444
|
+
if (winningIndex === -1) {
|
|
445
|
+
winningIndex = i;
|
|
446
|
+
resume(Effect.succeed([i, fibers]));
|
|
447
|
+
}
|
|
448
|
+
return winningIndex === i;
|
|
449
|
+
}
|
|
450
|
+
})).pipe(Effect.flatMap(([winningIndex, fibers]) => Effect.suspend(() => {
|
|
451
|
+
const [winner] = fibers.splice(winningIndex, 1);
|
|
452
|
+
return Effect.flatMap(Fiber.interruptAll(fibers), () => Fiber.join(winner));
|
|
453
|
+
}))));
|
|
454
|
+
}
|
|
455
|
+
export const empty = new Empty();
|
|
456
|
+
export const never = new Never();
|
|
457
|
+
export const failCause = (cause) => new Fail(cause);
|
|
458
|
+
export const fail = (e) => failCause(Cause.fail(e));
|
|
459
|
+
export const fromSink = (f) => new FromSink((sink) => Effect.catchAllCause(f(sink), sink.onFailure));
|
|
460
|
+
export const suspend = (f) => new Suspend(f);
|
|
461
|
+
export const sync = (f) => new Sync(f);
|
|
462
|
+
export const slice = dual(3, function slice(fx, skip, take) {
|
|
463
|
+
return Slice.make(fx, boundsFrom(skip, take));
|
|
464
|
+
});
|
|
465
|
+
export const take = dual(2, function take(fx, n) {
|
|
466
|
+
return slice(fx, 0, n);
|
|
467
|
+
});
|
|
468
|
+
export const drop = dual(2, function drop(fx, n) {
|
|
469
|
+
return slice(fx, n, Infinity);
|
|
470
|
+
});
|
|
471
|
+
export const takeWhile = dual(2, function takeWhile(fx, predicate) {
|
|
472
|
+
return withEarlyExit(({ sink }) => run(fx, Sink.WithContext(sink.onFailure, (a) => Effect.matchCauseEffect(predicate(a), {
|
|
473
|
+
onFailure: sink.onFailure,
|
|
474
|
+
onSuccess: (b) => b ? sink.onSuccess(a) : sink.earlyExit
|
|
475
|
+
}))));
|
|
476
|
+
});
|
|
477
|
+
export const takeUntil = dual(2, function takeUntil(fx, predicate) {
|
|
478
|
+
return takeWhile(fx, (a) => Effect.map(predicate(a), (x) => !x));
|
|
479
|
+
});
|
|
480
|
+
export const dropWhile = dual(2, function dropWhile(fx, predicate) {
|
|
481
|
+
return withEarlyExit(({ sink }) => Effect.suspend(() => {
|
|
482
|
+
let isDropping = true;
|
|
483
|
+
return run(fx, Sink.WithContext(sink.onFailure, (a) => isDropping ?
|
|
484
|
+
Effect.matchCauseEffect(predicate(a), {
|
|
485
|
+
onFailure: sink.onFailure,
|
|
486
|
+
onSuccess: (b) => {
|
|
487
|
+
if (b) {
|
|
488
|
+
return Effect.unit;
|
|
489
|
+
}
|
|
490
|
+
else {
|
|
491
|
+
isDropping = false;
|
|
492
|
+
return sink.onSuccess(a);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}) :
|
|
496
|
+
sink.onSuccess(a)));
|
|
497
|
+
}));
|
|
498
|
+
});
|
|
499
|
+
export const dropUntil = dual(2, function dropUntil(fx, predicate) {
|
|
500
|
+
return dropWhile(fx, (a) => Effect.map(predicate(a), (x) => !x));
|
|
501
|
+
});
|
|
502
|
+
export const dropAfter = dual(2, function dropAfter(fx, predicate) {
|
|
503
|
+
return fromSink((sink) => Effect.suspend(() => {
|
|
504
|
+
let isDropping = false;
|
|
505
|
+
return run(fx, Sink.WithContext(sink.onFailure, (a) => isDropping ?
|
|
506
|
+
Effect.unit :
|
|
507
|
+
Effect.matchCauseEffect(predicate(a), {
|
|
508
|
+
onFailure: sink.onFailure,
|
|
509
|
+
onSuccess: (b) => {
|
|
510
|
+
if (b) {
|
|
511
|
+
isDropping = true;
|
|
512
|
+
return Effect.unit;
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
return sink.onSuccess(a);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
})));
|
|
519
|
+
}));
|
|
520
|
+
});
|
|
521
|
+
export const continueWith = dual(2, function continueWith(fx, f) {
|
|
522
|
+
return fromSink((sink) => Effect.flatMap(run(fx, sink), () => run(f(), sink)));
|
|
523
|
+
});
|
|
524
|
+
export const recoverWith = dual(2, function recoverWith(fx, f) {
|
|
525
|
+
return fromSink((sink) => Effect.catchAllCause(observe(fx, sink.onSuccess), (cause) => run(from(f(cause)), sink)));
|
|
526
|
+
});
|
|
527
|
+
export const mapEffect = dual(2, function mapEffect(fx, f) {
|
|
528
|
+
return TransformerEffect.make(fx, MapEffect(f));
|
|
529
|
+
});
|
|
530
|
+
export const tap = dual(2, function tap(fx, f) {
|
|
531
|
+
return TransformerEffect.make(fx, TapEffect(f));
|
|
532
|
+
});
|
|
533
|
+
export const filterEffect = dual(2, function filterEffect(fx, predicate) {
|
|
534
|
+
return TransformerEffect.make(fx, FilterEffect(predicate));
|
|
535
|
+
});
|
|
536
|
+
export const filterMapEffect = dual(2, function filterEffect(fx, f) {
|
|
537
|
+
return TransformerEffect.make(fx, FilterMapEffect(f));
|
|
538
|
+
});
|
|
539
|
+
export const middleware = dual((args) => args.length === 3 || typeof args[0] !== "function", function middleware(fx, f, g) {
|
|
540
|
+
return Middleware.make(fx, f, g ?? identity);
|
|
541
|
+
});
|
|
542
|
+
export const loop = dual(3, function loop(fx, seed, f) {
|
|
543
|
+
return Loop.make(fx, seed, f);
|
|
544
|
+
});
|
|
545
|
+
export const loopEffect = dual(3, function loopEffect(fx, seed, f) {
|
|
546
|
+
return LoopEffect.make(fx, f, seed);
|
|
547
|
+
});
|
|
548
|
+
export const startWith = dual(2, function startWith(fx, value) {
|
|
549
|
+
return fromSink((sink) => Effect.flatMap(sink.onSuccess(value), () => run(fx, sink)));
|
|
550
|
+
});
|
|
551
|
+
export const endWith = dual(2, function endWith(fx, value) {
|
|
552
|
+
return fromSink((sink) => Effect.flatMap(run(fx, sink), () => sink.onSuccess(value)));
|
|
553
|
+
});
|
|
554
|
+
export const scan = dual(3, function loop(fx, seed, f) {
|
|
555
|
+
return continueWith(new Succeed(seed), () => Loop.make(fx, seed, (b, a) => {
|
|
556
|
+
const b2 = f(b, a);
|
|
557
|
+
return [b2, b2];
|
|
558
|
+
}));
|
|
559
|
+
});
|
|
560
|
+
export const scanEffect = dual(3, function loopEffect(fx, seed, f) {
|
|
561
|
+
return continueWith(new Succeed(seed), () => LoopEffect.make(fx, (b, a) => Effect.map(f(b, a), (b2) => [b2, b2]), seed));
|
|
562
|
+
});
|
|
563
|
+
export const flatMapCauseWithStrategy = dual(3, function flatMapCause(fx, f, strategy) {
|
|
564
|
+
return new WithFlattenStrategy(({ fork, sink }) => run(fx, Sink.WithContext((cause) => fork(run(from(f(cause)), sink)), sink.onSuccess)), strategy);
|
|
565
|
+
});
|
|
566
|
+
export const flatMapErrorWithStrategy = dual(3, function flatMapCause(fx, f, strategy) {
|
|
567
|
+
return new WithFlattenStrategy(({ fork, sink }) => run(fx, Sink.WithContext((cause) => fork(run(from(cause.pipe(Cause.failureOrCause, Either.match({
|
|
568
|
+
onLeft: f,
|
|
569
|
+
onRight: failCause
|
|
570
|
+
}))), sink)), sink.onSuccess)), strategy);
|
|
571
|
+
});
|
|
572
|
+
export const flatMapCause = dual(2, function flatMapCause(fx, f) {
|
|
573
|
+
return flatMapCauseWithStrategy(fx, f, strategies.Unbounded);
|
|
574
|
+
});
|
|
575
|
+
export const flatMapError = dual(2, function flatMapError(fx, f) {
|
|
576
|
+
return flatMapErrorWithStrategy(fx, f, strategies.Unbounded);
|
|
577
|
+
});
|
|
578
|
+
export const flatMapCauseConcurrently = dual(3, function flatMapCauseConcurrently(fx, f, concurrency) {
|
|
579
|
+
return flatMapCauseWithStrategy(fx, f, strategies.Bounded(concurrency));
|
|
580
|
+
});
|
|
581
|
+
export const flatMapErrorConcurrently = dual(3, function flatMapCauseConcurrently(fx, f, concurrency) {
|
|
582
|
+
return flatMapErrorWithStrategy(fx, f, strategies.Bounded(concurrency));
|
|
583
|
+
});
|
|
584
|
+
export const switchMapCause = dual(2, function switchMapCause(fx, f) {
|
|
585
|
+
return flatMapCauseWithStrategy(fx, f, strategies.Switch);
|
|
586
|
+
});
|
|
587
|
+
export const switchMapError = dual(2, function switchMapError(fx, f) {
|
|
588
|
+
return flatMapErrorWithStrategy(fx, f, strategies.Switch);
|
|
589
|
+
});
|
|
590
|
+
export const exhaustMapCause = dual(2, function exhaustMapCause(fx, f) {
|
|
591
|
+
return flatMapCauseWithStrategy(fx, f, strategies.Exhaust);
|
|
592
|
+
});
|
|
593
|
+
export const exhaustMapError = dual(2, function switchMapError(fx, f) {
|
|
594
|
+
return flatMapErrorWithStrategy(fx, f, strategies.Exhaust);
|
|
595
|
+
});
|
|
596
|
+
export const exhaustMapLatestCause = dual(2, function exhaustMapLatestCause(fx, f) {
|
|
597
|
+
return flatMapCauseWithStrategy(fx, f, strategies.ExhaustLatest);
|
|
598
|
+
});
|
|
599
|
+
export const exhaustMapLatestError = dual(2, function switchMapError(fx, f) {
|
|
600
|
+
return flatMapErrorWithStrategy(fx, f, strategies.ExhaustLatest);
|
|
601
|
+
});
|
|
602
|
+
export const matchCauseWithStrategy = dual(2, function flatMapCause(fx, options) {
|
|
603
|
+
return new WithFlattenStrategy(({ fork, sink }) => run(fx, Sink.WithContext((cause) => fork(run(from(options.onFailure(cause)), sink)), (a) => fork(run(from(options.onSuccess(a)), sink)))), options.strategy);
|
|
604
|
+
});
|
|
605
|
+
export const matchErrorWithStrategy = dual(2, function flatMapCause(fx, options) {
|
|
606
|
+
return new WithFlattenStrategy(({ fork, sink }) => run(fx, Sink.WithContext((cause) => fork(run(from(cause.pipe(Cause.failureOrCause, Either.match({
|
|
607
|
+
onLeft: options.onFailure,
|
|
608
|
+
onRight: failCause
|
|
609
|
+
}))), sink)), (a) => fork(run(from(options.onSuccess(a)), sink)))), options.strategy);
|
|
610
|
+
});
|
|
611
|
+
export const matchCause = dual(2, function matchCause(fx, options) {
|
|
612
|
+
return matchCauseWithStrategy(fx, {
|
|
613
|
+
...options,
|
|
614
|
+
strategy: strategies.Unbounded
|
|
615
|
+
});
|
|
616
|
+
});
|
|
617
|
+
export const match = dual(2, function matchCause(fx, options) {
|
|
618
|
+
return matchErrorWithStrategy(fx, { ...options, strategy: strategies.Unbounded });
|
|
619
|
+
});
|
|
620
|
+
export const matchCauseConcurrently = dual(2, function matchCause(fx, options) {
|
|
621
|
+
return matchCauseWithStrategy(fx, {
|
|
622
|
+
onFailure: options.onFailure,
|
|
623
|
+
onSuccess: options.onSuccess,
|
|
624
|
+
strategy: strategies.Bounded(options.concurrency)
|
|
625
|
+
});
|
|
626
|
+
});
|
|
627
|
+
export const matchErrorConcurrently = dual(2, function matchErrorConcurrently(fx, options) {
|
|
628
|
+
return matchErrorWithStrategy(fx, { ...options, strategy: strategies.Bounded(options.concurrency) });
|
|
629
|
+
});
|
|
630
|
+
export const switchMatchCause = dual(2, function matchCause(fx, options) {
|
|
631
|
+
return matchCauseWithStrategy(fx, {
|
|
632
|
+
...options,
|
|
633
|
+
strategy: strategies.Switch
|
|
634
|
+
});
|
|
635
|
+
});
|
|
636
|
+
export const switchMatch = dual(2, function matchCause(fx, options) {
|
|
637
|
+
return matchErrorWithStrategy(fx, { ...options, strategy: strategies.Switch });
|
|
638
|
+
});
|
|
639
|
+
export const exhaustMatchCause = dual(2, function matchCause(fx, options) {
|
|
640
|
+
return matchCauseWithStrategy(fx, {
|
|
641
|
+
...options,
|
|
642
|
+
strategy: strategies.Exhaust
|
|
643
|
+
});
|
|
644
|
+
});
|
|
645
|
+
export const exhaustMatch = dual(2, function matchCause(fx, options) {
|
|
646
|
+
return matchErrorWithStrategy(fx, { ...options, strategy: strategies.Exhaust });
|
|
647
|
+
});
|
|
648
|
+
export const exhaustLatestMatchCause = dual(2, function matchCause(fx, options) {
|
|
649
|
+
return matchCauseWithStrategy(fx, {
|
|
650
|
+
...options,
|
|
651
|
+
strategy: strategies.ExhaustLatest
|
|
652
|
+
});
|
|
653
|
+
});
|
|
654
|
+
export const exhaustLatestMatch = dual(2, function matchCause(fx, options) {
|
|
655
|
+
return matchErrorWithStrategy(fx, { ...options, strategy: strategies.ExhaustLatest });
|
|
656
|
+
});
|
|
657
|
+
export const withEarlyExit = (f) => new WithEarlyExit(f);
|
|
658
|
+
export const withScopedFork = (f) => new WithScopedFork(f);
|
|
659
|
+
export const withFlattenStrategy = (f, strategy) => new WithFlattenStrategy(f, strategy);
|
|
660
|
+
export const during = dual(2, function during(fx, window) {
|
|
661
|
+
return withEarlyExit(({ fork, sink }) => Effect.suspend(() => {
|
|
662
|
+
let taking = false;
|
|
663
|
+
return Effect.flatMap(fork(run(take(window, 1), Sink.WithContext(sink.onFailure, (nested) => {
|
|
664
|
+
taking = true;
|
|
665
|
+
return fork(run(take(nested, 1), Sink.WithContext(sink.onFailure, () => sink.earlyExit)));
|
|
666
|
+
}))), () => adjustTime(1).pipe(Effect.zipRight(run(fx, Sink.Sink(sink.onFailure, (a) => taking ? sink.onSuccess(a) : Effect.unit)))));
|
|
667
|
+
}));
|
|
668
|
+
});
|
|
669
|
+
export const since = dual(2, function since(fx, window) {
|
|
670
|
+
return during(fx, map(window, () => never));
|
|
671
|
+
});
|
|
672
|
+
export const until = dual(2, function until(fx, window) {
|
|
673
|
+
return during(fx, succeed(window));
|
|
674
|
+
});
|
|
675
|
+
export const fromScheduled = dual(2, function fromScheduled(fx, scheduled) {
|
|
676
|
+
return fromSink((sink) => Effect.catchAllCause(Effect.repeat(Effect.matchCauseEffect(fx, sink), scheduled), sink.onFailure));
|
|
677
|
+
});
|
|
678
|
+
export const periodic = dual(2, function periodic(fx, duration) {
|
|
679
|
+
return fromScheduled(fx, Schedule.spaced(duration));
|
|
680
|
+
});
|
|
681
|
+
export const provide = dual(2, function provideContext(fx, context) {
|
|
682
|
+
if (Layer.isLayer(context)) {
|
|
683
|
+
return FxProvide.make(fx, Provide.ProvideLayer(context));
|
|
684
|
+
}
|
|
685
|
+
else if (isContext(context)) {
|
|
686
|
+
return FxProvide.make(fx, Provide.ProvideContext(context));
|
|
687
|
+
}
|
|
688
|
+
else {
|
|
689
|
+
return FxProvide.make(fx, Provide.ProvideRuntime(context));
|
|
690
|
+
}
|
|
691
|
+
});
|
|
692
|
+
export const provideService = dual(3, function provideService(fx, tag, service) {
|
|
693
|
+
return FxProvide.make(fx, Provide.ProvideService(tag, service));
|
|
694
|
+
});
|
|
695
|
+
export const provideServiceEffect = dual(3, function provideService(fx, tag, service) {
|
|
696
|
+
return FxProvide.make(fx, Provide.ProvideServiceEffect(tag, service));
|
|
697
|
+
});
|
|
698
|
+
export const skipRepeatsWith = dual(2, function skipRepeatsWith(fx, eq) {
|
|
699
|
+
return FilterMapLoop.make(fx, Option.none(), (previous, a) => Option.match(previous, {
|
|
700
|
+
onNone: () => Option.some([a, Option.some(a)]),
|
|
701
|
+
onSome: (prev) => eq(a, prev) ? Option.none() : Option.some([a, Option.some(a)])
|
|
702
|
+
}));
|
|
703
|
+
});
|
|
704
|
+
export const skipRepeats = (fx) => skipRepeatsWith(fx, Equal.equals);
|
|
705
|
+
class Reduce extends Effectable.Class {
|
|
706
|
+
fx;
|
|
707
|
+
seed;
|
|
708
|
+
f;
|
|
709
|
+
constructor(fx, seed, f) {
|
|
710
|
+
super();
|
|
711
|
+
this.fx = fx;
|
|
712
|
+
this.seed = seed;
|
|
713
|
+
this.f = f;
|
|
714
|
+
}
|
|
715
|
+
static make(fx, seed, f) {
|
|
716
|
+
if (fx instanceof Transformer) {
|
|
717
|
+
return FilterMapReduce.make(fx.i0, seed, compileSyncReducer(fx.i1, f));
|
|
718
|
+
}
|
|
719
|
+
return new Reduce(fx, seed, f);
|
|
720
|
+
}
|
|
721
|
+
cached = null;
|
|
722
|
+
commit() {
|
|
723
|
+
return (this.cached ||= Effect.suspend(() => {
|
|
724
|
+
let acc = this.seed;
|
|
725
|
+
return Effect.map(observe(this.fx, (a) => Effect.sync(() => acc = this.f(acc, a))), () => acc);
|
|
726
|
+
}));
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
class FilterMapReduce extends Effectable.Class {
|
|
730
|
+
i0;
|
|
731
|
+
i1;
|
|
732
|
+
i2;
|
|
733
|
+
constructor(i0, i1, i2) {
|
|
734
|
+
super();
|
|
735
|
+
this.i0 = i0;
|
|
736
|
+
this.i1 = i1;
|
|
737
|
+
this.i2 = i2;
|
|
738
|
+
}
|
|
739
|
+
static make(fx, seed, f) {
|
|
740
|
+
if (fx instanceof FromIterable) {
|
|
741
|
+
if (Array.isArray(fx.i0)) {
|
|
742
|
+
return new OnceEffect(Effect.sync(() => reduceFilterArray(fx.i0, seed, f)));
|
|
743
|
+
}
|
|
744
|
+
else {
|
|
745
|
+
return Effect.sync(() => reduceFilterIterable(fx.i0, seed, f));
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
return new FilterMapReduce(fx, seed, f);
|
|
749
|
+
}
|
|
750
|
+
cached = null;
|
|
751
|
+
commit() {
|
|
752
|
+
return this.cached ||= Effect.suspend(() => {
|
|
753
|
+
let acc = this.i1;
|
|
754
|
+
return Effect.map(observe(this.i0, (a) => Option.match(this.i2(acc, a), {
|
|
755
|
+
onNone: () => Effect.unit,
|
|
756
|
+
onSome: (b) => Effect.succeed(acc = b)
|
|
757
|
+
})), () => acc);
|
|
758
|
+
});
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
function reduceFilterIterable(iterable, seed, f) {
|
|
762
|
+
const iterator = iterable[Symbol.iterator]();
|
|
763
|
+
let acc = seed;
|
|
764
|
+
let result = iterator.next();
|
|
765
|
+
let option = Option.none();
|
|
766
|
+
while (!result.done) {
|
|
767
|
+
option = f(acc, result.value);
|
|
768
|
+
if (Option.isSome(option)) {
|
|
769
|
+
acc = option.value;
|
|
770
|
+
}
|
|
771
|
+
result = iterator.next();
|
|
772
|
+
}
|
|
773
|
+
return acc;
|
|
774
|
+
}
|
|
775
|
+
function reduceFilterArray(iterable, seed, f) {
|
|
776
|
+
const length = iterable.length;
|
|
777
|
+
let acc = seed;
|
|
778
|
+
let option = Option.none();
|
|
779
|
+
for (let i = 0; i < length; i++) {
|
|
780
|
+
option = f(acc, iterable[i]);
|
|
781
|
+
if (Option.isSome(option)) {
|
|
782
|
+
acc = option.value;
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
return acc;
|
|
786
|
+
}
|
|
787
|
+
export const reduce = dual(3, function reduce(fx, seed, f) {
|
|
788
|
+
return Reduce.make(fx, seed, f);
|
|
789
|
+
});
|
|
790
|
+
export function toChunk(fx) {
|
|
791
|
+
return reduce(fx, Chunk.empty(), (Chunk.append));
|
|
792
|
+
}
|
|
793
|
+
export const snapshot = dual(3, function snapshot(fx, sampled, f) {
|
|
794
|
+
return new Snapshot(fx, sampled, f);
|
|
795
|
+
});
|
|
796
|
+
export function fromEmitter(f) {
|
|
797
|
+
return withEarlyExit(({ scope, sink }) => Effect.zipRight(Effect.provideService(Effect.flatMap(Emitter.make(sink), f), Scope.Scope, scope), Effect.never));
|
|
798
|
+
}
|
|
799
|
+
export function fromEffect(effect) {
|
|
800
|
+
return matchEffectPrimitive(effect, {
|
|
801
|
+
Success: (e) => succeed(e.i0),
|
|
802
|
+
Failure: (e) => failCause(e.i0),
|
|
803
|
+
Left: (e) => fail(e.left),
|
|
804
|
+
Right: (e) => succeed(e.right),
|
|
805
|
+
None: () => fail(new Cause.NoSuchElementException()),
|
|
806
|
+
Some: (e) => succeed(e.value),
|
|
807
|
+
Sync: (e) => sync(e.i0),
|
|
808
|
+
Otherwise: () => fromSink((sink) => Effect.matchCauseEffect(effect, sink))
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
export function fromStream(stream, options) {
|
|
812
|
+
return fromSink((sink) => Effect.acquireUseRelease(Scope.make(), (scope) => Effect.gen(function* (_) {
|
|
813
|
+
const pull = Effect.either(yield* _(Stream.toPull(stream), Effect.provideService(Scope.Scope, scope)));
|
|
814
|
+
while (true) {
|
|
815
|
+
const either = yield* _(pull);
|
|
816
|
+
if (Either.isRight(either)) {
|
|
817
|
+
yield* _(Effect.forEach(either.right, sink.onSuccess));
|
|
818
|
+
}
|
|
819
|
+
else if (Option.isNone(either.left)) {
|
|
820
|
+
return;
|
|
821
|
+
}
|
|
822
|
+
else {
|
|
823
|
+
yield* _(sink.onFailure(Cause.fail(either.left.value)));
|
|
824
|
+
}
|
|
825
|
+
// Schedule subsequent pulls using the current scheduler.
|
|
826
|
+
yield* _(Effect.yieldNow(options));
|
|
827
|
+
}
|
|
828
|
+
}), Scope.close));
|
|
829
|
+
}
|
|
830
|
+
const matchers = {
|
|
831
|
+
RefSubject: identity,
|
|
832
|
+
Fx: identity,
|
|
833
|
+
Effect: fromEffect,
|
|
834
|
+
Cause: failCause,
|
|
835
|
+
Iterable: fromIterable,
|
|
836
|
+
Otherwise: succeed
|
|
837
|
+
};
|
|
838
|
+
export function from(input) {
|
|
839
|
+
return matchFxInput(input, matchers);
|
|
840
|
+
}
|
|
841
|
+
//# sourceMappingURL=core.js.map
|