@typed/fx 2.0.0-beta.3 → 2.0.0-beta.5
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 +364 -12
- package/dist/Fx/Fx.d.ts.map +1 -1
- package/dist/Fx/Fx.js +37 -6
- 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 +68 -10
- 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 +138 -17
- package/dist/Fx/combinators/provide.d.ts.map +1 -1
- package/dist/Fx/combinators/provide.js +134 -13
- 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 +41 -2
- 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 +42 -4
- 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 +56 -5
- 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 +108 -2
- 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 +1219 -94
- package/dist/Push/Push.d.ts.map +1 -1
- package/dist/Push/Push.js +1015 -86
- 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 +1168 -15
- package/dist/RefSubject/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject/RefSubject.js +850 -58
- 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 +385 -14
- package/dist/Sink/Sink.d.ts.map +1 -1
- package/dist/Sink/Sink.js +53 -6
- package/dist/Sink/combinators.d.ts +731 -2
- package/dist/Sink/combinators.d.ts.map +1 -1
- package/dist/Sink/combinators.js +707 -5
- package/dist/Subject/Subject.d.ts +1016 -22
- package/dist/Subject/Subject.d.ts.map +1 -1
- package/dist/Subject/Subject.js +904 -39
- package/dist/Versioned/Versioned.d.ts +426 -9
- package/dist/Versioned/Versioned.d.ts.map +1 -1
- package/dist/Versioned/Versioned.js +241 -15
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- package/package.json +120 -11
- 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 -1072
- 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 -2644
- 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 -441
- 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 -597
- 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
|
@@ -6,6 +6,22 @@ import { unwrap } from "./unwrap.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* Slices an Fx by skipping a number of elements and then taking a number of elements.
|
|
8
8
|
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* ## Why
|
|
11
|
+
* `slice` expresses prefix omission and bounded output in one counter. It retains source order,
|
|
12
|
+
* emits at most `take` values after `skip`, and completes early once that bound is reached.
|
|
13
|
+
*
|
|
14
|
+
* ## Ownership and lifetime
|
|
15
|
+
* Counters are local to one run. Early completion stops upstream work; otherwise source failure,
|
|
16
|
+
* services, and consumer interruption are forwarded.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { Fx } from "@typed/fx"
|
|
21
|
+
*
|
|
22
|
+
* const page = Fx.fromIterable([1, 2, 3, 4]).pipe(Fx.slice({ skip: 1, take: 2 }))
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
9
25
|
* @param bounds - The `Bounds` specifying how many elements to skip and take.
|
|
10
26
|
* @returns An `Fx` representing the slice.
|
|
11
27
|
* @since 1.0.0
|
|
@@ -15,6 +31,23 @@ export const slice = dual(2, (fx, bounds) => make((sink) => sinkCore.slice(sink,
|
|
|
15
31
|
/**
|
|
16
32
|
* Slices an Fx with bounds produced by an Effect.
|
|
17
33
|
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* ## Why
|
|
36
|
+
* `sliceEffect` delays selection of the bounds until consumption, allowing configuration to fail or
|
|
37
|
+
* require services before the source is subscribed.
|
|
38
|
+
*
|
|
39
|
+
* ## Ownership and lifetime
|
|
40
|
+
* The bounds Effect runs once per consumer. If it fails or is interrupted the source never starts;
|
|
41
|
+
* after success, ordinary `slice` owns only its per-run counters.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { Effect } from "effect"
|
|
46
|
+
* import { Fx } from "@typed/fx"
|
|
47
|
+
*
|
|
48
|
+
* const page = Fx.fromIterable([1, 2, 3]).pipe(Fx.sliceEffect(Effect.succeed({ skip: 1, take: 1 })))
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
18
51
|
* @param bounds - Effect that produces slice bounds.
|
|
19
52
|
* @returns An `Fx` representing the slice.
|
|
20
53
|
* @since 1.0.0
|
|
@@ -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"}
|
|
@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as Fiber from "effect/Fiber";
|
|
3
3
|
import { dual } from "effect/Function";
|
|
4
4
|
import * as Scope from "effect/Scope";
|
|
5
|
-
import * as
|
|
5
|
+
import * as Context from "effect/Context";
|
|
6
6
|
import * as SyncronizedRef from "effect/SynchronizedRef";
|
|
7
7
|
import { make as makeSink } from "../../Sink/Sink.js";
|
|
8
8
|
import { make } from "../constructors/make.js";
|
|
@@ -12,16 +12,54 @@ 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
|
|
18
56
|
* @category combinators
|
|
19
57
|
*/
|
|
20
58
|
export const switchMap = dual(2, (self, f) => make(Effect.fn(function* (sink) {
|
|
21
|
-
const ctx = yield* Effect.
|
|
22
|
-
const scope =
|
|
59
|
+
const ctx = yield* Effect.context();
|
|
60
|
+
const scope = Context.get(ctx, Scope.Scope);
|
|
23
61
|
const fiberRef = yield* SyncronizedRef.make(null);
|
|
24
|
-
const next = (value) => Effect.forkIn(Effect.
|
|
62
|
+
const next = (value) => Effect.forkIn(Effect.provideContext(f(value).run(sink), ctx), scope, {
|
|
25
63
|
startImmediately: false,
|
|
26
64
|
uninterruptible: false,
|
|
27
65
|
});
|
|
@@ -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
|