@typed/fx 2.0.0-beta.4 → 2.0.0-beta.6
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/README.md +34 -20
- package/dist/Fx/Fx.d.ts +362 -10
- package/dist/Fx/Fx.d.ts.map +1 -1
- package/dist/Fx/Fx.js +32 -1
- package/dist/Fx/TypeId.d.ts +49 -3
- package/dist/Fx/TypeId.d.ts.map +1 -1
- package/dist/Fx/TypeId.js +39 -2
- package/dist/Fx/combinators/additive.d.ts +156 -5
- package/dist/Fx/combinators/additive.d.ts.map +1 -1
- package/dist/Fx/combinators/additive.js +156 -5
- package/dist/Fx/combinators/catch.d.ts +195 -22
- package/dist/Fx/combinators/catch.d.ts.map +1 -1
- package/dist/Fx/combinators/catch.js +186 -16
- package/dist/Fx/combinators/causes.d.ts +24 -1
- package/dist/Fx/combinators/causes.d.ts.map +1 -1
- package/dist/Fx/combinators/causes.js +24 -1
- package/dist/Fx/combinators/changesWithEffect.d.ts +20 -0
- package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/changesWithEffect.js +20 -0
- package/dist/Fx/combinators/compact.d.ts +17 -0
- package/dist/Fx/combinators/compact.d.ts.map +1 -1
- package/dist/Fx/combinators/compact.js +17 -0
- package/dist/Fx/combinators/concatMap.d.ts +86 -0
- package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
- package/dist/Fx/combinators/concatMap.js +86 -0
- package/dist/Fx/combinators/continueWith.d.ts +109 -1
- package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
- package/dist/Fx/combinators/continueWith.js +109 -1
- package/dist/Fx/combinators/debounce.d.ts +34 -0
- package/dist/Fx/combinators/debounce.d.ts.map +1 -0
- package/dist/Fx/combinators/debounce.js +35 -0
- package/dist/Fx/combinators/delay.d.ts +34 -0
- package/dist/Fx/combinators/delay.d.ts.map +1 -0
- package/dist/Fx/combinators/delay.js +31 -0
- package/dist/Fx/combinators/dropUntil.d.ts +42 -0
- package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/dropUntil.js +42 -0
- package/dist/Fx/combinators/during.d.ts +38 -0
- package/dist/Fx/combinators/during.d.ts.map +1 -0
- package/dist/Fx/combinators/during.js +85 -0
- package/dist/Fx/combinators/ensuring.d.ts +33 -3
- package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
- package/dist/Fx/combinators/ensuring.js +33 -3
- package/dist/Fx/combinators/exhaustLatestMap.d.ts +40 -4
- package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMap.js +40 -4
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +39 -3
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMapEffect.js +39 -3
- package/dist/Fx/combinators/exhaustMap.d.ts +37 -0
- package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMap.js +37 -0
- package/dist/Fx/combinators/exhaustMapEffect.d.ts +32 -0
- package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMapEffect.js +32 -0
- package/dist/Fx/combinators/exit.d.ts +22 -1
- package/dist/Fx/combinators/exit.d.ts.map +1 -1
- package/dist/Fx/combinators/exit.js +22 -1
- package/dist/Fx/combinators/filter.d.ts +16 -0
- package/dist/Fx/combinators/filter.d.ts.map +1 -1
- package/dist/Fx/combinators/filter.js +16 -0
- package/dist/Fx/combinators/filterEffect.d.ts +21 -0
- package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterEffect.js +21 -0
- package/dist/Fx/combinators/filterMap.d.ts +19 -0
- package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMap.js +19 -0
- package/dist/Fx/combinators/filterMapEffect.d.ts +20 -0
- package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapEffect.js +20 -0
- package/dist/Fx/combinators/filterMapLoop.d.ts +19 -0
- package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoop.js +19 -0
- package/dist/Fx/combinators/filterMapLoopCause.d.ts +20 -0
- package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCause.js +20 -0
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +20 -0
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.js +20 -0
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts +20 -0
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopEffect.js +20 -0
- package/dist/Fx/combinators/flatMap.d.ts +48 -3
- package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMap.js +35 -2
- package/dist/Fx/combinators/flatMapConcurrently.d.ts +50 -3
- package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrently.js +47 -1
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +47 -3
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +39 -1
- package/dist/Fx/combinators/flatMapEffect.d.ts +44 -2
- package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapEffect.js +31 -1
- package/dist/Fx/combinators/flip.d.ts +33 -1
- package/dist/Fx/combinators/flip.d.ts.map +1 -1
- package/dist/Fx/combinators/flip.js +33 -1
- package/dist/Fx/combinators/gen.d.ts +28 -9
- package/dist/Fx/combinators/gen.d.ts.map +1 -1
- package/dist/Fx/combinators/gen.js +27 -3
- package/dist/Fx/combinators/genScoped.d.ts +32 -9
- package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/genScoped.js +30 -2
- package/dist/Fx/combinators/grouped.d.ts +89 -0
- package/dist/Fx/combinators/grouped.d.ts.map +1 -0
- package/dist/Fx/combinators/grouped.js +146 -0
- package/dist/Fx/combinators/index.d.ts +35 -0
- package/dist/Fx/combinators/index.d.ts.map +1 -1
- package/dist/Fx/combinators/index.js +35 -0
- package/dist/Fx/combinators/keyed.d.ts +121 -7
- package/dist/Fx/combinators/keyed.d.ts.map +1 -1
- package/dist/Fx/combinators/keyed.js +64 -6
- package/dist/Fx/combinators/loop.d.ts +16 -0
- package/dist/Fx/combinators/loop.d.ts.map +1 -1
- package/dist/Fx/combinators/loop.js +16 -0
- package/dist/Fx/combinators/loopCause.d.ts +17 -0
- package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCause.js +17 -0
- package/dist/Fx/combinators/loopCauseEffect.d.ts +18 -0
- package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCauseEffect.js +18 -0
- package/dist/Fx/combinators/loopEffect.d.ts +23 -0
- package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopEffect.js +23 -0
- package/dist/Fx/combinators/map.d.ts +45 -0
- package/dist/Fx/combinators/map.d.ts.map +1 -1
- package/dist/Fx/combinators/map.js +42 -0
- package/dist/Fx/combinators/mapBoth.d.ts +19 -0
- package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
- package/dist/Fx/combinators/mapBoth.js +19 -0
- package/dist/Fx/combinators/mapEffect.d.ts +24 -0
- package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/mapEffect.js +24 -0
- package/dist/Fx/combinators/mapError.d.ts +20 -4
- package/dist/Fx/combinators/mapError.d.ts.map +1 -1
- package/dist/Fx/combinators/mapError.js +20 -4
- package/dist/Fx/combinators/mergeAll.d.ts +34 -0
- package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeAll.js +34 -0
- package/dist/Fx/combinators/mergeOrdered.d.ts +35 -3
- package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeOrdered.js +35 -3
- package/dist/Fx/combinators/onError.d.ts +33 -3
- package/dist/Fx/combinators/onError.d.ts.map +1 -1
- package/dist/Fx/combinators/onError.js +33 -3
- package/dist/Fx/combinators/onExit.d.ts +28 -2
- package/dist/Fx/combinators/onExit.d.ts.map +1 -1
- package/dist/Fx/combinators/onExit.js +28 -2
- package/dist/Fx/combinators/onInterrupt.d.ts +48 -3
- package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
- package/dist/Fx/combinators/onInterrupt.js +48 -3
- package/dist/Fx/combinators/pairwise.d.ts +28 -0
- package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
- package/dist/Fx/combinators/pairwise.js +31 -0
- package/dist/Fx/combinators/provide.d.ts +130 -9
- package/dist/Fx/combinators/provide.d.ts.map +1 -1
- package/dist/Fx/combinators/provide.js +130 -9
- package/dist/Fx/combinators/race.d.ts +92 -0
- package/dist/Fx/combinators/race.d.ts.map +1 -0
- package/dist/Fx/combinators/race.js +149 -0
- package/dist/Fx/combinators/repeat.d.ts +41 -0
- package/dist/Fx/combinators/repeat.d.ts.map +1 -0
- package/dist/Fx/combinators/repeat.js +57 -0
- package/dist/Fx/combinators/result.d.ts +22 -0
- package/dist/Fx/combinators/result.d.ts.map +1 -1
- package/dist/Fx/combinators/result.js +26 -12
- package/dist/Fx/combinators/retry.d.ts +53 -0
- package/dist/Fx/combinators/retry.d.ts.map +1 -0
- package/dist/Fx/combinators/retry.js +71 -0
- package/dist/Fx/combinators/sample.d.ts +31 -0
- package/dist/Fx/combinators/sample.d.ts.map +1 -0
- package/dist/Fx/combinators/sample.js +42 -0
- package/dist/Fx/combinators/scan.d.ts +39 -0
- package/dist/Fx/combinators/scan.d.ts.map +1 -1
- package/dist/Fx/combinators/scan.js +39 -0
- package/dist/Fx/combinators/since.d.ts +30 -0
- package/dist/Fx/combinators/since.d.ts.map +1 -0
- package/dist/Fx/combinators/since.js +39 -0
- package/dist/Fx/combinators/skip.d.ts +31 -0
- package/dist/Fx/combinators/skip.d.ts.map +1 -1
- package/dist/Fx/combinators/skip.js +31 -0
- package/dist/Fx/combinators/skipRepeats.d.ts +16 -0
- package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeats.js +16 -0
- package/dist/Fx/combinators/skipRepeatsWith.d.ts +17 -0
- package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeatsWith.js +17 -0
- package/dist/Fx/combinators/skipWhile.d.ts +68 -0
- package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
- package/dist/Fx/combinators/skipWhile.js +68 -0
- package/dist/Fx/combinators/slice.d.ts +82 -0
- package/dist/Fx/combinators/slice.d.ts.map +1 -1
- package/dist/Fx/combinators/slice.js +33 -0
- package/dist/Fx/combinators/switchMap.d.ts +38 -0
- package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMap.js +38 -0
- package/dist/Fx/combinators/switchMapEffect.d.ts +37 -0
- package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMapEffect.js +37 -0
- package/dist/Fx/combinators/take.d.ts +32 -0
- package/dist/Fx/combinators/take.d.ts.map +1 -1
- package/dist/Fx/combinators/take.js +32 -0
- package/dist/Fx/combinators/takeUntil.d.ts +46 -0
- package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/takeUntil.js +46 -0
- package/dist/Fx/combinators/takeWhile.d.ts +31 -0
- package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
- package/dist/Fx/combinators/takeWhile.js +31 -0
- package/dist/Fx/combinators/tapEffect.d.ts +16 -0
- package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/tapEffect.js +16 -0
- package/dist/Fx/combinators/throttle.d.ts +79 -0
- package/dist/Fx/combinators/throttle.d.ts.map +1 -0
- package/dist/Fx/combinators/throttle.js +99 -0
- package/dist/Fx/combinators/timeout.d.ts +76 -0
- package/dist/Fx/combinators/timeout.d.ts.map +1 -0
- package/dist/Fx/combinators/timeout.js +110 -0
- package/dist/Fx/combinators/tuple.d.ts +30 -0
- package/dist/Fx/combinators/tuple.d.ts.map +1 -1
- package/dist/Fx/combinators/tuple.js +34 -3
- package/dist/Fx/combinators/until.d.ts +27 -0
- package/dist/Fx/combinators/until.d.ts.map +1 -0
- package/dist/Fx/combinators/until.js +56 -0
- package/dist/Fx/combinators/unwrap.d.ts +29 -0
- package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrap.js +29 -0
- package/dist/Fx/combinators/unwrapScoped.d.ts +33 -0
- package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrapScoped.js +33 -0
- package/dist/Fx/combinators/when.d.ts +35 -0
- package/dist/Fx/combinators/when.d.ts.map +1 -1
- package/dist/Fx/combinators/when.js +36 -1
- package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
- package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
- package/dist/Fx/combinators/withLatestFrom.js +68 -0
- package/dist/Fx/combinators/withSpan.d.ts +35 -1
- package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
- package/dist/Fx/combinators/withSpan.js +34 -3
- package/dist/Fx/combinators/zip.d.ts +60 -0
- package/dist/Fx/combinators/zip.d.ts.map +1 -1
- package/dist/Fx/combinators/zip.js +60 -0
- package/dist/Fx/constructors/at.d.ts +20 -0
- package/dist/Fx/constructors/at.d.ts.map +1 -1
- package/dist/Fx/constructors/at.js +20 -0
- package/dist/Fx/constructors/die.d.ts +21 -0
- package/dist/Fx/constructors/die.d.ts.map +1 -1
- package/dist/Fx/constructors/die.js +21 -0
- package/dist/Fx/constructors/empty.d.ts +18 -0
- package/dist/Fx/constructors/empty.d.ts.map +1 -1
- package/dist/Fx/constructors/empty.js +18 -0
- package/dist/Fx/constructors/fail.d.ts +21 -0
- package/dist/Fx/constructors/fail.d.ts.map +1 -1
- package/dist/Fx/constructors/fail.js +21 -0
- package/dist/Fx/constructors/failCause.d.ts +22 -0
- package/dist/Fx/constructors/failCause.d.ts.map +1 -1
- package/dist/Fx/constructors/failCause.js +22 -0
- package/dist/Fx/constructors/fn.d.ts +113 -13
- package/dist/Fx/constructors/fn.d.ts.map +1 -1
- package/dist/Fx/constructors/fn.js +36 -0
- package/dist/Fx/constructors/fromEffect.d.ts +43 -1
- package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
- package/dist/Fx/constructors/fromEffect.js +43 -1
- package/dist/Fx/constructors/fromFailures.d.ts +24 -0
- package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
- package/dist/Fx/constructors/fromFailures.js +24 -0
- package/dist/Fx/constructors/fromIterable.d.ts +22 -0
- package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
- package/dist/Fx/constructors/fromIterable.js +22 -0
- package/dist/Fx/constructors/fromSchedule.d.ts +23 -0
- package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
- package/dist/Fx/constructors/fromSchedule.js +25 -2
- package/dist/Fx/constructors/index.d.ts +2 -1
- package/dist/Fx/constructors/index.d.ts.map +1 -1
- package/dist/Fx/constructors/index.js +2 -1
- package/dist/Fx/constructors/interrupt.d.ts +21 -1
- package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
- package/dist/Fx/constructors/interrupt.js +21 -1
- package/dist/Fx/constructors/make.d.ts +146 -1
- package/dist/Fx/constructors/make.d.ts.map +1 -1
- package/dist/Fx/constructors/make.js +54 -3
- package/dist/Fx/constructors/periodic.d.ts +29 -0
- package/dist/Fx/constructors/periodic.d.ts.map +1 -1
- package/dist/Fx/constructors/periodic.js +29 -0
- package/dist/Fx/constructors/succeed.d.ts +75 -3
- package/dist/Fx/constructors/succeed.d.ts.map +1 -1
- package/dist/Fx/constructors/succeed.js +75 -3
- package/dist/Fx/constructors/suspend.d.ts +28 -0
- package/dist/Fx/constructors/suspend.d.ts.map +1 -1
- package/dist/Fx/constructors/suspend.js +28 -0
- package/dist/Fx/constructors/sync.d.ts +32 -0
- package/dist/Fx/constructors/sync.d.ts.map +1 -0
- package/dist/Fx/constructors/sync.js +32 -0
- package/dist/Fx/internal/DeferredRef.d.ts +259 -7
- package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
- package/dist/Fx/internal/DeferredRef.js +260 -9
- package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
- package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
- package/dist/Fx/internal/diff.d.ts +586 -0
- package/dist/Fx/internal/diff.d.ts.map +1 -1
- package/dist/Fx/internal/diff.js +120 -9
- package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
- package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
- package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
- package/dist/Fx/internal/effectableWithOverride.js +46 -0
- package/dist/Fx/internal/equivalence.d.ts +29 -0
- package/dist/Fx/internal/equivalence.d.ts.map +1 -1
- package/dist/Fx/internal/equivalence.js +29 -0
- package/dist/Fx/internal/multicast.d.ts +145 -2
- package/dist/Fx/internal/multicast.d.ts.map +1 -1
- package/dist/Fx/internal/multicast.js +146 -4
- package/dist/Fx/internal/ring-buffer.d.ts +149 -0
- package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
- package/dist/Fx/internal/ring-buffer.js +155 -0
- package/dist/Fx/internal/scope.d.ts +184 -0
- package/dist/Fx/internal/scope.d.ts.map +1 -1
- package/dist/Fx/internal/scope.js +150 -0
- package/dist/Fx/internal/yieldable.d.ts +117 -2
- package/dist/Fx/internal/yieldable.d.ts.map +1 -1
- package/dist/Fx/internal/yieldable.js +86 -3
- package/dist/Fx/run/collect.d.ts +89 -0
- package/dist/Fx/run/collect.d.ts.map +1 -1
- package/dist/Fx/run/collect.js +90 -1
- package/dist/Fx/run/first.d.ts +22 -0
- package/dist/Fx/run/first.d.ts.map +1 -1
- package/dist/Fx/run/first.js +22 -0
- package/dist/Fx/run/fork.d.ts +50 -0
- package/dist/Fx/run/fork.d.ts.map +1 -1
- package/dist/Fx/run/fork.js +50 -0
- package/dist/Fx/run/observe.d.ts +106 -0
- package/dist/Fx/run/observe.d.ts.map +1 -1
- package/dist/Fx/run/observe.js +106 -0
- package/dist/Fx/run/runPromise.d.ts +43 -0
- package/dist/Fx/run/runPromise.d.ts.map +1 -1
- package/dist/Fx/run/runPromise.js +43 -0
- package/dist/Fx/stream.d.ts +92 -0
- package/dist/Fx/stream.d.ts.map +1 -1
- package/dist/Fx/stream.js +60 -1
- package/dist/Push/Push.d.ts +1216 -91
- package/dist/Push/Push.d.ts.map +1 -1
- package/dist/Push/Push.js +1012 -83
- package/dist/RefArray.d.ts +2 -0
- package/dist/RefArray.d.ts.map +1 -0
- package/dist/RefArray.js +1 -0
- package/dist/RefBigDecimal.d.ts +2 -0
- package/dist/RefBigDecimal.d.ts.map +1 -0
- package/dist/RefBigDecimal.js +1 -0
- package/dist/RefBigInt.d.ts +2 -0
- package/dist/RefBigInt.d.ts.map +1 -0
- package/dist/RefBigInt.js +1 -0
- package/dist/RefBoolean.d.ts +2 -0
- package/dist/RefBoolean.d.ts.map +1 -0
- package/dist/RefBoolean.js +1 -0
- package/dist/RefCause.d.ts +2 -0
- package/dist/RefCause.d.ts.map +1 -0
- package/dist/RefCause.js +1 -0
- package/dist/RefChunk.d.ts +2 -0
- package/dist/RefChunk.d.ts.map +1 -0
- package/dist/RefChunk.js +1 -0
- package/dist/RefDateTime.d.ts +2 -0
- package/dist/RefDateTime.d.ts.map +1 -0
- package/dist/RefDateTime.js +1 -0
- package/dist/RefDuration.d.ts +2 -0
- package/dist/RefDuration.d.ts.map +1 -0
- package/dist/RefDuration.js +1 -0
- package/dist/RefGraph.d.ts +2 -0
- package/dist/RefGraph.d.ts.map +1 -0
- package/dist/RefGraph.js +1 -0
- package/dist/RefHashMap.d.ts +2 -0
- package/dist/RefHashMap.d.ts.map +1 -0
- package/dist/RefHashMap.js +1 -0
- package/dist/RefHashRing.d.ts +2 -0
- package/dist/RefHashRing.d.ts.map +1 -0
- package/dist/RefHashRing.js +1 -0
- package/dist/RefHashSet.d.ts +2 -0
- package/dist/RefHashSet.d.ts.map +1 -0
- package/dist/RefHashSet.js +1 -0
- package/dist/RefIterable.d.ts +2 -0
- package/dist/RefIterable.d.ts.map +1 -0
- package/dist/RefIterable.js +1 -0
- package/dist/RefOption.d.ts +2 -0
- package/dist/RefOption.d.ts.map +1 -0
- package/dist/RefOption.js +1 -0
- package/dist/RefRecord.d.ts +2 -0
- package/dist/RefRecord.d.ts.map +1 -0
- package/dist/RefRecord.js +1 -0
- package/dist/RefResult.d.ts +2 -0
- package/dist/RefResult.d.ts.map +1 -0
- package/dist/RefResult.js +1 -0
- package/dist/RefString.d.ts +2 -0
- package/dist/RefString.d.ts.map +1 -0
- package/dist/RefString.js +1 -0
- package/dist/RefStruct.d.ts +2 -0
- package/dist/RefStruct.d.ts.map +1 -0
- package/dist/RefStruct.js +1 -0
- package/dist/RefSubject/Hydration.d.ts +504 -0
- package/dist/RefSubject/Hydration.d.ts.map +1 -0
- package/dist/RefSubject/Hydration.js +300 -0
- package/dist/RefSubject/RefArray.d.ts +351 -4
- package/dist/RefSubject/RefArray.d.ts.map +1 -1
- package/dist/RefSubject/RefArray.js +339 -3
- package/dist/RefSubject/RefBigDecimal.d.ts +221 -1
- package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
- package/dist/RefSubject/RefBigDecimal.js +210 -1
- package/dist/RefSubject/RefBigInt.d.ts +166 -1
- package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
- package/dist/RefSubject/RefBigInt.js +155 -1
- package/dist/RefSubject/RefBoolean.d.ts +166 -1
- package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
- package/dist/RefSubject/RefBoolean.js +155 -1
- package/dist/RefSubject/RefCause.d.ts +122 -1
- package/dist/RefSubject/RefCause.d.ts.map +1 -1
- package/dist/RefSubject/RefCause.js +111 -1
- package/dist/RefSubject/RefChunk.d.ts +406 -1
- package/dist/RefSubject/RefChunk.d.ts.map +1 -1
- package/dist/RefSubject/RefChunk.js +394 -0
- package/dist/RefSubject/RefDateTime.d.ts +122 -1
- package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
- package/dist/RefSubject/RefDateTime.js +111 -1
- package/dist/RefSubject/RefDuration.d.ts +155 -1
- package/dist/RefSubject/RefDuration.d.ts.map +1 -1
- package/dist/RefSubject/RefDuration.js +144 -1
- package/dist/RefSubject/RefGraph.d.ts +320 -6
- package/dist/RefSubject/RefGraph.d.ts.map +1 -1
- package/dist/RefSubject/RefGraph.js +303 -0
- package/dist/RefSubject/RefHashMap.d.ts +296 -1
- package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
- package/dist/RefSubject/RefHashMap.js +284 -0
- package/dist/RefSubject/RefHashRing.d.ts +146 -2
- package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
- package/dist/RefSubject/RefHashRing.js +133 -0
- package/dist/RefSubject/RefHashSet.d.ts +230 -1
- package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
- package/dist/RefSubject/RefHashSet.js +218 -0
- package/dist/RefSubject/RefIterable.d.ts +327 -1
- package/dist/RefSubject/RefIterable.d.ts.map +1 -1
- package/dist/RefSubject/RefIterable.js +315 -0
- package/dist/RefSubject/RefOption.d.ts +144 -1
- package/dist/RefSubject/RefOption.d.ts.map +1 -1
- package/dist/RefSubject/RefOption.js +133 -1
- package/dist/RefSubject/RefRecord.d.ts +339 -1
- package/dist/RefSubject/RefRecord.d.ts.map +1 -1
- package/dist/RefSubject/RefRecord.js +327 -0
- package/dist/RefSubject/RefResult.d.ts +155 -23
- package/dist/RefSubject/RefResult.d.ts.map +1 -1
- package/dist/RefSubject/RefResult.js +122 -1
- package/dist/RefSubject/RefString.d.ts +188 -1
- package/dist/RefSubject/RefString.d.ts.map +1 -1
- package/dist/RefSubject/RefString.js +177 -1
- package/dist/RefSubject/RefStruct.d.ts +156 -1
- package/dist/RefSubject/RefStruct.d.ts.map +1 -1
- package/dist/RefSubject/RefStruct.js +145 -1
- package/dist/RefSubject/RefSubject.d.ts +1166 -13
- package/dist/RefSubject/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject/RefSubject.js +843 -51
- package/dist/RefSubject/RefTrie.d.ts +290 -4
- package/dist/RefSubject/RefTrie.d.ts.map +1 -1
- package/dist/RefSubject/RefTrie.js +278 -3
- package/dist/RefSubject/RefTuple.d.ts +117 -1
- package/dist/RefSubject/RefTuple.d.ts.map +1 -1
- package/dist/RefSubject/RefTuple.js +106 -1
- package/dist/RefSubject/index.d.ts +1 -0
- package/dist/RefSubject/index.d.ts.map +1 -1
- package/dist/RefSubject/index.js +1 -0
- package/dist/RefSubject.d.ts +2 -1
- package/dist/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject.js +2 -1
- package/dist/RefTrie.d.ts +2 -0
- package/dist/RefTrie.d.ts.map +1 -0
- package/dist/RefTrie.js +1 -0
- package/dist/RefTuple.d.ts +2 -0
- package/dist/RefTuple.d.ts.map +1 -0
- package/dist/RefTuple.js +1 -0
- package/dist/Sink/Sink.d.ts +381 -10
- package/dist/Sink/Sink.d.ts.map +1 -1
- package/dist/Sink/Sink.js +49 -2
- package/dist/Sink/combinators.d.ts +731 -2
- package/dist/Sink/combinators.d.ts.map +1 -1
- package/dist/Sink/combinators.js +706 -4
- package/dist/Subject/Subject.d.ts +1013 -19
- package/dist/Subject/Subject.d.ts.map +1 -1
- package/dist/Subject/Subject.js +901 -36
- package/dist/Versioned/Versioned.d.ts +424 -7
- package/dist/Versioned/Versioned.d.ts.map +1 -1
- package/dist/Versioned/Versioned.js +238 -12
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- package/package.json +123 -14
- package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
- package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
- package/dist/Fx/constructors/fromYieldable.js +0 -12
- package/src/Fx/Fx.ts +0 -164
- package/src/Fx/TypeId.ts +0 -25
- package/src/Fx/combinators/additive.ts +0 -142
- package/src/Fx/combinators/catch.ts +0 -416
- package/src/Fx/combinators/causes.ts +0 -23
- package/src/Fx/combinators/changesWithEffect.ts +0 -66
- package/src/Fx/combinators/compact.ts +0 -15
- package/src/Fx/combinators/continueWith.ts +0 -78
- package/src/Fx/combinators/dropUntil.ts +0 -47
- package/src/Fx/combinators/ensuring.ts +0 -23
- package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
- package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
- package/src/Fx/combinators/exhaustMap.ts +0 -36
- package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
- package/src/Fx/combinators/exit.ts +0 -15
- package/src/Fx/combinators/filter.ts +0 -22
- package/src/Fx/combinators/filterEffect.ts +0 -31
- package/src/Fx/combinators/filterMap.ts +0 -23
- package/src/Fx/combinators/filterMapEffect.ts +0 -32
- package/src/Fx/combinators/filterMapLoop.ts +0 -35
- package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
- package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
- package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
- package/src/Fx/combinators/flatMap.ts +0 -51
- package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
- package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
- package/src/Fx/combinators/flatMapEffect.ts +0 -42
- package/src/Fx/combinators/flip.ts +0 -14
- package/src/Fx/combinators/gen.ts +0 -24
- package/src/Fx/combinators/genScoped.ts +0 -24
- package/src/Fx/combinators/index.ts +0 -61
- package/src/Fx/combinators/keyed.ts +0 -369
- package/src/Fx/combinators/loop.ts +0 -27
- package/src/Fx/combinators/loopCause.ts +0 -34
- package/src/Fx/combinators/loopCauseEffect.ts +0 -36
- package/src/Fx/combinators/loopEffect.ts +0 -34
- package/src/Fx/combinators/map.ts +0 -22
- package/src/Fx/combinators/mapBoth.ts +0 -40
- package/src/Fx/combinators/mapEffect.ts +0 -32
- package/src/Fx/combinators/mapError.ts +0 -28
- package/src/Fx/combinators/mergeAll.ts +0 -22
- package/src/Fx/combinators/mergeOrdered.ts +0 -123
- package/src/Fx/combinators/onError.ts +0 -40
- package/src/Fx/combinators/onExit.ts +0 -82
- package/src/Fx/combinators/onInterrupt.ts +0 -87
- package/src/Fx/combinators/provide.ts +0 -124
- package/src/Fx/combinators/result.ts +0 -39
- package/src/Fx/combinators/scan.ts +0 -82
- package/src/Fx/combinators/skip.ts +0 -41
- package/src/Fx/combinators/skipRepeats.ts +0 -15
- package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
- package/src/Fx/combinators/skipWhile.ts +0 -100
- package/src/Fx/combinators/slice.ts +0 -55
- package/src/Fx/combinators/switchMap.ts +0 -55
- package/src/Fx/combinators/switchMapEffect.ts +0 -25
- package/src/Fx/combinators/take.ts +0 -38
- package/src/Fx/combinators/takeUntil.ts +0 -88
- package/src/Fx/combinators/takeWhile.ts +0 -47
- package/src/Fx/combinators/tapEffect.ts +0 -39
- package/src/Fx/combinators/tuple.ts +0 -79
- package/src/Fx/combinators/unwrap.ts +0 -21
- package/src/Fx/combinators/unwrapScoped.ts +0 -26
- package/src/Fx/combinators/when.ts +0 -64
- package/src/Fx/combinators/withSpan.ts +0 -24
- package/src/Fx/combinators/zip.ts +0 -175
- package/src/Fx/constructors/at.ts +0 -23
- package/src/Fx/constructors/die.ts +0 -17
- package/src/Fx/constructors/empty.ts +0 -10
- package/src/Fx/constructors/fail.ts +0 -14
- package/src/Fx/constructors/failCause.ts +0 -14
- package/src/Fx/constructors/fn.ts +0 -245
- package/src/Fx/constructors/fromEffect.ts +0 -24
- package/src/Fx/constructors/fromFailures.ts +0 -19
- package/src/Fx/constructors/fromIterable.ts +0 -15
- package/src/Fx/constructors/fromSchedule.ts +0 -18
- package/src/Fx/constructors/fromYieldable.ts +0 -17
- package/src/Fx/constructors/index.ts +0 -15
- package/src/Fx/constructors/interrupt.ts +0 -13
- package/src/Fx/constructors/make.ts +0 -103
- package/src/Fx/constructors/periodic.ts +0 -15
- package/src/Fx/constructors/succeed.ts +0 -37
- package/src/Fx/constructors/suspend.ts +0 -6
- package/src/Fx/index.ts +0 -6
- package/src/Fx/internal/DeferredRef.ts +0 -87
- package/src/Fx/internal/UnionToTuple.ts +0 -12
- package/src/Fx/internal/diff.ts +0 -191
- package/src/Fx/internal/equivalence.ts +0 -12
- package/src/Fx/internal/multicast.ts +0 -51
- package/src/Fx/internal/ring-buffer.ts +0 -60
- package/src/Fx/internal/scope.ts +0 -58
- package/src/Fx/internal/yieldable.ts +0 -31
- package/src/Fx/run/collect.ts +0 -79
- package/src/Fx/run/first.ts +0 -20
- package/src/Fx/run/fork.ts +0 -40
- package/src/Fx/run/index.ts +0 -5
- package/src/Fx/run/observe.ts +0 -114
- package/src/Fx/run/runPromise.ts +0 -32
- package/src/Fx/stream.ts +0 -42
- package/src/Fx.additive-combinators.test.ts +0 -126
- package/src/Fx.catch-additive.test.ts +0 -206
- package/src/Fx.catch.test.ts +0 -60
- package/src/Fx.dropUntil.test.ts +0 -61
- package/src/Fx.fn.test.ts +0 -51
- package/src/Fx.lifecycle.test.ts +0 -79
- package/src/Fx.mapError-mapBoth.test.ts +0 -101
- package/src/Fx.provide-combinators.test.ts +0 -94
- package/src/Fx.result-changesWithEffect.test.ts +0 -112
- package/src/Fx.scan.test.ts +0 -73
- package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
- package/src/Fx.test.ts +0 -71
- package/src/Fx.ts +0 -1
- package/src/Fx.zip-merge-additive.test.ts +0 -171
- package/src/Fx.zip.test.ts +0 -133
- package/src/Push/Push.ts +0 -1093
- package/src/Push/index.ts +0 -1
- package/src/Push.additive.test.ts +0 -256
- package/src/Push.test.ts +0 -26
- package/src/Push.ts +0 -1
- package/src/RefSubject/RefArray.ts +0 -516
- package/src/RefSubject/RefBigDecimal.test.ts +0 -56
- package/src/RefSubject/RefBigDecimal.ts +0 -295
- package/src/RefSubject/RefBigInt.test.ts +0 -56
- package/src/RefSubject/RefBigInt.ts +0 -189
- package/src/RefSubject/RefBoolean.test.ts +0 -57
- package/src/RefSubject/RefBoolean.ts +0 -185
- package/src/RefSubject/RefCause.test.ts +0 -53
- package/src/RefSubject/RefCause.ts +0 -146
- package/src/RefSubject/RefChunk.ts +0 -516
- package/src/RefSubject/RefDateTime.test.ts +0 -43
- package/src/RefSubject/RefDateTime.ts +0 -261
- package/src/RefSubject/RefDuration.test.ts +0 -49
- package/src/RefSubject/RefDuration.ts +0 -188
- package/src/RefSubject/RefGraph.ts +0 -649
- package/src/RefSubject/RefHashMap.ts +0 -474
- package/src/RefSubject/RefHashRing.ts +0 -262
- package/src/RefSubject/RefHashSet.ts +0 -308
- package/src/RefSubject/RefIterable.ts +0 -454
- package/src/RefSubject/RefOption.test.ts +0 -67
- package/src/RefSubject/RefOption.ts +0 -193
- package/src/RefSubject/RefRecord.ts +0 -621
- package/src/RefSubject/RefResult.test.ts +0 -63
- package/src/RefSubject/RefResult.ts +0 -209
- package/src/RefSubject/RefString.test.ts +0 -61
- package/src/RefSubject/RefString.ts +0 -256
- package/src/RefSubject/RefStruct.test.ts +0 -60
- package/src/RefSubject/RefStruct.ts +0 -253
- package/src/RefSubject/RefSubject.ts +0 -2642
- package/src/RefSubject/RefTrie.ts +0 -365
- package/src/RefSubject/RefTuple.test.ts +0 -60
- package/src/RefSubject/RefTuple.ts +0 -231
- package/src/RefSubject/index.ts +0 -21
- package/src/RefSubject.additive-parity.test.ts +0 -101
- package/src/RefSubject.test.ts +0 -65
- package/src/RefSubject.ts +0 -1
- package/src/Sink/Sink.ts +0 -159
- package/src/Sink/combinators.ts +0 -1115
- package/src/Sink/index.ts +0 -2
- package/src/Sink.combinators.test.ts +0 -88
- package/src/Sink.reduce-collect-head-last.test.ts +0 -107
- package/src/Sink.ts +0 -1
- package/src/Subject/Subject.ts +0 -440
- package/src/Subject/index.ts +0 -1
- package/src/Subject.test.ts +0 -47
- package/src/Subject.ts +0 -1
- package/src/Versioned/Versioned.ts +0 -595
- package/src/Versioned/index.ts +0 -1
- package/src/Versioned.filterMap.test.ts +0 -91
- package/src/Versioned.test.ts +0 -23
- package/src/Versioned.ts +0 -1
- package/src/index.ts +0 -7
|
@@ -4,6 +4,44 @@ import type { FlatMapLike } from "./flatMap.js";
|
|
|
4
4
|
*
|
|
5
5
|
* When a new element is emitted, the previous inner Fx is cancelled.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
*
|
|
10
|
+
* `switchMap` models work whose result becomes obsolete when a newer source
|
|
11
|
+
* value arrives, such as suggestions for the current query. Cancellation is the
|
|
12
|
+
* policy: obsolete work is not allowed to finish in the background.
|
|
13
|
+
*
|
|
14
|
+
* ## Switching, ordering, and cardinality
|
|
15
|
+
*
|
|
16
|
+
* Every source value calls `f`. Before the new inner starts, the previous inner
|
|
17
|
+
* is interrupted and its interruption is awaited. Only the latest inner remains
|
|
18
|
+
* active; values it emitted before replacement remain visible, while later
|
|
19
|
+
* values from the replaced inner are suppressed. There is no result buffer.
|
|
20
|
+
*
|
|
21
|
+
* ## Ownership and lifetime
|
|
22
|
+
*
|
|
23
|
+
* Source and current-inner failures are forwarded and their services remain
|
|
24
|
+
* typed. The returned Fx requires `Scope`, which owns the current inner fiber.
|
|
25
|
+
* Source completion waits for the latest inner. Replacing or interrupting the
|
|
26
|
+
* output closes obsolete inner work and runs its scoped finalizers before the
|
|
27
|
+
* replacement proceeds.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { Fx } from "@typed/fx"
|
|
32
|
+
* import { Effect } from "effect"
|
|
33
|
+
*
|
|
34
|
+
* const queries = Fx.mergeAll(
|
|
35
|
+
* Fx.at("typed", "0 millis"),
|
|
36
|
+
* Fx.at("typed fx", "5 millis")
|
|
37
|
+
* )
|
|
38
|
+
* const suggestions = Fx.switchMap(queries, (query) =>
|
|
39
|
+
* Fx.ensuring(Fx.at(query, "20 millis"), Effect.log(`${query} closed`))
|
|
40
|
+
* )
|
|
41
|
+
* Effect.runPromise(Effect.scoped(Fx.collectAll(suggestions))).then(console.log)
|
|
42
|
+
* // logs cleanup for "typed" and resolves ["typed fx"]
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
7
45
|
* @param f - A function that maps an element `A` to a new `Fx<B>`.
|
|
8
46
|
* @returns An `Fx` that emits values from the latest inner stream.
|
|
9
47
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchMap.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/switchMap.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"switchMap.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/switchMap.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,SAAS,EAAE,WAgCvB,CAAC"}
|
|
@@ -12,6 +12,44 @@ import { extendScope } from "../internal/scope.js";
|
|
|
12
12
|
*
|
|
13
13
|
* When a new element is emitted, the previous inner Fx is cancelled.
|
|
14
14
|
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* ## Why
|
|
17
|
+
*
|
|
18
|
+
* `switchMap` models work whose result becomes obsolete when a newer source
|
|
19
|
+
* value arrives, such as suggestions for the current query. Cancellation is the
|
|
20
|
+
* policy: obsolete work is not allowed to finish in the background.
|
|
21
|
+
*
|
|
22
|
+
* ## Switching, ordering, and cardinality
|
|
23
|
+
*
|
|
24
|
+
* Every source value calls `f`. Before the new inner starts, the previous inner
|
|
25
|
+
* is interrupted and its interruption is awaited. Only the latest inner remains
|
|
26
|
+
* active; values it emitted before replacement remain visible, while later
|
|
27
|
+
* values from the replaced inner are suppressed. There is no result buffer.
|
|
28
|
+
*
|
|
29
|
+
* ## Ownership and lifetime
|
|
30
|
+
*
|
|
31
|
+
* Source and current-inner failures are forwarded and their services remain
|
|
32
|
+
* typed. The returned Fx requires `Scope`, which owns the current inner fiber.
|
|
33
|
+
* Source completion waits for the latest inner. Replacing or interrupting the
|
|
34
|
+
* output closes obsolete inner work and runs its scoped finalizers before the
|
|
35
|
+
* replacement proceeds.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { Fx } from "@typed/fx"
|
|
40
|
+
* import { Effect } from "effect"
|
|
41
|
+
*
|
|
42
|
+
* const queries = Fx.mergeAll(
|
|
43
|
+
* Fx.at("typed", "0 millis"),
|
|
44
|
+
* Fx.at("typed fx", "5 millis")
|
|
45
|
+
* )
|
|
46
|
+
* const suggestions = Fx.switchMap(queries, (query) =>
|
|
47
|
+
* Fx.ensuring(Fx.at(query, "20 millis"), Effect.log(`${query} closed`))
|
|
48
|
+
* )
|
|
49
|
+
* Effect.runPromise(Effect.scoped(Fx.collectAll(suggestions))).then(console.log)
|
|
50
|
+
* // logs cleanup for "typed" and resolves ["typed fx"]
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
15
53
|
* @param f - A function that maps an element `A` to a new `Fx<B>`.
|
|
16
54
|
* @returns An `Fx` that emits values from the latest inner stream.
|
|
17
55
|
* @since 1.0.0
|
|
@@ -4,6 +4,43 @@ import type { FlatMapEffectLike } from "./flatMapEffect.js";
|
|
|
4
4
|
*
|
|
5
5
|
* When a new element is emitted, the previous effect is cancelled.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
*
|
|
10
|
+
* This is the Effect-producing form of {@link switchMap}. It makes latest-only
|
|
11
|
+
* Effect execution explicit without wrapping callbacks with `Fx.fromEffect`.
|
|
12
|
+
*
|
|
13
|
+
* ## Switching and cardinality
|
|
14
|
+
*
|
|
15
|
+
* Every source value creates one callback Effect. A new value interrupts and
|
|
16
|
+
* awaits the previous Effect before starting its replacement. Each Effect can
|
|
17
|
+
* emit one successful result, but an interrupted Effect may emit none.
|
|
18
|
+
*
|
|
19
|
+
* ## Ownership and lifetime
|
|
20
|
+
*
|
|
21
|
+
* Source and current callback failures remain typed and callback services are
|
|
22
|
+
* added to requirements. The required `Scope` owns the current Effect. Source
|
|
23
|
+
* completion waits for it; replacement and output interruption run its
|
|
24
|
+
* finalizers before relinquishing the lifetime.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { Fx } from "@typed/fx"
|
|
29
|
+
* import { Effect } from "effect"
|
|
30
|
+
*
|
|
31
|
+
* const queries = Fx.mergeAll(
|
|
32
|
+
* Fx.at("a", "0 millis"),
|
|
33
|
+
* Fx.at("ab", "5 millis")
|
|
34
|
+
* )
|
|
35
|
+
* const result = Fx.switchMapEffect(queries, (query) =>
|
|
36
|
+
* Effect.as(Effect.sleep("20 millis"), query).pipe(
|
|
37
|
+
* Effect.ensuring(Effect.log(`${query} closed`))
|
|
38
|
+
* )
|
|
39
|
+
* )
|
|
40
|
+
* Effect.runPromise(Effect.scoped(Fx.collectAll(result))).then(console.log)
|
|
41
|
+
* // ["ab"]
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
7
44
|
* @param f - A function that maps an element `A` to an `Effect<B>`.
|
|
8
45
|
* @returns An `Fx` that emits the results of the latest effect.
|
|
9
46
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchMapEffect.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/switchMapEffect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D
|
|
1
|
+
{"version":3,"file":"switchMapEffect.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/switchMapEffect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,eAAe,EAAE,iBAM7B,CAAC"}
|
|
@@ -6,6 +6,43 @@ import { switchMap } from "./switchMap.js";
|
|
|
6
6
|
*
|
|
7
7
|
* When a new element is emitted, the previous effect is cancelled.
|
|
8
8
|
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* ## Why
|
|
11
|
+
*
|
|
12
|
+
* This is the Effect-producing form of {@link switchMap}. It makes latest-only
|
|
13
|
+
* Effect execution explicit without wrapping callbacks with `Fx.fromEffect`.
|
|
14
|
+
*
|
|
15
|
+
* ## Switching and cardinality
|
|
16
|
+
*
|
|
17
|
+
* Every source value creates one callback Effect. A new value interrupts and
|
|
18
|
+
* awaits the previous Effect before starting its replacement. Each Effect can
|
|
19
|
+
* emit one successful result, but an interrupted Effect may emit none.
|
|
20
|
+
*
|
|
21
|
+
* ## Ownership and lifetime
|
|
22
|
+
*
|
|
23
|
+
* Source and current callback failures remain typed and callback services are
|
|
24
|
+
* added to requirements. The required `Scope` owns the current Effect. Source
|
|
25
|
+
* completion waits for it; replacement and output interruption run its
|
|
26
|
+
* finalizers before relinquishing the lifetime.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { Fx } from "@typed/fx"
|
|
31
|
+
* import { Effect } from "effect"
|
|
32
|
+
*
|
|
33
|
+
* const queries = Fx.mergeAll(
|
|
34
|
+
* Fx.at("a", "0 millis"),
|
|
35
|
+
* Fx.at("ab", "5 millis")
|
|
36
|
+
* )
|
|
37
|
+
* const result = Fx.switchMapEffect(queries, (query) =>
|
|
38
|
+
* Effect.as(Effect.sleep("20 millis"), query).pipe(
|
|
39
|
+
* Effect.ensuring(Effect.log(`${query} closed`))
|
|
40
|
+
* )
|
|
41
|
+
* )
|
|
42
|
+
* Effect.runPromise(Effect.scoped(Fx.collectAll(result))).then(console.log)
|
|
43
|
+
* // ["ab"]
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
9
46
|
* @param f - A function that maps an element `A` to an `Effect<B>`.
|
|
10
47
|
* @returns An `Fx` that emits the results of the latest effect.
|
|
11
48
|
* @since 1.0.0
|
|
@@ -3,6 +3,22 @@ import type { Fx } from "../Fx.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Takes the first `n` elements from an Fx and then completes.
|
|
5
5
|
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* ## Why
|
|
8
|
+
* `take` bounds cardinality without buffering: it forwards at most the first `n` values in order and
|
|
9
|
+
* then completes the run early.
|
|
10
|
+
*
|
|
11
|
+
* ## Ownership and lifetime
|
|
12
|
+
* A per-run counter owns no external resource. Reaching the limit interrupts/stops upstream work;
|
|
13
|
+
* source failures before that point and consumer interruption remain observable.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { Fx } from "@typed/fx"
|
|
18
|
+
*
|
|
19
|
+
* const firstTwo = Fx.fromIterable([1, 2, 3]).pipe(Fx.take(2))
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
6
22
|
* @param n - The number of elements to take.
|
|
7
23
|
* @returns An `Fx` that emits at most `n` elements.
|
|
8
24
|
* @since 1.0.0
|
|
@@ -15,6 +31,22 @@ export declare const take: {
|
|
|
15
31
|
/**
|
|
16
32
|
* Takes the first `n` elements where `n` is produced by an Effect.
|
|
17
33
|
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* ## Why
|
|
36
|
+
* `takeEffect` obtains a dynamic bound once before subscribing, then applies ordinary `take`.
|
|
37
|
+
*
|
|
38
|
+
* ## Ownership and lifetime
|
|
39
|
+
* The count Effect can fail, require services, or be interrupted; in those cases upstream never
|
|
40
|
+
* starts. After success, reaching the limit stops upstream work.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { Effect } from "effect"
|
|
45
|
+
* import { Fx } from "@typed/fx"
|
|
46
|
+
*
|
|
47
|
+
* const first = Fx.fromIterable([1, 2]).pipe(Fx.takeEffect(Effect.succeed(1)))
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
18
50
|
* @param count - Effect that produces the number of elements to take.
|
|
19
51
|
* @returns An `Fx` that emits at most `n` elements.
|
|
20
52
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"take.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/take.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAInC
|
|
1
|
+
{"version":3,"file":"take.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/take.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAInC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC6C,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB,CAAC,EAAE,EAAE,EAAE,EACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,GACnC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAKjG,CAAC"}
|
|
@@ -5,6 +5,22 @@ import { unwrap } from "./unwrap.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Takes the first `n` elements from an Fx and then completes.
|
|
7
7
|
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* ## Why
|
|
10
|
+
* `take` bounds cardinality without buffering: it forwards at most the first `n` values in order and
|
|
11
|
+
* then completes the run early.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
* A per-run counter owns no external resource. Reaching the limit interrupts/stops upstream work;
|
|
15
|
+
* source failures before that point and consumer interruption remain observable.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { Fx } from "@typed/fx"
|
|
20
|
+
*
|
|
21
|
+
* const firstTwo = Fx.fromIterable([1, 2, 3]).pipe(Fx.take(2))
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
8
24
|
* @param n - The number of elements to take.
|
|
9
25
|
* @returns An `Fx` that emits at most `n` elements.
|
|
10
26
|
* @since 1.0.0
|
|
@@ -14,6 +30,22 @@ export const take = dual(2, (fx, n) => slice(fx, { skip: 0, take: n }));
|
|
|
14
30
|
/**
|
|
15
31
|
* Takes the first `n` elements where `n` is produced by an Effect.
|
|
16
32
|
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* ## Why
|
|
35
|
+
* `takeEffect` obtains a dynamic bound once before subscribing, then applies ordinary `take`.
|
|
36
|
+
*
|
|
37
|
+
* ## Ownership and lifetime
|
|
38
|
+
* The count Effect can fail, require services, or be interrupted; in those cases upstream never
|
|
39
|
+
* starts. After success, reaching the limit stops upstream work.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* import { Effect } from "effect"
|
|
44
|
+
* import { Fx } from "@typed/fx"
|
|
45
|
+
*
|
|
46
|
+
* const first = Fx.fromIterable([1, 2]).pipe(Fx.takeEffect(Effect.succeed(1)))
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
17
49
|
* @param count - Effect that produces the number of elements to take.
|
|
18
50
|
* @returns An `Fx` that emits at most `n` elements.
|
|
19
51
|
* @since 1.0.0
|
|
@@ -4,6 +4,21 @@ import type { Fx } from "../Fx.js";
|
|
|
4
4
|
* Takes elements from an Fx until a predicate returns true.
|
|
5
5
|
* The element that satisfies the predicate is not included in the output.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
* `takeUntil` forwards the ordered prefix before the first match, then completes without emitting
|
|
10
|
+
* the matching value.
|
|
11
|
+
*
|
|
12
|
+
* ## Ownership and lifetime
|
|
13
|
+
* Matching triggers the sink's early-exit path, stopping upstream work. No resources are acquired;
|
|
14
|
+
* earlier failures and consumer interruption remain observable.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { Fx } from "@typed/fx"
|
|
19
|
+
* const beforeThree = Fx.fromIterable([1, 2, 3]).pipe(Fx.takeUntil((n) => n === 3))
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
7
22
|
* @param predicate - The predicate function.
|
|
8
23
|
* @returns An `Fx` that completes when the predicate matches.
|
|
9
24
|
* @since 1.0.0
|
|
@@ -17,6 +32,22 @@ export declare const takeUntil: {
|
|
|
17
32
|
* Takes elements from an Fx until an effectful predicate returns true.
|
|
18
33
|
* The element that satisfies the predicate is not included in the output.
|
|
19
34
|
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* ## Why
|
|
37
|
+
* `takeUntilEffect` makes the stopping decision Effectful and ordered. A successful match completes
|
|
38
|
+
* before that input is emitted; a false result forwards it.
|
|
39
|
+
*
|
|
40
|
+
* ## Ownership and lifetime
|
|
41
|
+
* Predicate effects run in the consumer and expose their failures and services. A match or
|
|
42
|
+
* interruption stops upstream and cancels active work.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { Effect } from "effect"
|
|
47
|
+
* import { Fx } from "@typed/fx"
|
|
48
|
+
* const values = Fx.fromIterable([1, 2]).pipe(Fx.takeUntilEffect((n) => Effect.succeed(n === 2)))
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
20
51
|
* @param predicate - Effectful predicate function.
|
|
21
52
|
* @returns An `Fx` that completes when the predicate matches.
|
|
22
53
|
* @since 1.0.0
|
|
@@ -30,6 +61,21 @@ export declare const takeUntilEffect: {
|
|
|
30
61
|
* Drops elements from an Fx after a predicate returns true.
|
|
31
62
|
* The element that satisfies the predicate is included in the output.
|
|
32
63
|
*
|
|
64
|
+
* @remarks
|
|
65
|
+
* ## Why
|
|
66
|
+
* `dropAfter` includes the first matching value and then completes, giving an inclusive stopping
|
|
67
|
+
* boundary while preserving the preceding source order.
|
|
68
|
+
*
|
|
69
|
+
* ## Ownership and lifetime
|
|
70
|
+
* The match stops upstream through the early-exit sink. The operation acquires no external
|
|
71
|
+
* resource and preserves source failures and services before completion.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* import { Fx } from "@typed/fx"
|
|
76
|
+
* const throughTwo = Fx.fromIterable([1, 2, 3]).pipe(Fx.dropAfter((n) => n === 2))
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
33
79
|
* @param predicate - The predicate function.
|
|
34
80
|
* @returns An `Fx` that stops emitting when the predicate matches.
|
|
35
81
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"takeUntil.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/takeUntil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC
|
|
1
|
+
{"version":3,"file":"takeUntil.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/takeUntil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CActE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,eAAe,EAAE;IAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EACR,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAClD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACd,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAClD,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAmB1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAGvE,CAAC"}
|
|
@@ -7,6 +7,21 @@ import { make as makeFx } from "../constructors/make.js";
|
|
|
7
7
|
* Takes elements from an Fx until a predicate returns true.
|
|
8
8
|
* The element that satisfies the predicate is not included in the output.
|
|
9
9
|
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* ## Why
|
|
12
|
+
* `takeUntil` forwards the ordered prefix before the first match, then completes without emitting
|
|
13
|
+
* the matching value.
|
|
14
|
+
*
|
|
15
|
+
* ## Ownership and lifetime
|
|
16
|
+
* Matching triggers the sink's early-exit path, stopping upstream work. No resources are acquired;
|
|
17
|
+
* earlier failures and consumer interruption remain observable.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { Fx } from "@typed/fx"
|
|
22
|
+
* const beforeThree = Fx.fromIterable([1, 2, 3]).pipe(Fx.takeUntil((n) => n === 3))
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
10
25
|
* @param predicate - The predicate function.
|
|
11
26
|
* @returns An `Fx` that completes when the predicate matches.
|
|
12
27
|
* @since 1.0.0
|
|
@@ -24,6 +39,22 @@ export const takeUntil = dual(2, (fx, predicate) => {
|
|
|
24
39
|
* Takes elements from an Fx until an effectful predicate returns true.
|
|
25
40
|
* The element that satisfies the predicate is not included in the output.
|
|
26
41
|
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* ## Why
|
|
44
|
+
* `takeUntilEffect` makes the stopping decision Effectful and ordered. A successful match completes
|
|
45
|
+
* before that input is emitted; a false result forwards it.
|
|
46
|
+
*
|
|
47
|
+
* ## Ownership and lifetime
|
|
48
|
+
* Predicate effects run in the consumer and expose their failures and services. A match or
|
|
49
|
+
* interruption stops upstream and cancels active work.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* import { Effect } from "effect"
|
|
54
|
+
* import { Fx } from "@typed/fx"
|
|
55
|
+
* const values = Fx.fromIterable([1, 2]).pipe(Fx.takeUntilEffect((n) => Effect.succeed(n === 2)))
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
27
58
|
* @param predicate - Effectful predicate function.
|
|
28
59
|
* @returns An `Fx` that completes when the predicate matches.
|
|
29
60
|
* @since 1.0.0
|
|
@@ -37,6 +68,21 @@ export const takeUntilEffect = dual(2, (fx, predicate) => makeFx((sink) => combi
|
|
|
37
68
|
* Drops elements from an Fx after a predicate returns true.
|
|
38
69
|
* The element that satisfies the predicate is included in the output.
|
|
39
70
|
*
|
|
71
|
+
* @remarks
|
|
72
|
+
* ## Why
|
|
73
|
+
* `dropAfter` includes the first matching value and then completes, giving an inclusive stopping
|
|
74
|
+
* boundary while preserving the preceding source order.
|
|
75
|
+
*
|
|
76
|
+
* ## Ownership and lifetime
|
|
77
|
+
* The match stops upstream through the early-exit sink. The operation acquires no external
|
|
78
|
+
* resource and preserves source failures and services before completion.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* import { Fx } from "@typed/fx"
|
|
83
|
+
* const throughTwo = Fx.fromIterable([1, 2, 3]).pipe(Fx.dropAfter((n) => n === 2))
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
40
86
|
* @param predicate - The predicate function.
|
|
41
87
|
* @returns An `Fx` that stops emitting when the predicate matches.
|
|
42
88
|
* @since 1.0.0
|
|
@@ -4,6 +4,21 @@ import type { Fx } from "../Fx.js";
|
|
|
4
4
|
* Takes elements from an Fx while a predicate returns true.
|
|
5
5
|
* Stops at the first element for which the predicate returns false; that element is not included.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
* `takeWhile` emits the longest matching prefix, in order, and completes before the first false
|
|
10
|
+
* value. It is the predicate complement of `takeUntil`.
|
|
11
|
+
*
|
|
12
|
+
* ## Ownership and lifetime
|
|
13
|
+
* A false result stops upstream immediately. The pure predicate acquires no resources and adds no
|
|
14
|
+
* failures or services.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { Fx } from "@typed/fx"
|
|
19
|
+
* const small = Fx.fromIterable([1, 2, 3]).pipe(Fx.takeWhile((n) => n < 3))
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
7
22
|
* @param predicate - The predicate function.
|
|
8
23
|
* @returns An `Fx` that emits while the predicate holds.
|
|
9
24
|
* @since 1.0.0
|
|
@@ -17,6 +32,22 @@ export declare const takeWhile: {
|
|
|
17
32
|
* Takes elements from an Fx while an effectful predicate returns true.
|
|
18
33
|
* Stops at the first element for which the predicate effect succeeds with false; that element is not included.
|
|
19
34
|
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* ## Why
|
|
37
|
+
* `takeWhileEffect` performs the prefix decision with Effect and completes before the first false
|
|
38
|
+
* value, retaining source order.
|
|
39
|
+
*
|
|
40
|
+
* ## Ownership and lifetime
|
|
41
|
+
* Predicate effects expose their failures and services and are interrupted with the run. A false
|
|
42
|
+
* result stops upstream; no independent fiber or buffer is retained.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { Effect } from "effect"
|
|
47
|
+
* import { Fx } from "@typed/fx"
|
|
48
|
+
* const small = Fx.fromIterable([1, 2]).pipe(Fx.takeWhileEffect((n) => Effect.succeed(n < 2)))
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
20
51
|
* @param predicate - Effectful predicate function.
|
|
21
52
|
* @returns An `Fx` that emits while the predicate holds.
|
|
22
53
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"takeWhile.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/takeWhile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC
|
|
1
|
+
{"version":3,"file":"takeWhile.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/takeWhile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAGvE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,eAAe,EAAE;IAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EACR,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAClD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACd,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAClD,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAO1B,CAAC"}
|
|
@@ -5,6 +5,21 @@ import { takeUntil, takeUntilEffect } from "./takeUntil.js";
|
|
|
5
5
|
* Takes elements from an Fx while a predicate returns true.
|
|
6
6
|
* Stops at the first element for which the predicate returns false; that element is not included.
|
|
7
7
|
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* ## Why
|
|
10
|
+
* `takeWhile` emits the longest matching prefix, in order, and completes before the first false
|
|
11
|
+
* value. It is the predicate complement of `takeUntil`.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
* A false result stops upstream immediately. The pure predicate acquires no resources and adds no
|
|
15
|
+
* failures or services.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { Fx } from "@typed/fx"
|
|
20
|
+
* const small = Fx.fromIterable([1, 2, 3]).pipe(Fx.takeWhile((n) => n < 3))
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
8
23
|
* @param predicate - The predicate function.
|
|
9
24
|
* @returns An `Fx` that emits while the predicate holds.
|
|
10
25
|
* @since 1.0.0
|
|
@@ -15,6 +30,22 @@ export const takeWhile = dual(2, (fx, predicate) => takeUntil(fx, (a) => !predic
|
|
|
15
30
|
* Takes elements from an Fx while an effectful predicate returns true.
|
|
16
31
|
* Stops at the first element for which the predicate effect succeeds with false; that element is not included.
|
|
17
32
|
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* ## Why
|
|
35
|
+
* `takeWhileEffect` performs the prefix decision with Effect and completes before the first false
|
|
36
|
+
* value, retaining source order.
|
|
37
|
+
*
|
|
38
|
+
* ## Ownership and lifetime
|
|
39
|
+
* Predicate effects expose their failures and services and are interrupted with the run. A false
|
|
40
|
+
* result stops upstream; no independent fiber or buffer is retained.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { Effect } from "effect"
|
|
45
|
+
* import { Fx } from "@typed/fx"
|
|
46
|
+
* const small = Fx.fromIterable([1, 2]).pipe(Fx.takeWhileEffect((n) => Effect.succeed(n < 2)))
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
18
49
|
* @param predicate - Effectful predicate function.
|
|
19
50
|
* @returns An `Fx` that emits while the predicate holds.
|
|
20
51
|
* @since 1.0.0
|
|
@@ -3,6 +3,22 @@ import type { Fx } from "../Fx.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Performs an effect for each element of the Fx, without changing the elements.
|
|
5
5
|
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* ## Why
|
|
8
|
+
* `tap` sequences an observation or side effect before forwarding each original value. It emits
|
|
9
|
+
* exactly once per successful callback, in source order; callback failure prevents that value.
|
|
10
|
+
*
|
|
11
|
+
* ## Ownership and lifetime
|
|
12
|
+
* Returned Effects run in the consumer path and are interrupted with it; a `void` callback is
|
|
13
|
+
* treated as `Effect.void`. Callback failures and services remain visible in the result type.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { Effect } from "effect"
|
|
18
|
+
* import { Fx } from "@typed/fx"
|
|
19
|
+
* const logged = Fx.fromIterable([1, 2]).pipe(Fx.tap((n) => Effect.log(n)))
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
6
22
|
* @param f - An effectful function to apply to each element.
|
|
7
23
|
* @returns An `Fx` that emits the original elements.
|
|
8
24
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tapEffect.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/tapEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC
|
|
1
|
+
{"version":3,"file":"tapEffect.d.ts","sourceRoot":"","sources":["../../../src/Fx/combinators/tapEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EACxB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GACjD,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAC9B,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EACtB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GACjD,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAgB1B,CAAC"}
|
|
@@ -5,6 +5,22 @@ import { make } from "../constructors/make.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Performs an effect for each element of the Fx, without changing the elements.
|
|
7
7
|
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* ## Why
|
|
10
|
+
* `tap` sequences an observation or side effect before forwarding each original value. It emits
|
|
11
|
+
* exactly once per successful callback, in source order; callback failure prevents that value.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
* Returned Effects run in the consumer path and are interrupted with it; a `void` callback is
|
|
15
|
+
* treated as `Effect.void`. Callback failures and services remain visible in the result type.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { Effect } from "effect"
|
|
20
|
+
* import { Fx } from "@typed/fx"
|
|
21
|
+
* const logged = Fx.fromIterable([1, 2]).pipe(Fx.tap((n) => Effect.log(n)))
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
8
24
|
* @param f - An effectful function to apply to each element.
|
|
9
25
|
* @returns An `Fx` that emits the original elements.
|
|
10
26
|
* @since 1.0.0
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Duration, Scope } from "effect";
|
|
2
|
+
import { Fx } from "../Fx.js";
|
|
3
|
+
/**
|
|
4
|
+
* Options for {@link throttle}. A duration-only call is leading-edge
|
|
5
|
+
* (`{ leading: true, trailing: false }`).
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
*
|
|
10
|
+
* Leading and trailing edges answer different interaction needs, so the
|
|
11
|
+
* window policy is explicit rather than hidden behind separate operators.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
*
|
|
15
|
+
* This immutable value owns no resource. `throttle` reads it when constructing
|
|
16
|
+
* the Fx; the resulting subscription owns the timer and pending value.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import type { ThrottleOptions } from "@typed/fx/Fx"
|
|
21
|
+
*
|
|
22
|
+
* const options: ThrottleOptions = {
|
|
23
|
+
* duration: "250 millis",
|
|
24
|
+
* leading: true,
|
|
25
|
+
* trailing: true
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @category models
|
|
31
|
+
*/
|
|
32
|
+
export type ThrottleOptions = {
|
|
33
|
+
readonly duration: Duration.Input;
|
|
34
|
+
readonly leading?: boolean | undefined;
|
|
35
|
+
readonly trailing?: boolean | undefined;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Limits emissions to configured leading and trailing edges of fixed windows.
|
|
39
|
+
*
|
|
40
|
+
* Pass `{ duration, leading, trailing }` for trailing or both-edge behavior.
|
|
41
|
+
* A duration alone defaults to `{ leading: true, trailing: false }`.
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* ## Why
|
|
45
|
+
*
|
|
46
|
+
* Throttling bounds push frequency while allowing immediate feedback, a final
|
|
47
|
+
* settled value, or both, without moving timing state outside the Fx graph.
|
|
48
|
+
*
|
|
49
|
+
* ## Ownership and lifetime
|
|
50
|
+
*
|
|
51
|
+
* The first value opens a window. Leading mode emits it immediately. Values
|
|
52
|
+
* arriving while open replace one pending latest value; trailing mode emits
|
|
53
|
+
* that value when the timer closes, except that both-edge mode does not repeat
|
|
54
|
+
* the first value unless another arrived. Windows never overlap. Source errors
|
|
55
|
+
* propagate, source completion waits for the active window, and interruption
|
|
56
|
+
* stops the scoped timer and discards pending state.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { throttle } from "@typed/fx/Fx"
|
|
61
|
+
* import { fromIterable } from "@typed/fx/Fx"
|
|
62
|
+
*
|
|
63
|
+
* const bounded = throttle(fromIterable([1, 2, 3]), {
|
|
64
|
+
* duration: "250 millis",
|
|
65
|
+
* leading: true,
|
|
66
|
+
* trailing: true
|
|
67
|
+
* })
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @since 1.0.0
|
|
71
|
+
* @category combinators
|
|
72
|
+
*/
|
|
73
|
+
export declare const throttle: {
|
|
74
|
+
(duration: Duration.Input): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | Scope.Scope>;
|
|
75
|
+
(options: ThrottleOptions): <A, E, R>(fx: Fx<A, E, R>) => Fx<A, E, R | Scope.Scope>;
|
|
76
|
+
<A, E, R>(fx: Fx<A, E, R>, duration: Duration.Input): Fx<A, E, R | Scope.Scope>;
|
|
77
|
+
<A, E, R>(fx: Fx<A, E, R>, options: ThrottleOptions): Fx<A, E, R | Scope.Scope>;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=throttle.d.ts.map
|