@typed/fx 1.12.6 → 1.14.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/dist/Computed.d.ts +42 -0
- package/dist/Computed.d.ts.map +1 -0
- package/dist/Computed.js +39 -0
- package/dist/Computed.js.map +1 -0
- package/dist/Filtered.d.ts +34 -0
- package/dist/Filtered.d.ts.map +1 -0
- package/dist/Filtered.js +40 -0
- package/dist/Filtered.js.map +1 -0
- package/dist/Fx.d.ts +2 -3
- package/dist/Fx.d.ts.map +1 -1
- package/dist/Fx.js +11 -26
- package/dist/Fx.js.map +1 -1
- package/dist/RefArray.d.ts +116 -0
- package/dist/RefArray.d.ts.map +1 -0
- package/dist/RefArray.js +67 -0
- package/dist/RefArray.js.map +1 -0
- package/dist/RefSubject.d.ts +25 -21
- package/dist/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject.js +356 -248
- package/dist/RefSubject.js.map +1 -1
- package/dist/RefTransform.d.ts +51 -0
- package/dist/RefTransform.d.ts.map +1 -0
- package/dist/RefTransform.js +69 -0
- package/dist/RefTransform.js.map +1 -0
- package/dist/Subject.d.ts +1 -1
- package/dist/Subject.d.ts.map +1 -1
- package/dist/Subject.js +4 -4
- package/dist/Subject.js.map +1 -1
- package/dist/at.d.ts +1 -1
- package/dist/at.d.ts.map +1 -1
- package/dist/at.js +1 -1
- package/dist/at.js.map +1 -1
- package/dist/catchAllCause.d.ts +8 -1
- package/dist/catchAllCause.d.ts.map +1 -1
- package/dist/catchAllCause.js +23 -3
- package/dist/catchAllCause.js.map +1 -1
- package/dist/cjs/Computed.d.ts +42 -0
- package/dist/cjs/Computed.d.ts.map +1 -0
- package/dist/cjs/Computed.js +66 -0
- package/dist/cjs/Computed.js.map +1 -0
- package/dist/cjs/Filtered.d.ts +34 -0
- package/dist/cjs/Filtered.d.ts.map +1 -0
- package/dist/cjs/Filtered.js +67 -0
- package/dist/cjs/Filtered.js.map +1 -0
- package/dist/cjs/Fx.d.ts +2 -3
- package/dist/cjs/Fx.d.ts.map +1 -1
- package/dist/cjs/Fx.js +13 -28
- package/dist/cjs/Fx.js.map +1 -1
- package/dist/cjs/RefArray.d.ts +116 -0
- package/dist/cjs/RefArray.d.ts.map +1 -0
- package/dist/cjs/RefArray.js +97 -0
- package/dist/cjs/RefArray.js.map +1 -0
- package/dist/cjs/RefSubject.d.ts +25 -21
- package/dist/cjs/RefSubject.d.ts.map +1 -1
- package/dist/cjs/RefSubject.js +363 -251
- package/dist/cjs/RefSubject.js.map +1 -1
- package/dist/cjs/RefTransform.d.ts +51 -0
- package/dist/cjs/RefTransform.d.ts.map +1 -0
- package/dist/cjs/RefTransform.js +96 -0
- package/dist/cjs/RefTransform.js.map +1 -0
- package/dist/cjs/Subject.d.ts +1 -1
- package/dist/cjs/Subject.d.ts.map +1 -1
- package/dist/cjs/Subject.js +27 -4
- package/dist/cjs/Subject.js.map +1 -1
- package/dist/cjs/at.d.ts +1 -1
- package/dist/cjs/at.d.ts.map +1 -1
- package/dist/cjs/at.js +25 -2
- package/dist/cjs/at.js.map +1 -1
- package/dist/cjs/catchAllCause.d.ts +8 -1
- package/dist/cjs/catchAllCause.d.ts.map +1 -1
- package/dist/cjs/catchAllCause.js +48 -3
- package/dist/cjs/catchAllCause.js.map +1 -1
- package/dist/cjs/combineAll.d.ts.map +1 -1
- package/dist/cjs/combineAll.js +29 -6
- package/dist/cjs/combineAll.js.map +1 -1
- package/dist/cjs/combineAllDiscard.d.ts.map +1 -1
- package/dist/cjs/combineAllDiscard.js +28 -5
- package/dist/cjs/combineAllDiscard.js.map +1 -1
- package/dist/cjs/continueWith.d.ts +1 -1
- package/dist/cjs/continueWith.d.ts.map +1 -1
- package/dist/cjs/continueWith.js +25 -2
- package/dist/cjs/continueWith.js.map +1 -1
- package/dist/cjs/data-first.d.ts +10 -0
- package/dist/cjs/data-first.d.ts.map +1 -1
- package/dist/cjs/data-first.js +10 -0
- package/dist/cjs/data-first.js.map +1 -1
- package/dist/cjs/debounce.d.ts +1 -1
- package/dist/cjs/debounce.d.ts.map +1 -1
- package/dist/cjs/debounce.js +25 -2
- package/dist/cjs/debounce.js.map +1 -1
- package/dist/cjs/delay.d.ts.map +1 -1
- package/dist/cjs/delay.js +25 -2
- package/dist/cjs/delay.js.map +1 -1
- package/dist/cjs/empty.js +1 -1
- package/dist/cjs/empty.js.map +1 -1
- package/dist/cjs/exhaustMap.d.ts +1 -1
- package/dist/cjs/exhaustMap.d.ts.map +1 -1
- package/dist/cjs/exhaustMap.js.map +1 -1
- package/dist/cjs/exhaustMapCause.d.ts +2 -1
- package/dist/cjs/exhaustMapCause.d.ts.map +1 -1
- package/dist/cjs/exhaustMapCause.js +26 -2
- package/dist/cjs/exhaustMapCause.js.map +1 -1
- package/dist/cjs/exhaustMapLatest.d.ts +1 -1
- package/dist/cjs/exhaustMapLatest.d.ts.map +1 -1
- package/dist/cjs/exhaustMapLatest.js.map +1 -1
- package/dist/cjs/exhaustMapLatestCause.d.ts +2 -1
- package/dist/cjs/exhaustMapLatestCause.d.ts.map +1 -1
- package/dist/cjs/exhaustMapLatestCause.js +26 -2
- package/dist/cjs/exhaustMapLatestCause.js.map +1 -1
- package/dist/cjs/failCause.d.ts +1 -0
- package/dist/cjs/failCause.d.ts.map +1 -1
- package/dist/cjs/failCause.js +5 -1
- package/dist/cjs/failCause.js.map +1 -1
- package/dist/cjs/filter.d.ts.map +1 -1
- package/dist/cjs/filter.js +25 -2
- package/dist/cjs/filter.js.map +1 -1
- package/dist/cjs/filterMap.d.ts +1 -1
- package/dist/cjs/filterMap.d.ts.map +1 -1
- package/dist/cjs/filterMap.js +26 -2
- package/dist/cjs/filterMap.js.map +1 -1
- package/dist/cjs/flatMap.d.ts +1 -1
- package/dist/cjs/flatMap.d.ts.map +1 -1
- package/dist/cjs/flatMap.js.map +1 -1
- package/dist/cjs/fromArray.d.ts.map +1 -1
- package/dist/cjs/fromArray.js +27 -4
- package/dist/cjs/fromArray.js.map +1 -1
- package/dist/cjs/fromDequeue.d.ts +5 -0
- package/dist/cjs/fromDequeue.d.ts.map +1 -0
- package/dist/cjs/fromDequeue.js +49 -0
- package/dist/cjs/fromDequeue.js.map +1 -0
- package/dist/cjs/fromEffect.d.ts +1 -1
- package/dist/cjs/fromEffect.d.ts.map +1 -1
- package/dist/cjs/fromEffect.js +33 -2
- package/dist/cjs/fromEffect.js.map +1 -1
- package/dist/cjs/fromEmitter.d.ts +2 -2
- package/dist/cjs/fromEmitter.d.ts.map +1 -1
- package/dist/cjs/fromEmitter.js +35 -11
- package/dist/cjs/fromEmitter.js.map +1 -1
- package/dist/cjs/fromFxEffect.d.ts +1 -1
- package/dist/cjs/fromFxEffect.d.ts.map +1 -1
- package/dist/cjs/fromFxEffect.js +25 -2
- package/dist/cjs/fromFxEffect.js.map +1 -1
- package/dist/cjs/fromHub.d.ts +5 -0
- package/dist/cjs/fromHub.d.ts.map +1 -0
- package/dist/cjs/fromHub.js +34 -0
- package/dist/cjs/fromHub.js.map +1 -0
- package/dist/cjs/fromIterable.d.ts.map +1 -1
- package/dist/cjs/fromIterable.js +27 -4
- package/dist/cjs/fromIterable.js.map +1 -1
- package/dist/cjs/fromStream.d.ts +4 -0
- package/dist/cjs/fromStream.d.ts.map +1 -0
- package/dist/cjs/fromStream.js +34 -0
- package/dist/cjs/fromStream.js.map +1 -0
- package/dist/cjs/gen.d.ts +1 -1
- package/dist/cjs/gen.d.ts.map +1 -1
- package/dist/cjs/gen.js +25 -2
- package/dist/cjs/gen.js.map +1 -1
- package/dist/cjs/helpers.d.ts +5 -3
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +59 -72
- package/dist/cjs/helpers.js.map +1 -1
- package/dist/cjs/hold.d.ts +5 -5
- package/dist/cjs/hold.d.ts.map +1 -1
- package/dist/cjs/hold.js +32 -11
- package/dist/cjs/hold.js.map +1 -1
- package/dist/cjs/index.d.ts +43 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +185 -119
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/keyed.d.ts.map +1 -1
- package/dist/cjs/keyed.js +32 -41
- package/dist/cjs/keyed.js.map +1 -1
- package/dist/cjs/map.d.ts.map +1 -1
- package/dist/cjs/map.js +25 -2
- package/dist/cjs/map.js.map +1 -1
- package/dist/cjs/mergeAll.d.ts.map +1 -1
- package/dist/cjs/mergeAll.js +28 -3
- package/dist/cjs/mergeAll.js.map +1 -1
- package/dist/cjs/mergeBufferConcurrently.d.ts +8 -0
- package/dist/cjs/mergeBufferConcurrently.d.ts.map +1 -0
- package/dist/cjs/mergeBufferConcurrently.js +95 -0
- package/dist/cjs/mergeBufferConcurrently.js.map +1 -0
- package/dist/cjs/mergeConcurrently.d.ts +3 -0
- package/dist/cjs/mergeConcurrently.d.ts.map +1 -0
- package/dist/cjs/mergeConcurrently.js +69 -0
- package/dist/cjs/mergeConcurrently.js.map +1 -0
- package/dist/cjs/multicast.d.ts +10 -8
- package/dist/cjs/multicast.d.ts.map +1 -1
- package/dist/cjs/multicast.js +43 -19
- package/dist/cjs/multicast.js.map +1 -1
- package/dist/cjs/never.d.ts.map +1 -1
- package/dist/cjs/never.js +25 -2
- package/dist/cjs/never.js.map +1 -1
- package/dist/cjs/observe.d.ts +4 -1
- package/dist/cjs/observe.d.ts.map +1 -1
- package/dist/cjs/observe.js +40 -10
- package/dist/cjs/observe.js.map +1 -1
- package/dist/cjs/onExit.d.ts +5 -0
- package/dist/cjs/onExit.d.ts.map +1 -0
- package/dist/cjs/onExit.js +33 -0
- package/dist/cjs/onExit.js.map +1 -0
- package/dist/cjs/onInterrupt.d.ts +1 -1
- package/dist/cjs/onInterrupt.d.ts.map +1 -1
- package/dist/cjs/onInterrupt.js +25 -2
- package/dist/cjs/onInterrupt.js.map +1 -1
- package/dist/cjs/orElse.d.ts +4 -0
- package/dist/cjs/orElse.d.ts.map +1 -0
- package/dist/cjs/orElse.js +34 -0
- package/dist/cjs/orElse.js.map +1 -0
- package/dist/cjs/promise.d.ts.map +1 -1
- package/dist/cjs/promise.js +36 -13
- package/dist/cjs/promise.js.map +1 -1
- package/dist/cjs/provide.d.ts +3 -2
- package/dist/cjs/provide.d.ts.map +1 -1
- package/dist/cjs/provide.js +34 -7
- package/dist/cjs/provide.js.map +1 -1
- package/dist/cjs/reduce.d.ts +2 -1
- package/dist/cjs/reduce.d.ts.map +1 -1
- package/dist/cjs/reduce.js +26 -3
- package/dist/cjs/reduce.js.map +1 -1
- package/dist/cjs/scan.d.ts.map +1 -1
- package/dist/cjs/scan.js +26 -3
- package/dist/cjs/scan.js.map +1 -1
- package/dist/cjs/scoped.d.ts +1 -1
- package/dist/cjs/scoped.d.ts.map +1 -1
- package/dist/cjs/scoped.js +25 -2
- package/dist/cjs/scoped.js.map +1 -1
- package/dist/cjs/skipRepeats.d.ts +1 -1
- package/dist/cjs/skipRepeats.d.ts.map +1 -1
- package/dist/cjs/skipRepeats.js +34 -9
- package/dist/cjs/skipRepeats.js.map +1 -1
- package/dist/cjs/skipWhile.d.ts.map +1 -1
- package/dist/cjs/skipWhile.js +27 -4
- package/dist/cjs/skipWhile.js.map +1 -1
- package/dist/cjs/slice.d.ts.map +1 -1
- package/dist/cjs/slice.js +29 -6
- package/dist/cjs/slice.js.map +1 -1
- package/dist/cjs/snapshotEffect.d.ts +1 -1
- package/dist/cjs/snapshotEffect.d.ts.map +1 -1
- package/dist/cjs/snapshotEffect.js +36 -10
- package/dist/cjs/snapshotEffect.js.map +1 -1
- package/dist/cjs/struct.d.ts +5 -0
- package/dist/cjs/struct.d.ts.map +1 -0
- package/dist/cjs/struct.js +10 -0
- package/dist/cjs/struct.js.map +1 -0
- package/dist/cjs/switchMap.d.ts +1 -1
- package/dist/cjs/switchMap.d.ts.map +1 -1
- package/dist/cjs/switchMap.js.map +1 -1
- package/dist/cjs/switchMapCause.d.ts +3 -1
- package/dist/cjs/switchMapCause.d.ts.map +1 -1
- package/dist/cjs/switchMapCause.js +38 -3
- package/dist/cjs/switchMapCause.js.map +1 -1
- package/dist/cjs/switchMatch.d.ts +2 -1
- package/dist/cjs/switchMatch.d.ts.map +1 -1
- package/dist/cjs/switchMatch.js +26 -2
- package/dist/cjs/switchMatch.js.map +1 -1
- package/dist/cjs/takeWhile.d.ts.map +1 -1
- package/dist/cjs/takeWhile.js +27 -4
- package/dist/cjs/takeWhile.js.map +1 -1
- package/dist/cjs/tap.d.ts +1 -1
- package/dist/cjs/tap.d.ts.map +1 -1
- package/dist/cjs/tap.js +26 -3
- package/dist/cjs/tap.js.map +1 -1
- package/dist/cjs/tapCause.d.ts +2 -1
- package/dist/cjs/tapCause.d.ts.map +1 -1
- package/dist/cjs/tapCause.js +32 -5
- package/dist/cjs/tapCause.js.map +1 -1
- package/dist/cjs/test-utils.d.ts +1 -1
- package/dist/cjs/test-utils.d.ts.map +1 -1
- package/dist/cjs/test-utils.js +33 -8
- package/dist/cjs/test-utils.js.map +1 -1
- package/dist/cjs/throttle.d.ts +1 -1
- package/dist/cjs/throttle.d.ts.map +1 -1
- package/dist/cjs/throttle.js +25 -2
- package/dist/cjs/throttle.js.map +1 -1
- package/dist/cjs/toArray.d.ts +1 -1
- package/dist/cjs/toArray.d.ts.map +1 -1
- package/dist/cjs/toArray.js +26 -4
- package/dist/cjs/toArray.js.map +1 -1
- package/dist/cjs/toChunk.d.ts +2 -1
- package/dist/cjs/toChunk.d.ts.map +1 -1
- package/dist/cjs/toChunk.js +28 -4
- package/dist/cjs/toChunk.js.map +1 -1
- package/dist/cjs/toEnqueue.d.ts +6 -0
- package/dist/cjs/toEnqueue.d.ts.map +1 -0
- package/dist/cjs/toEnqueue.js +9 -0
- package/dist/cjs/toEnqueue.js.map +1 -0
- package/dist/cjs/toReadonlyArray.d.ts +1 -1
- package/dist/cjs/toReadonlyArray.d.ts.map +1 -1
- package/dist/cjs/toStream.d.ts +4 -0
- package/dist/cjs/toStream.d.ts.map +1 -0
- package/dist/cjs/toStream.js +35 -0
- package/dist/cjs/toStream.js.map +1 -0
- package/dist/combineAll.d.ts.map +1 -1
- package/dist/combineAll.js +5 -5
- package/dist/combineAll.js.map +1 -1
- package/dist/combineAllDiscard.d.ts.map +1 -1
- package/dist/combineAllDiscard.js +5 -5
- package/dist/combineAllDiscard.js.map +1 -1
- package/dist/continueWith.d.ts +1 -1
- package/dist/continueWith.d.ts.map +1 -1
- package/dist/continueWith.js +1 -1
- package/dist/continueWith.js.map +1 -1
- package/dist/data-first.d.ts +10 -0
- package/dist/data-first.d.ts.map +1 -1
- package/dist/data-first.js +10 -0
- package/dist/data-first.js.map +1 -1
- package/dist/debounce.d.ts +1 -1
- package/dist/debounce.d.ts.map +1 -1
- package/dist/debounce.js +1 -1
- package/dist/debounce.js.map +1 -1
- package/dist/delay.d.ts.map +1 -1
- package/dist/delay.js +1 -1
- package/dist/delay.js.map +1 -1
- package/dist/empty.js +1 -1
- package/dist/empty.js.map +1 -1
- package/dist/exhaustMap.d.ts +1 -1
- package/dist/exhaustMap.d.ts.map +1 -1
- package/dist/exhaustMap.js.map +1 -1
- package/dist/exhaustMapCause.d.ts +2 -1
- package/dist/exhaustMapCause.d.ts.map +1 -1
- package/dist/exhaustMapCause.js +3 -2
- package/dist/exhaustMapCause.js.map +1 -1
- package/dist/exhaustMapLatest.d.ts +1 -1
- package/dist/exhaustMapLatest.d.ts.map +1 -1
- package/dist/exhaustMapLatest.js.map +1 -1
- package/dist/exhaustMapLatestCause.d.ts +2 -1
- package/dist/exhaustMapLatestCause.d.ts.map +1 -1
- package/dist/exhaustMapLatestCause.js +3 -2
- package/dist/exhaustMapLatestCause.js.map +1 -1
- package/dist/failCause.d.ts +1 -0
- package/dist/failCause.d.ts.map +1 -1
- package/dist/failCause.js +3 -0
- package/dist/failCause.js.map +1 -1
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +2 -2
- package/dist/filter.js.map +1 -1
- package/dist/filterMap.d.ts +1 -1
- package/dist/filterMap.d.ts.map +1 -1
- package/dist/filterMap.js +3 -2
- package/dist/filterMap.js.map +1 -1
- package/dist/flatMap.d.ts +1 -1
- package/dist/flatMap.d.ts.map +1 -1
- package/dist/flatMap.js.map +1 -1
- package/dist/fromArray.d.ts.map +1 -1
- package/dist/fromArray.js +2 -2
- package/dist/fromArray.js.map +1 -1
- package/dist/fromDequeue.d.ts +5 -0
- package/dist/fromDequeue.d.ts.map +1 -0
- package/dist/fromDequeue.js +21 -0
- package/dist/fromDequeue.js.map +1 -0
- package/dist/fromEffect.d.ts +1 -1
- package/dist/fromEffect.d.ts.map +1 -1
- package/dist/fromEffect.js +11 -3
- package/dist/fromEffect.js.map +1 -1
- package/dist/fromEmitter.d.ts +2 -2
- package/dist/fromEmitter.d.ts.map +1 -1
- package/dist/fromEmitter.js +7 -6
- package/dist/fromEmitter.js.map +1 -1
- package/dist/fromFxEffect.d.ts +1 -1
- package/dist/fromFxEffect.d.ts.map +1 -1
- package/dist/fromFxEffect.js +2 -2
- package/dist/fromFxEffect.js.map +1 -1
- package/dist/fromHub.d.ts +5 -0
- package/dist/fromHub.d.ts.map +1 -0
- package/dist/fromHub.js +7 -0
- package/dist/fromHub.js.map +1 -0
- package/dist/fromIterable.d.ts.map +1 -1
- package/dist/fromIterable.js +2 -2
- package/dist/fromIterable.js.map +1 -1
- package/dist/fromStream.d.ts +4 -0
- package/dist/fromStream.d.ts.map +1 -0
- package/dist/fromStream.js +7 -0
- package/dist/fromStream.js.map +1 -0
- package/dist/gen.d.ts +1 -1
- package/dist/gen.d.ts.map +1 -1
- package/dist/gen.js +1 -1
- package/dist/gen.js.map +1 -1
- package/dist/helpers.d.ts +5 -3
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +34 -70
- package/dist/helpers.js.map +1 -1
- package/dist/hold.d.ts +5 -5
- package/dist/hold.d.ts.map +1 -1
- package/dist/hold.js +3 -5
- package/dist/hold.js.map +1 -1
- package/dist/index.d.ts +43 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +132 -116
- package/dist/index.js.map +1 -1
- package/dist/keyed.d.ts.map +1 -1
- package/dist/keyed.js +33 -42
- package/dist/keyed.js.map +1 -1
- package/dist/map.d.ts.map +1 -1
- package/dist/map.js +1 -1
- package/dist/map.js.map +1 -1
- package/dist/mergeAll.d.ts.map +1 -1
- package/dist/mergeAll.js +4 -2
- package/dist/mergeAll.js.map +1 -1
- package/dist/mergeBufferConcurrently.d.ts +8 -0
- package/dist/mergeBufferConcurrently.d.ts.map +1 -0
- package/dist/mergeBufferConcurrently.js +68 -0
- package/dist/mergeBufferConcurrently.js.map +1 -0
- package/dist/mergeConcurrently.d.ts +3 -0
- package/dist/mergeConcurrently.d.ts.map +1 -0
- package/dist/mergeConcurrently.js +42 -0
- package/dist/mergeConcurrently.js.map +1 -0
- package/dist/multicast.d.ts +10 -8
- package/dist/multicast.d.ts.map +1 -1
- package/dist/multicast.js +17 -16
- package/dist/multicast.js.map +1 -1
- package/dist/never.d.ts.map +1 -1
- package/dist/never.js +2 -2
- package/dist/never.js.map +1 -1
- package/dist/observe.d.ts +4 -1
- package/dist/observe.d.ts.map +1 -1
- package/dist/observe.js +12 -7
- package/dist/observe.js.map +1 -1
- package/dist/onExit.d.ts +5 -0
- package/dist/onExit.d.ts.map +1 -0
- package/dist/onExit.js +6 -0
- package/dist/onExit.js.map +1 -0
- package/dist/onInterrupt.d.ts +1 -1
- package/dist/onInterrupt.d.ts.map +1 -1
- package/dist/onInterrupt.js +1 -1
- package/dist/onInterrupt.js.map +1 -1
- package/dist/orElse.d.ts +4 -0
- package/dist/orElse.d.ts.map +1 -0
- package/dist/orElse.js +7 -0
- package/dist/orElse.js.map +1 -0
- package/dist/promise.d.ts.map +1 -1
- package/dist/promise.js +5 -5
- package/dist/promise.js.map +1 -1
- package/dist/provide.d.ts +3 -2
- package/dist/provide.d.ts.map +1 -1
- package/dist/provide.js +8 -4
- package/dist/provide.js.map +1 -1
- package/dist/reduce.d.ts +2 -1
- package/dist/reduce.d.ts.map +1 -1
- package/dist/reduce.js +1 -1
- package/dist/reduce.js.map +1 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +1 -1
- package/dist/scan.js.map +1 -1
- package/dist/scoped.d.ts +1 -1
- package/dist/scoped.d.ts.map +1 -1
- package/dist/scoped.js +1 -1
- package/dist/scoped.js.map +1 -1
- package/dist/skipRepeats.d.ts +1 -1
- package/dist/skipRepeats.d.ts.map +1 -1
- package/dist/skipRepeats.js +6 -7
- package/dist/skipRepeats.js.map +1 -1
- package/dist/skipWhile.d.ts.map +1 -1
- package/dist/skipWhile.js +2 -2
- package/dist/skipWhile.js.map +1 -1
- package/dist/slice.d.ts.map +1 -1
- package/dist/slice.js +4 -4
- package/dist/slice.js.map +1 -1
- package/dist/snapshotEffect.d.ts +1 -1
- package/dist/snapshotEffect.d.ts.map +1 -1
- package/dist/snapshotEffect.js +4 -1
- package/dist/snapshotEffect.js.map +1 -1
- package/dist/struct.d.ts +5 -0
- package/dist/struct.d.ts.map +1 -0
- package/dist/struct.js +6 -0
- package/dist/struct.js.map +1 -0
- package/dist/switchMap.d.ts +1 -1
- package/dist/switchMap.d.ts.map +1 -1
- package/dist/switchMap.js.map +1 -1
- package/dist/switchMapCause.d.ts +3 -1
- package/dist/switchMapCause.d.ts.map +1 -1
- package/dist/switchMapCause.js +13 -2
- package/dist/switchMapCause.js.map +1 -1
- package/dist/switchMatch.d.ts +2 -1
- package/dist/switchMatch.d.ts.map +1 -1
- package/dist/switchMatch.js +3 -2
- package/dist/switchMatch.js.map +1 -1
- package/dist/takeWhile.d.ts.map +1 -1
- package/dist/takeWhile.js +2 -2
- package/dist/takeWhile.js.map +1 -1
- package/dist/tap.d.ts +1 -1
- package/dist/tap.d.ts.map +1 -1
- package/dist/tap.js +2 -2
- package/dist/tap.js.map +1 -1
- package/dist/tapCause.d.ts +2 -1
- package/dist/tapCause.d.ts.map +1 -1
- package/dist/tapCause.js +7 -3
- package/dist/tapCause.js.map +1 -1
- package/dist/test-utils.d.ts +1 -1
- package/dist/test-utils.d.ts.map +1 -1
- package/dist/test-utils.js +5 -3
- package/dist/test-utils.js.map +1 -1
- package/dist/throttle.d.ts +1 -1
- package/dist/throttle.d.ts.map +1 -1
- package/dist/throttle.js +1 -1
- package/dist/throttle.js.map +1 -1
- package/dist/toArray.d.ts +1 -1
- package/dist/toArray.d.ts.map +1 -1
- package/dist/toArray.js +3 -4
- package/dist/toArray.js.map +1 -1
- package/dist/toChunk.d.ts +2 -1
- package/dist/toChunk.d.ts.map +1 -1
- package/dist/toChunk.js +2 -1
- package/dist/toChunk.js.map +1 -1
- package/dist/toEnqueue.d.ts +6 -0
- package/dist/toEnqueue.d.ts.map +1 -0
- package/dist/toEnqueue.js +5 -0
- package/dist/toEnqueue.js.map +1 -0
- package/dist/toReadonlyArray.d.ts +1 -1
- package/dist/toReadonlyArray.d.ts.map +1 -1
- package/dist/toStream.d.ts +4 -0
- package/dist/toStream.d.ts.map +1 -0
- package/dist/toStream.js +8 -0
- package/dist/toStream.js.map +1 -0
- package/dist/tsconfig.cjs.build.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/Computed.ts +114 -0
- package/src/Filtered.ts +112 -0
- package/src/Fx.ts +17 -42
- package/src/RefArray.ts +226 -0
- package/src/RefSubject.test.ts +72 -7
- package/src/RefSubject.ts +606 -583
- package/src/RefTransform.ts +134 -0
- package/src/Subject.ts +6 -14
- package/src/at.ts +3 -2
- package/src/catchAllCause.test.ts +1 -1
- package/src/catchAllCause.ts +46 -3
- package/src/combineAll.ts +18 -14
- package/src/combineAllDiscard.ts +18 -14
- package/src/continueWith.ts +2 -1
- package/src/data-first.ts +10 -0
- package/src/debounce.test.ts +1 -1
- package/src/debounce.ts +3 -2
- package/src/delay.test.ts +1 -1
- package/src/delay.ts +1 -1
- package/src/empty.ts +1 -1
- package/src/exhaustMap.test.ts +1 -1
- package/src/exhaustMap.ts +2 -1
- package/src/exhaustMapCause.test.ts +1 -1
- package/src/exhaustMapCause.ts +4 -2
- package/src/exhaustMapLatest.test.ts +1 -1
- package/src/exhaustMapLatest.ts +2 -1
- package/src/exhaustMapLatestCause.test.ts +1 -1
- package/src/exhaustMapLatestCause.ts +4 -2
- package/src/failCause.test.ts +2 -1
- package/src/failCause.ts +4 -0
- package/src/filter.ts +2 -4
- package/src/filterMap.ts +11 -2
- package/src/flatMap.test.ts +1 -1
- package/src/flatMap.ts +2 -1
- package/src/fromArray.ts +3 -2
- package/src/fromDequeue.ts +39 -0
- package/src/fromEffect.test.ts +2 -1
- package/src/fromEffect.ts +14 -3
- package/src/fromEmitter.test.ts +2 -1
- package/src/fromEmitter.ts +8 -12
- package/src/fromFxEffect.test.ts +2 -1
- package/src/fromFxEffect.ts +5 -2
- package/src/fromHub.ts +10 -0
- package/src/fromIterable.ts +3 -2
- package/src/gen.test.ts +2 -1
- package/src/gen.ts +2 -1
- package/src/helpers.ts +79 -108
- package/src/hold.test.ts +1 -1
- package/src/hold.ts +4 -8
- package/src/index.ts +580 -609
- package/src/keyed.ts +82 -81
- package/src/map.ts +2 -1
- package/src/mergeAll.ts +12 -6
- package/src/mergeBufferConcurrently.test.ts +37 -0
- package/src/mergeBufferConcurrently.ts +105 -0
- package/src/mergeConcurrently.test.ts +20 -0
- package/src/mergeConcurrently.ts +57 -0
- package/src/multicast.test.ts +2 -1
- package/src/multicast.ts +34 -24
- package/src/never.ts +3 -2
- package/src/observe.ts +20 -9
- package/src/onExit.ts +13 -0
- package/src/onInterrupt.ts +1 -1
- package/src/orElse.ts +16 -0
- package/src/promise.ts +6 -5
- package/src/provide.ts +14 -10
- package/src/reduce.ts +3 -1
- package/src/scan.ts +2 -1
- package/src/scoped.ts +3 -1
- package/src/skipRepeats.ts +7 -8
- package/src/skipWhile.ts +2 -2
- package/src/slice.ts +5 -4
- package/src/snapshotEffect.ts +5 -1
- package/src/struct.ts +18 -0
- package/src/switchMap.test.ts +1 -1
- package/src/switchMap.ts +2 -1
- package/src/switchMapCause.test.ts +1 -1
- package/src/switchMapCause.ts +20 -2
- package/src/switchMatch.test.ts +1 -1
- package/src/switchMatch.ts +4 -2
- package/src/takeWhile.ts +3 -3
- package/src/tap.ts +7 -2
- package/src/tapCause.ts +10 -7
- package/src/test-utils.ts +5 -3
- package/src/throttle.test.ts +1 -1
- package/src/throttle.ts +3 -1
- package/src/toArray.ts +6 -5
- package/src/toChunk.ts +2 -1
- package/src/toEnqueue.ts +13 -0
- package/src/toReadonlyArray.ts +1 -1
- package/tsconfig.build.json +2 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/vite.config.js +3 -0
- package/src/externals.ts +0 -18
package/src/observe.ts
CHANGED
|
@@ -1,30 +1,41 @@
|
|
|
1
|
+
import * as Cause from '@effect/io/Cause'
|
|
2
|
+
import * as Deferred from '@effect/io/Deferred'
|
|
3
|
+
import * as Effect from '@effect/io/Effect'
|
|
4
|
+
import * as Fiber from '@effect/io/Fiber'
|
|
1
5
|
import type { Scope } from '@effect/io/Scope'
|
|
2
6
|
|
|
3
7
|
import type { Fx } from './Fx.js'
|
|
4
8
|
import { Sink } from './Fx.js'
|
|
5
|
-
import type { Cause } from './externals.js'
|
|
6
|
-
import { Deferred, Effect, Fiber } from './externals.js'
|
|
7
9
|
|
|
8
10
|
export function observe<R, E, A, R2, E2>(
|
|
9
11
|
fx: Fx<R, E, A>,
|
|
10
12
|
f: (a: A) => Effect.Effect<R2, E2, void>,
|
|
11
13
|
): Effect.Effect<R | R2 | Scope, E | E2, void> {
|
|
12
|
-
return Effect.
|
|
13
|
-
const deferred = yield* $(Deferred.make<E | E2, void>())
|
|
14
|
+
return Effect.flatMap(Deferred.make<E | E2, void>(), (deferred) => {
|
|
14
15
|
const error = (cause: Cause.Cause<E | E2>) => Deferred.failCause(deferred, cause)
|
|
15
16
|
const end = () => Deferred.succeed(deferred, undefined)
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
return Effect.flatMap(
|
|
18
19
|
Effect.forkScoped(
|
|
19
20
|
Effect.flatMap(fx.run(Sink((a: A) => Effect.catchAllCause(f(a), error), error)), end),
|
|
20
21
|
),
|
|
22
|
+
(fiber) => Effect.flatMap(Deferred.await(deferred), () => Fiber.interruptFork(fiber)),
|
|
21
23
|
)
|
|
22
|
-
|
|
23
|
-
yield* $(Deferred.await(deferred))
|
|
24
|
-
yield* $(Fiber.interruptFork(fiber))
|
|
25
24
|
})
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
export function drain<R, E, A>(fx: Fx<R, E, A>): Effect.Effect<R | Scope, E, void> {
|
|
29
|
-
return observe(fx,
|
|
28
|
+
return observe(fx, Effect.unit as any)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function forkScoped<R, E, A>(
|
|
32
|
+
fx: Fx<R, E, A>,
|
|
33
|
+
): Effect.Effect<R | Scope, never, Fiber.RuntimeFiber<E, void>> {
|
|
34
|
+
return Effect.forkScoped(drain(fx))
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function fork<R, E, A>(
|
|
38
|
+
fx: Fx<R, E, A>,
|
|
39
|
+
): Effect.Effect<R | Scope, never, Fiber.RuntimeFiber<E, void>> {
|
|
40
|
+
return Effect.fork(drain(fx))
|
|
30
41
|
}
|
package/src/onExit.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
|
+
import * as Exit from '@effect/io/Exit'
|
|
3
|
+
|
|
4
|
+
import { Fx } from './Fx.js'
|
|
5
|
+
|
|
6
|
+
export function onExit<R, E, A, R2, E2, B>(
|
|
7
|
+
fx: Fx<R, E, A>,
|
|
8
|
+
f: (exit: Exit.Exit<E, void>) => Effect.Effect<R2, E2, B>,
|
|
9
|
+
): Fx<R | R2, E | E2, A> {
|
|
10
|
+
return Fx((sink) =>
|
|
11
|
+
Effect.onExit(fx.run(sink), (exit) => Effect.catchAllCause(f(exit), sink.error)),
|
|
12
|
+
)
|
|
13
|
+
}
|
package/src/onInterrupt.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { HashSet } from '@effect/data/HashSet'
|
|
2
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
3
|
import type { FiberId } from '@effect/io/Fiber/Id'
|
|
3
4
|
|
|
4
5
|
import { Fx } from './Fx.js'
|
|
5
|
-
import { Effect } from './externals.js'
|
|
6
6
|
|
|
7
7
|
export function onInterrupt<R, E, A, R2, E2, B>(
|
|
8
8
|
fx: Fx<R, E, A>,
|
package/src/orElse.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as Cause from '@effect/io/Cause'
|
|
2
|
+
import * as Effect from '@effect/io/Effect'
|
|
3
|
+
|
|
4
|
+
import { Fx } from './Fx.js'
|
|
5
|
+
import { observe } from './observe.js'
|
|
6
|
+
|
|
7
|
+
export function orElse<R, E, A, R2, E2, B>(
|
|
8
|
+
self: Fx<R, E, A>,
|
|
9
|
+
that: (cause: Cause.Cause<E>) => Fx<R2, E2, B>,
|
|
10
|
+
): Fx<R | R2, E2, A | B> {
|
|
11
|
+
return Fx((sink) =>
|
|
12
|
+
Effect.catchAllCause(Effect.scoped(observe(self, sink.event)), (cause) =>
|
|
13
|
+
that(cause).run(sink),
|
|
14
|
+
),
|
|
15
|
+
)
|
|
16
|
+
}
|
package/src/promise.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
|
+
|
|
1
3
|
import type { Fx } from './Fx.js'
|
|
2
|
-
import { Effect } from './externals.js'
|
|
3
4
|
import { fromEffect } from './fromEffect.js'
|
|
4
5
|
import { fromFxEffect } from './fromFxEffect.js'
|
|
5
6
|
|
|
@@ -25,14 +26,14 @@ export function tryCatchPromise<A, E>(
|
|
|
25
26
|
f: () => Promise<A>,
|
|
26
27
|
g: (error: unknown) => E,
|
|
27
28
|
): Fx<never, E, A> {
|
|
28
|
-
return fromEffect(Effect.
|
|
29
|
+
return fromEffect(Effect.tryPromise({ try: f, catch: g }))
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export function tryCatchPromiseInterrupt<A, E>(
|
|
32
33
|
f: (signal: AbortSignal) => Promise<A>,
|
|
33
34
|
g: (error: unknown) => E,
|
|
34
35
|
): Fx<never, E, A> {
|
|
35
|
-
return fromEffect(Effect.
|
|
36
|
+
return fromEffect(Effect.tryPromiseInterrupt({ try: f, catch: g }))
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
export function promiseFx<R, E, A>(f: () => Promise<Fx<R, E, A>>): Fx<R, E, A> {
|
|
@@ -59,12 +60,12 @@ export function tryCatchPromiseFx<R, E, A, E2>(
|
|
|
59
60
|
f: () => Promise<Fx<R, E, A>>,
|
|
60
61
|
g: (error: unknown) => E2,
|
|
61
62
|
): Fx<R, E | E2, A> {
|
|
62
|
-
return fromFxEffect(Effect.
|
|
63
|
+
return fromFxEffect(Effect.tryPromise({ try: f, catch: g }))
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
export function tryCatchPromiseInterruptFx<R, E, A, E2>(
|
|
66
67
|
f: (signal: AbortSignal) => Promise<Fx<R, E, A>>,
|
|
67
68
|
g: (error: unknown) => E2,
|
|
68
69
|
): Fx<R, E | E2, A> {
|
|
69
|
-
return fromFxEffect(Effect.
|
|
70
|
+
return fromFxEffect(Effect.tryPromiseInterrupt({ try: f, catch: g }))
|
|
70
71
|
}
|
package/src/provide.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Context from '@effect/data/Context'
|
|
2
|
+
import * as Effect from '@effect/io/Effect'
|
|
3
|
+
import * as Layer from '@effect/io/Layer'
|
|
4
|
+
|
|
2
5
|
import { Fx } from './Fx.js'
|
|
3
|
-
import type {
|
|
4
|
-
import { Context, Effect } from './externals.js'
|
|
6
|
+
import type { Sink } from './Fx.js'
|
|
5
7
|
import { switchMap } from './switchMap.js'
|
|
6
8
|
|
|
7
9
|
export function provideContext<R, E, A>(
|
|
@@ -10,7 +12,7 @@ export function provideContext<R, E, A>(
|
|
|
10
12
|
): Fx<never, E, A> {
|
|
11
13
|
return Fx(
|
|
12
14
|
<R2>(sink: Sink<R2, E, A>): Effect.Effect<R2, never, void> =>
|
|
13
|
-
Effect.
|
|
15
|
+
Effect.mapInputContext(fx.run(sink), (ctx) => Context.merge(ctx, context)),
|
|
14
16
|
)
|
|
15
17
|
}
|
|
16
18
|
|
|
@@ -20,7 +22,7 @@ export function provideSomeContext<R, E, A, R2>(
|
|
|
20
22
|
): Fx<Exclude<R, R2>, E, A> {
|
|
21
23
|
return Fx(
|
|
22
24
|
<R3>(sink: Sink<R3, E, A>): Effect.Effect<Exclude<R, R2> | R3, never, void> =>
|
|
23
|
-
Effect.
|
|
25
|
+
Effect.mapInputContext(fx.run(sink), (ctx) =>
|
|
24
26
|
Context.merge(ctx as Context.Context<R | R3>, context),
|
|
25
27
|
),
|
|
26
28
|
)
|
|
@@ -55,11 +57,13 @@ export function provideServiceEffect<R, E, A, I, S, R2, E2>(
|
|
|
55
57
|
): Fx<Exclude<R, I> | R2, E | E2, A> {
|
|
56
58
|
return Fx(
|
|
57
59
|
<R3>(sink: Sink<R3, E | E2, A>): Effect.Effect<Exclude<R, I> | R2 | R3, never, void> =>
|
|
58
|
-
Effect.matchCauseEffect(service,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
Effect.matchCauseEffect(service, {
|
|
61
|
+
onFailure: sink.error,
|
|
62
|
+
onSuccess: (s) =>
|
|
63
|
+
Effect.mapInputContext(fx.run(sink), (ctx) =>
|
|
64
|
+
Context.merge(ctx as Context.Context<R | R2 | R3>, Context.make(tag, s)),
|
|
65
|
+
),
|
|
66
|
+
}),
|
|
63
67
|
)
|
|
64
68
|
}
|
|
65
69
|
|
package/src/reduce.ts
CHANGED
package/src/scan.ts
CHANGED
package/src/scoped.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
|
+
import * as Scope from '@effect/io/Scope'
|
|
3
|
+
|
|
1
4
|
import { Fx } from './Fx.js'
|
|
2
|
-
import { Effect, Scope } from './externals.js'
|
|
3
5
|
|
|
4
6
|
export function scoped<R, E, A>(fx: Fx<R, E, A>): Fx<Exclude<R, Scope.Scope>, E, A> {
|
|
5
7
|
return Fx((sink) => Effect.scoped(fx.run(sink)))
|
package/src/skipRepeats.ts
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { Equivalence } from '@effect/data/
|
|
1
|
+
import * as Option from '@effect/data/Option'
|
|
2
|
+
import type { Equivalence } from '@effect/data/Equivalence'
|
|
3
|
+
import * as Effect from '@effect/io/Effect'
|
|
4
|
+
import fastDeepEqual from 'fast-deep-equal/es6'
|
|
3
5
|
|
|
4
6
|
import { Fx, Sink } from './Fx.js'
|
|
5
|
-
import { Effect, Option } from './externals.js'
|
|
6
7
|
|
|
7
8
|
export function skipRepeatsWith<R, E, A>(fx: Fx<R, E, A>, eq: Equivalence<A>): Fx<R, E, A> {
|
|
8
9
|
return Fx((sink) =>
|
|
9
10
|
Effect.suspend(() => {
|
|
10
11
|
let previous: Option.Option<A> = Option.none()
|
|
11
|
-
const isPrevious = Option.
|
|
12
|
+
const isPrevious = Option.containsWith(eq)
|
|
12
13
|
|
|
13
14
|
return fx.run(
|
|
14
15
|
Sink(
|
|
15
16
|
(a) =>
|
|
16
17
|
Effect.suspend(() =>
|
|
17
|
-
isPrevious(previous, a)
|
|
18
|
-
? Effect.unit()
|
|
19
|
-
: sink.event(((previous = Option.some(a)), a)),
|
|
18
|
+
isPrevious(previous, a) ? Effect.unit : sink.event(((previous = Option.some(a)), a)),
|
|
20
19
|
),
|
|
21
20
|
sink.error,
|
|
22
21
|
),
|
|
@@ -26,5 +25,5 @@ export function skipRepeatsWith<R, E, A>(fx: Fx<R, E, A>, eq: Equivalence<A>): F
|
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
export function skipRepeats<R, E, A>(fx: Fx<R, E, A>): Fx<R, E, A> {
|
|
29
|
-
return skipRepeatsWith(fx,
|
|
28
|
+
return skipRepeatsWith(fx, fastDeepEqual)
|
|
30
29
|
}
|
package/src/skipWhile.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Predicate } from '@effect/data/Predicate'
|
|
2
2
|
import { not } from '@effect/data/Predicate'
|
|
3
|
+
import * as Effect from '@effect/io/Effect'
|
|
3
4
|
|
|
4
5
|
import { Fx, Sink } from './Fx.js'
|
|
5
|
-
import { Effect } from './externals.js'
|
|
6
6
|
|
|
7
7
|
export function skipWhile<R, E, A>(fx: Fx<R, E, A>, predicate: Predicate<A>): Fx<R, E, A> {
|
|
8
8
|
return Fx((sink) =>
|
|
@@ -14,7 +14,7 @@ export function skipWhile<R, E, A>(fx: Fx<R, E, A>, predicate: Predicate<A>): Fx
|
|
|
14
14
|
(a) =>
|
|
15
15
|
Effect.suspend(() => {
|
|
16
16
|
if (skipping) {
|
|
17
|
-
return predicate(a) ? Effect.unit
|
|
17
|
+
return predicate(a) ? Effect.unit : sink.event(((skipping = false), a))
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
return sink.event(a)
|
package/src/slice.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
|
+
|
|
1
3
|
import { Fx, Sink } from './Fx.js'
|
|
2
|
-
import { Effect } from './externals.js'
|
|
3
4
|
|
|
4
5
|
export function slice<R, E, A>(fx: Fx<R, E, A>, skip: number, take: number): Fx<R, E, A> {
|
|
5
6
|
return Fx(
|
|
@@ -14,17 +15,17 @@ export function slice<R, E, A>(fx: Fx<R, E, A>, skip: number, take: number): Fx<
|
|
|
14
15
|
Effect.suspend(() => {
|
|
15
16
|
if (toSkip > 0) {
|
|
16
17
|
toSkip -= 1
|
|
17
|
-
return Effect.unit
|
|
18
|
+
return Effect.unit
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
if (toTake > 0) {
|
|
21
22
|
toTake -= 1
|
|
22
23
|
return Effect.tap(sink.event(a), () =>
|
|
23
|
-
Effect.sync(() => toTake === 0 && cb(Effect.unit
|
|
24
|
+
Effect.sync(() => toTake === 0 && cb(Effect.unit)),
|
|
24
25
|
)
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
return Effect.sync(() => cb(Effect.unit
|
|
28
|
+
return Effect.sync(() => cb(Effect.unit))
|
|
28
29
|
}),
|
|
29
30
|
sink.error,
|
|
30
31
|
),
|
package/src/snapshotEffect.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import * as Option from '@effect/data/Option'
|
|
2
|
+
import * as Effect from '@effect/io/Effect'
|
|
3
|
+
import * as Fiber from '@effect/io/Fiber'
|
|
4
|
+
import * as Ref from '@effect/io/Ref'
|
|
5
|
+
|
|
1
6
|
import { Fx, Sink } from './Fx.js'
|
|
2
|
-
import { Effect, Fiber, Option, Ref } from './externals.js'
|
|
3
7
|
|
|
4
8
|
export function snapshotEffect<R, E, A, R2, E2, B, R3, E3, C>(
|
|
5
9
|
fx: Fx<R, E, A>,
|
package/src/struct.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Fx } from './Fx.js'
|
|
2
|
+
import { combineAll } from './combineAll.js'
|
|
3
|
+
import { map } from './map.js'
|
|
4
|
+
|
|
5
|
+
export function struct<FXS extends Readonly<Record<string, Fx<any, any, any>>>>(
|
|
6
|
+
fx: FXS,
|
|
7
|
+
): Fx<
|
|
8
|
+
Fx.ResourcesOf<FXS[string]>,
|
|
9
|
+
Fx.ErrorsOf<FXS[string]>,
|
|
10
|
+
{
|
|
11
|
+
readonly [K in keyof FXS]: Fx.OutputOf<FXS[K]>
|
|
12
|
+
}
|
|
13
|
+
> {
|
|
14
|
+
return map(
|
|
15
|
+
combineAll(...Object.entries(fx).map(([key, value]) => map(value, (x) => [key, x] as const))),
|
|
16
|
+
Object.fromEntries,
|
|
17
|
+
)
|
|
18
|
+
}
|
package/src/switchMap.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import * as Duration from '@effect/data/Duration'
|
|
1
2
|
import { describe } from 'vitest'
|
|
2
3
|
|
|
3
4
|
import { delay } from './delay.js'
|
|
4
|
-
import { Duration } from './externals.js'
|
|
5
5
|
import { fromArray } from './fromArray.js'
|
|
6
6
|
import { switchMap } from './switchMap.js'
|
|
7
7
|
import { testCollectAll } from './test-utils.js'
|
package/src/switchMap.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import * as Duration from '@effect/data/Duration'
|
|
1
2
|
import { describe } from 'vitest'
|
|
2
3
|
|
|
3
4
|
import { delay } from './delay.js'
|
|
4
|
-
import { Duration } from './externals.js'
|
|
5
5
|
import { fail } from './failCause.js'
|
|
6
6
|
import { fromArray } from './fromArray.js'
|
|
7
7
|
import { mergeAll } from './mergeAll.js'
|
package/src/switchMapCause.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import * as Chunk from '@effect/data/Chunk'
|
|
2
|
+
import * as Either from '@effect/data/Either'
|
|
1
3
|
import { pipe } from '@effect/data/Function'
|
|
4
|
+
import * as Cause from '@effect/io/Cause'
|
|
5
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
6
|
|
|
3
7
|
import { Fx, Sink } from './Fx.js'
|
|
4
|
-
import { Cause, Effect, Either } from './externals.js'
|
|
5
8
|
import { failCause } from './failCause.js'
|
|
6
9
|
import { fromEffect } from './fromEffect.js'
|
|
7
10
|
import { withSwitch } from './helpers.js'
|
|
@@ -27,7 +30,7 @@ export function switchMapError<R, E, A, R2, E2, B>(
|
|
|
27
30
|
f: (e: E) => Fx<R2, E2, B>,
|
|
28
31
|
): Fx<R | R2, E2, A | B> {
|
|
29
32
|
return switchMapCause(fx, (cause) =>
|
|
30
|
-
pipe(cause, Cause.failureOrCause, Either.match(f, failCause)),
|
|
33
|
+
pipe(cause, Cause.failureOrCause, Either.match({ onLeft: f, onRight: failCause })),
|
|
31
34
|
)
|
|
32
35
|
}
|
|
33
36
|
|
|
@@ -37,3 +40,18 @@ export function switchMapErrorEffect<R, E, A, R2, E2, B>(
|
|
|
37
40
|
): Fx<R | R2, E2, A | B> {
|
|
38
41
|
return switchMapError(fx, (a) => fromEffect(f(a)))
|
|
39
42
|
}
|
|
43
|
+
|
|
44
|
+
export function switchMapDefect<R, E, A, R2, E2, B>(
|
|
45
|
+
fx: Fx<R, E, A>,
|
|
46
|
+
f: (e: unknown) => Fx<R2, E2, B>,
|
|
47
|
+
): Fx<R | R2, E | E2, A | B> {
|
|
48
|
+
return switchMapCause(fx, (cause): Fx<R | R2, E | E2, A | B> => {
|
|
49
|
+
const defects = Cause.defects(cause)
|
|
50
|
+
|
|
51
|
+
if (Chunk.size(defects) > 0) {
|
|
52
|
+
return f(Chunk.unsafeHead(defects))
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return failCause(cause)
|
|
56
|
+
})
|
|
57
|
+
}
|
package/src/switchMatch.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import * as Duration from '@effect/data/Duration'
|
|
1
2
|
import { describe } from 'vitest'
|
|
2
3
|
|
|
3
4
|
import { delay } from './delay.js'
|
|
4
|
-
import { Duration } from './externals.js'
|
|
5
5
|
import { fail } from './failCause.js'
|
|
6
6
|
import { fromArray } from './fromArray.js'
|
|
7
7
|
import { mergeAll } from './mergeAll.js'
|
package/src/switchMatch.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import * as Either from '@effect/data/Either'
|
|
1
2
|
import { pipe } from '@effect/data/Function'
|
|
3
|
+
import * as Cause from '@effect/io/Cause'
|
|
4
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
5
|
|
|
3
6
|
import { Fx, Sink } from './Fx.js'
|
|
4
|
-
import { Cause, Effect, Either } from './externals.js'
|
|
5
7
|
import { failCause } from './failCause.js'
|
|
6
8
|
import { fromEffect } from './fromEffect.js'
|
|
7
9
|
import { withSwitch } from './helpers.js'
|
|
@@ -30,7 +32,7 @@ export function switchMatch<R, E, A, R2, E2, B, R3, E3, C>(
|
|
|
30
32
|
): Fx<R | R2 | R3, E2 | E3, B | C> {
|
|
31
33
|
return switchMatchCause(
|
|
32
34
|
fx,
|
|
33
|
-
(cause) => pipe(cause, Cause.failureOrCause, Either.match(f, failCause)),
|
|
35
|
+
(cause) => pipe(cause, Cause.failureOrCause, Either.match({ onLeft: f, onRight: failCause })),
|
|
34
36
|
g,
|
|
35
37
|
)
|
|
36
38
|
}
|
package/src/takeWhile.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { Predicate } from '@effect/data/Predicate'
|
|
2
1
|
import { not } from '@effect/data/Predicate'
|
|
2
|
+
import type { Predicate } from '@effect/data/Predicate'
|
|
3
|
+
import * as Effect from '@effect/io/Effect'
|
|
3
4
|
|
|
4
5
|
import { Fx, Sink } from './Fx.js'
|
|
5
|
-
import { Effect } from './externals.js'
|
|
6
6
|
|
|
7
7
|
export function takeWhile<R, E, A>(fx: Fx<R, E, A>, predicate: Predicate<A>): Fx<R, E, A> {
|
|
8
8
|
return Fx(<R2>(sink: Sink<R2, E, A>) =>
|
|
9
9
|
Effect.asyncEffect<never, never, void, R | R2, never, void>((cb) => {
|
|
10
|
-
const exit = Effect.sync(() => cb(Effect.unit
|
|
10
|
+
const exit = Effect.sync(() => cb(Effect.unit))
|
|
11
11
|
|
|
12
12
|
return Effect.tap(
|
|
13
13
|
fx.run(
|
package/src/tap.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
|
+
|
|
1
3
|
import { Fx, Sink } from './Fx.js'
|
|
2
|
-
import { Effect } from './externals.js'
|
|
3
4
|
|
|
4
5
|
export function tap<R, E, A, R2, E2, B>(
|
|
5
6
|
fx: Fx<R, E, A>,
|
|
@@ -7,7 +8,11 @@ export function tap<R, E, A, R2, E2, B>(
|
|
|
7
8
|
): Fx<R | R2, E | E2, A> {
|
|
8
9
|
return Fx(<R3>(sink: Sink<R3, E | E2, A>) =>
|
|
9
10
|
fx.run<R2 | R3>(
|
|
10
|
-
Sink(
|
|
11
|
+
Sink(
|
|
12
|
+
(a: A) =>
|
|
13
|
+
Effect.matchCauseEffect(f(a), { onFailure: sink.error, onSuccess: () => sink.event(a) }),
|
|
14
|
+
sink.error,
|
|
15
|
+
),
|
|
11
16
|
),
|
|
12
17
|
)
|
|
13
18
|
}
|
package/src/tapCause.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { pipe } from '@effect/data/Function'
|
|
2
|
+
import * as Cause from '@effect/io/Cause'
|
|
3
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
4
|
|
|
3
5
|
import { Fx, Sink } from './Fx.js'
|
|
4
|
-
import { Cause, Effect } from './externals.js'
|
|
5
6
|
|
|
6
7
|
export function tapCause<R, E, A, R2, E2, B>(
|
|
7
8
|
fx: Fx<R, E, A>,
|
|
@@ -10,11 +11,10 @@ export function tapCause<R, E, A, R2, E2, B>(
|
|
|
10
11
|
return Fx((sink) =>
|
|
11
12
|
fx.run(
|
|
12
13
|
Sink(sink.event, (cause) =>
|
|
13
|
-
Effect.matchCauseEffect(
|
|
14
|
-
|
|
15
|
-
(
|
|
16
|
-
|
|
17
|
-
),
|
|
14
|
+
Effect.matchCauseEffect(f(cause), {
|
|
15
|
+
onFailure: (cause2) => sink.error(Cause.sequential(cause, cause2)),
|
|
16
|
+
onSuccess: () => sink.error(cause),
|
|
17
|
+
}),
|
|
18
18
|
),
|
|
19
19
|
),
|
|
20
20
|
)
|
|
@@ -32,7 +32,10 @@ export function tapError<R, E, A, R2, E2, B>(
|
|
|
32
32
|
f: (error: E) => Effect.Effect<R, E2, B>,
|
|
33
33
|
): Fx<R | R2, E | E2, A> {
|
|
34
34
|
return tapCause(fx, (cause) =>
|
|
35
|
-
pipe(
|
|
35
|
+
pipe(
|
|
36
|
+
Cause.failureOrCause(cause),
|
|
37
|
+
Effect.matchEffect({ onFailure: f, onSuccess: Effect.failCause }),
|
|
38
|
+
),
|
|
36
39
|
)
|
|
37
40
|
}
|
|
38
41
|
|
package/src/test-utils.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ok } from 'assert'
|
|
2
2
|
|
|
3
|
+
import * as Cause from '@effect/io/Cause'
|
|
4
|
+
import * as Effect from '@effect/io/Effect'
|
|
5
|
+
import * as Exit from '@effect/io/Exit'
|
|
3
6
|
import { it, expect } from 'vitest'
|
|
4
7
|
|
|
5
8
|
import type { Fx } from './Fx.js'
|
|
6
|
-
import { Cause, Effect, Exit } from './externals.js'
|
|
7
9
|
import { observe } from './observe.js'
|
|
8
10
|
|
|
9
11
|
export function testCollectAll<E = never, A = never>(
|
|
@@ -11,7 +13,7 @@ export function testCollectAll<E = never, A = never>(
|
|
|
11
13
|
fx: Fx<never, E, A>,
|
|
12
14
|
expected: ReadonlyArray<A>,
|
|
13
15
|
) {
|
|
14
|
-
it(name, async () => {
|
|
16
|
+
it.concurrent(name, async () => {
|
|
15
17
|
const test = Effect.scoped(
|
|
16
18
|
Effect.gen(function* ($) {
|
|
17
19
|
const values: Array<A> = []
|
|
@@ -28,7 +30,7 @@ export function testCollectAll<E = never, A = never>(
|
|
|
28
30
|
|
|
29
31
|
export function testCause<E, A>(name: string, fx: Fx<never, E, A>, expected: Cause.Cause<E>) {
|
|
30
32
|
it(name, async () => {
|
|
31
|
-
const exit = await Effect.runPromiseExit(Effect.scoped(observe(fx, () => Effect.unit
|
|
33
|
+
const exit = await Effect.runPromiseExit(Effect.scoped(observe(fx, () => Effect.unit)))
|
|
32
34
|
|
|
33
35
|
ok(Exit.isFailure(exit))
|
|
34
36
|
expect(Cause.unannotate(exit.cause)).toEqual(expected)
|
package/src/throttle.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import * as Duration from '@effect/data/Duration'
|
|
1
2
|
import { describe } from 'vitest'
|
|
2
3
|
|
|
3
|
-
import { Duration } from './externals.js'
|
|
4
4
|
import { fromArray } from './fromArray.js'
|
|
5
5
|
import { testCollectAll } from './test-utils.js'
|
|
6
6
|
import { throttle } from './throttle.js'
|
package/src/throttle.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import * as Duration from '@effect/data/Duration'
|
|
2
|
+
import * as Effect from '@effect/io/Effect'
|
|
3
|
+
|
|
1
4
|
import { Fx, Sink } from './Fx.js'
|
|
2
|
-
import { Duration, Effect } from './externals.js'
|
|
3
5
|
import { withExhaust } from './helpers.js'
|
|
4
6
|
|
|
5
7
|
export function throttle<R, E, A>(fx: Fx<R, E, A>, duration: Duration.Duration): Fx<R, E, A> {
|
package/src/toArray.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect'
|
|
1
2
|
import type { Scope } from '@effect/io/Scope'
|
|
2
3
|
|
|
3
4
|
import type { Fx } from './Fx.js'
|
|
4
|
-
import { Effect } from './externals.js'
|
|
5
5
|
import { observe } from './observe.js'
|
|
6
6
|
|
|
7
7
|
export function toArray<R, E, A>(fx: Fx<R, E, A>): Effect.Effect<R | Scope, E, Array<A>> {
|
|
8
|
-
return Effect.
|
|
8
|
+
return Effect.suspend(() => {
|
|
9
9
|
const array: Array<A> = []
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
return Effect.map(
|
|
12
|
+
observe(fx, (a) => Effect.sync(() => array.push(a))),
|
|
13
|
+
() => array,
|
|
14
|
+
)
|
|
14
15
|
})
|
|
15
16
|
}
|
package/src/toChunk.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import * as Chunk from '@effect/data/Chunk'
|
|
2
|
+
import * as Effect from '@effect/io/Effect'
|
|
1
3
|
import type { Scope } from '@effect/io/Scope'
|
|
2
4
|
|
|
3
5
|
import type { Fx } from './Fx.js'
|
|
4
|
-
import { Chunk, Effect } from './externals.js'
|
|
5
6
|
import { observe } from './observe.js'
|
|
6
7
|
|
|
7
8
|
export function toChunk<R, E, A>(fx: Fx<R, E, A>): Effect.Effect<R | Scope, E, Chunk.Chunk<A>> {
|
package/src/toEnqueue.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect'
|
|
2
|
+
import * as Q from '@effect/io/Queue'
|
|
3
|
+
import * as Scope from '@effect/io/Scope'
|
|
4
|
+
|
|
5
|
+
import { Fx } from './Fx.js'
|
|
6
|
+
import { observe } from './observe.js'
|
|
7
|
+
|
|
8
|
+
export function toEnqueue<R, E, A>(
|
|
9
|
+
fx: Fx<R, E, A>,
|
|
10
|
+
enqueue: Q.Enqueue<A>,
|
|
11
|
+
): Effect.Effect<R | Scope.Scope, E, void> {
|
|
12
|
+
return observe(fx, enqueue.offer)
|
|
13
|
+
}
|
package/src/toReadonlyArray.ts
CHANGED