@typed/fx 2.0.0-beta.0 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +58 -21
- package/dist/Fx/Fx.d.ts +371 -19
- package/dist/Fx/Fx.d.ts.map +1 -1
- package/dist/Fx/Fx.js +37 -6
- package/dist/Fx/TypeId.d.ts +52 -6
- package/dist/Fx/TypeId.d.ts.map +1 -1
- package/dist/Fx/TypeId.js +41 -4
- package/dist/Fx/combinators/additive.d.ts +245 -0
- package/dist/Fx/combinators/additive.d.ts.map +1 -0
- package/dist/Fx/combinators/additive.js +243 -0
- package/dist/Fx/combinators/catch.d.ts +246 -12
- package/dist/Fx/combinators/catch.d.ts.map +1 -1
- package/dist/Fx/combinators/catch.js +236 -12
- package/dist/Fx/combinators/causes.d.ts +25 -2
- package/dist/Fx/combinators/causes.d.ts.map +1 -1
- package/dist/Fx/combinators/causes.js +25 -2
- package/dist/Fx/combinators/changesWithEffect.d.ts +40 -0
- package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -0
- package/dist/Fx/combinators/changesWithEffect.js +48 -0
- package/dist/Fx/combinators/compact.d.ts +18 -1
- package/dist/Fx/combinators/compact.d.ts.map +1 -1
- package/dist/Fx/combinators/compact.js +18 -1
- 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 +113 -5
- package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
- package/dist/Fx/combinators/continueWith.js +113 -5
- 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 +36 -0
- package/dist/Fx/combinators/delay.d.ts.map +1 -0
- package/dist/Fx/combinators/delay.js +33 -0
- package/dist/Fx/combinators/dropUntil.d.ts +71 -0
- package/dist/Fx/combinators/dropUntil.d.ts.map +1 -0
- package/dist/Fx/combinators/dropUntil.js +65 -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 +34 -4
- package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
- package/dist/Fx/combinators/ensuring.js +34 -4
- package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
- package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
- package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
- package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMap.js +38 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
- package/dist/Fx/combinators/exit.d.ts +23 -2
- package/dist/Fx/combinators/exit.d.ts.map +1 -1
- package/dist/Fx/combinators/exit.js +23 -2
- package/dist/Fx/combinators/filter.d.ts +17 -1
- package/dist/Fx/combinators/filter.d.ts.map +1 -1
- package/dist/Fx/combinators/filter.js +17 -1
- package/dist/Fx/combinators/filterEffect.d.ts +22 -1
- package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterEffect.js +22 -1
- package/dist/Fx/combinators/filterMap.d.ts +20 -1
- package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMap.js +20 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoop.js +20 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
- package/dist/Fx/combinators/flatMap.d.ts +50 -5
- package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMap.js +36 -3
- package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
- package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrently.js +51 -4
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
- package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
- package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapEffect.js +32 -2
- package/dist/Fx/combinators/flip.d.ts +34 -2
- package/dist/Fx/combinators/flip.d.ts.map +1 -1
- package/dist/Fx/combinators/flip.js +34 -2
- package/dist/Fx/combinators/gen.d.ts +29 -10
- package/dist/Fx/combinators/gen.d.ts.map +1 -1
- package/dist/Fx/combinators/gen.js +28 -4
- package/dist/Fx/combinators/genScoped.d.ts +33 -10
- package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/genScoped.js +31 -3
- 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 +45 -0
- package/dist/Fx/combinators/index.d.ts.map +1 -1
- package/dist/Fx/combinators/index.js +45 -0
- package/dist/Fx/combinators/keyed.d.ts +124 -10
- package/dist/Fx/combinators/keyed.d.ts.map +1 -1
- package/dist/Fx/combinators/keyed.js +69 -11
- package/dist/Fx/combinators/loop.d.ts +17 -1
- package/dist/Fx/combinators/loop.d.ts.map +1 -1
- package/dist/Fx/combinators/loop.js +17 -1
- package/dist/Fx/combinators/loopCause.d.ts +18 -1
- package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCause.js +18 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCauseEffect.js +19 -1
- package/dist/Fx/combinators/loopEffect.d.ts +24 -1
- package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopEffect.js +24 -1
- package/dist/Fx/combinators/map.d.ts +46 -1
- package/dist/Fx/combinators/map.d.ts.map +1 -1
- package/dist/Fx/combinators/map.js +43 -1
- package/dist/Fx/combinators/mapBoth.d.ts +40 -0
- package/dist/Fx/combinators/mapBoth.d.ts.map +1 -0
- package/dist/Fx/combinators/mapBoth.js +33 -0
- package/dist/Fx/combinators/mapEffect.d.ts +25 -1
- package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/mapEffect.js +25 -1
- package/dist/Fx/combinators/mapError.d.ts +33 -0
- package/dist/Fx/combinators/mapError.d.ts.map +1 -0
- package/dist/Fx/combinators/mapError.js +32 -0
- package/dist/Fx/combinators/mergeAll.d.ts +35 -1
- package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeAll.js +35 -1
- package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
- package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeOrdered.js +68 -14
- package/dist/Fx/combinators/onError.d.ts +34 -4
- package/dist/Fx/combinators/onError.d.ts.map +1 -1
- package/dist/Fx/combinators/onError.js +34 -4
- package/dist/Fx/combinators/onExit.d.ts +29 -3
- package/dist/Fx/combinators/onExit.d.ts.map +1 -1
- package/dist/Fx/combinators/onExit.js +29 -3
- package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
- package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
- package/dist/Fx/combinators/onInterrupt.js +49 -4
- 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 +162 -8
- package/dist/Fx/combinators/provide.d.ts.map +1 -1
- package/dist/Fx/combinators/provide.js +154 -6
- 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 +45 -0
- package/dist/Fx/combinators/result.d.ts.map +1 -0
- package/dist/Fx/combinators/result.js +46 -0
- 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 +72 -0
- package/dist/Fx/combinators/scan.d.ts.map +1 -0
- package/dist/Fx/combinators/scan.js +77 -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 +45 -1
- package/dist/Fx/combinators/skip.d.ts.map +1 -1
- package/dist/Fx/combinators/skip.js +43 -1
- package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
- package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeats.js +17 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
- package/dist/Fx/combinators/skipWhile.d.ts +117 -0
- package/dist/Fx/combinators/skipWhile.d.ts.map +1 -0
- package/dist/Fx/combinators/skipWhile.js +134 -0
- package/dist/Fx/combinators/slice.d.ts +97 -2
- package/dist/Fx/combinators/slice.d.ts.map +1 -1
- package/dist/Fx/combinators/slice.js +45 -1
- package/dist/Fx/combinators/switchMap.d.ts +39 -1
- package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMap.js +43 -5
- package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
- package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMapEffect.js +38 -1
- package/dist/Fx/combinators/take.d.ts +46 -1
- package/dist/Fx/combinators/take.d.ts.map +1 -1
- package/dist/Fx/combinators/take.js +44 -1
- package/dist/Fx/combinators/takeUntil.d.ts +62 -2
- package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/takeUntil.js +62 -2
- package/dist/Fx/combinators/takeWhile.d.ts +60 -0
- package/dist/Fx/combinators/takeWhile.d.ts.map +1 -0
- package/dist/Fx/combinators/takeWhile.js +54 -0
- package/dist/Fx/combinators/tapEffect.d.ts +17 -1
- package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/tapEffect.js +17 -1
- 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 +32 -2
- package/dist/Fx/combinators/tuple.d.ts.map +1 -1
- package/dist/Fx/combinators/tuple.js +36 -5
- 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 +31 -2
- package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrap.js +30 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrapScoped.js +34 -1
- package/dist/Fx/combinators/when.d.ts +37 -2
- package/dist/Fx/combinators/when.d.ts.map +1 -1
- package/dist/Fx/combinators/when.js +38 -3
- 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 +135 -0
- package/dist/Fx/combinators/zip.d.ts.map +1 -0
- package/dist/Fx/combinators/zip.js +160 -0
- package/dist/Fx/constructors/at.d.ts +23 -3
- package/dist/Fx/constructors/at.d.ts.map +1 -1
- package/dist/Fx/constructors/at.js +21 -1
- package/dist/Fx/constructors/die.d.ts +22 -1
- package/dist/Fx/constructors/die.d.ts.map +1 -1
- package/dist/Fx/constructors/die.js +22 -1
- package/dist/Fx/constructors/empty.d.ts +19 -1
- package/dist/Fx/constructors/empty.d.ts.map +1 -1
- package/dist/Fx/constructors/empty.js +19 -1
- package/dist/Fx/constructors/fail.d.ts +22 -1
- package/dist/Fx/constructors/fail.d.ts.map +1 -1
- package/dist/Fx/constructors/fail.js +22 -1
- package/dist/Fx/constructors/failCause.d.ts +23 -1
- package/dist/Fx/constructors/failCause.d.ts.map +1 -1
- package/dist/Fx/constructors/failCause.js +23 -1
- package/dist/Fx/constructors/fn.d.ts +116 -16
- 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 +45 -3
- package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
- package/dist/Fx/constructors/fromEffect.js +45 -3
- package/dist/Fx/constructors/fromFailures.d.ts +25 -1
- package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
- package/dist/Fx/constructors/fromFailures.js +25 -1
- package/dist/Fx/constructors/fromIterable.d.ts +23 -1
- package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
- package/dist/Fx/constructors/fromIterable.js +23 -1
- package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
- package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
- package/dist/Fx/constructors/fromSchedule.js +28 -3
- 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 +22 -2
- package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
- package/dist/Fx/constructors/interrupt.js +22 -2
- package/dist/Fx/constructors/make.d.ts +151 -4
- package/dist/Fx/constructors/make.d.ts.map +1 -1
- package/dist/Fx/constructors/make.js +60 -7
- package/dist/Fx/constructors/periodic.d.ts +31 -2
- package/dist/Fx/constructors/periodic.d.ts.map +1 -1
- package/dist/Fx/constructors/periodic.js +30 -1
- package/dist/Fx/constructors/succeed.d.ts +79 -7
- package/dist/Fx/constructors/succeed.d.ts.map +1 -1
- package/dist/Fx/constructors/succeed.js +79 -7
- 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 +93 -4
- package/dist/Fx/run/collect.d.ts.map +1 -1
- package/dist/Fx/run/collect.js +94 -5
- package/dist/Fx/run/first.d.ts +23 -1
- package/dist/Fx/run/first.d.ts.map +1 -1
- package/dist/Fx/run/first.js +23 -1
- package/dist/Fx/run/fork.d.ts +52 -2
- package/dist/Fx/run/fork.d.ts.map +1 -1
- package/dist/Fx/run/fork.js +52 -2
- package/dist/Fx/run/observe.d.ts +112 -4
- package/dist/Fx/run/observe.d.ts.map +1 -1
- package/dist/Fx/run/observe.js +137 -16
- package/dist/Fx/run/runPromise.d.ts +45 -2
- package/dist/Fx/run/runPromise.d.ts.map +1 -1
- package/dist/Fx/run/runPromise.js +45 -2
- 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 +1286 -98
- package/dist/Push/Push.d.ts.map +1 -1
- package/dist/Push/Push.js +1074 -88
- 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 +382 -35
- package/dist/RefSubject/RefArray.d.ts.map +1 -1
- package/dist/RefSubject/RefArray.js +374 -40
- package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
- package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
- package/dist/RefSubject/RefBigDecimal.js +229 -20
- package/dist/RefSubject/RefBigInt.d.ts +181 -16
- package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
- package/dist/RefSubject/RefBigInt.js +169 -15
- package/dist/RefSubject/RefBoolean.d.ts +181 -16
- package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
- package/dist/RefSubject/RefBoolean.js +169 -15
- package/dist/RefSubject/RefCause.d.ts +133 -12
- package/dist/RefSubject/RefCause.d.ts.map +1 -1
- package/dist/RefSubject/RefCause.js +121 -11
- package/dist/RefSubject/RefChunk.d.ts +481 -76
- package/dist/RefSubject/RefChunk.d.ts.map +1 -1
- package/dist/RefSubject/RefChunk.js +471 -75
- package/dist/RefSubject/RefDateTime.d.ts +137 -16
- package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
- package/dist/RefSubject/RefDateTime.js +122 -12
- package/dist/RefSubject/RefDuration.d.ts +169 -15
- package/dist/RefSubject/RefDuration.d.ts.map +1 -1
- package/dist/RefSubject/RefDuration.js +157 -14
- package/dist/RefSubject/RefGraph.d.ts +349 -35
- package/dist/RefSubject/RefGraph.d.ts.map +1 -1
- package/dist/RefSubject/RefGraph.js +334 -32
- package/dist/RefSubject/RefHashMap.d.ts +323 -28
- package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
- package/dist/RefSubject/RefHashMap.js +317 -29
- package/dist/RefSubject/RefHashRing.d.ts +159 -15
- package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
- package/dist/RefSubject/RefHashRing.js +145 -12
- package/dist/RefSubject/RefHashSet.d.ts +251 -22
- package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
- package/dist/RefSubject/RefHashSet.js +238 -20
- package/dist/RefSubject/RefIterable.d.ts +358 -32
- package/dist/RefSubject/RefIterable.d.ts.map +1 -1
- package/dist/RefSubject/RefIterable.js +350 -30
- package/dist/RefSubject/RefOption.d.ts +157 -14
- package/dist/RefSubject/RefOption.d.ts.map +1 -1
- package/dist/RefSubject/RefOption.js +145 -13
- package/dist/RefSubject/RefRecord.d.ts +402 -64
- package/dist/RefSubject/RefRecord.d.ts.map +1 -1
- package/dist/RefSubject/RefRecord.js +364 -39
- package/dist/RefSubject/RefResult.d.ts +167 -35
- package/dist/RefSubject/RefResult.d.ts.map +1 -1
- package/dist/RefSubject/RefResult.js +133 -12
- package/dist/RefSubject/RefString.d.ts +205 -18
- package/dist/RefSubject/RefString.d.ts.map +1 -1
- package/dist/RefSubject/RefString.js +193 -17
- package/dist/RefSubject/RefStruct.d.ts +169 -14
- package/dist/RefSubject/RefStruct.d.ts.map +1 -1
- package/dist/RefSubject/RefStruct.js +157 -13
- package/dist/RefSubject/RefSubject.d.ts +1242 -43
- package/dist/RefSubject/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject/RefSubject.js +1012 -86
- package/dist/RefSubject/RefTrie.d.ts +323 -37
- package/dist/RefSubject/RefTrie.d.ts.map +1 -1
- package/dist/RefSubject/RefTrie.js +311 -31
- package/dist/RefSubject/RefTuple.d.ts +127 -11
- package/dist/RefSubject/RefTuple.d.ts.map +1 -1
- package/dist/RefSubject/RefTuple.js +114 -9
- 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 +396 -23
- package/dist/Sink/Sink.d.ts.map +1 -1
- package/dist/Sink/Sink.js +55 -7
- package/dist/Sink/combinators.d.ts +789 -3
- package/dist/Sink/combinators.d.ts.map +1 -1
- package/dist/Sink/combinators.js +812 -7
- package/dist/Subject/Subject.d.ts +1022 -27
- package/dist/Subject/Subject.d.ts.map +1 -1
- package/dist/Subject/Subject.js +909 -43
- package/dist/Versioned/Versioned.d.ts +475 -25
- package/dist/Versioned/Versioned.d.ts.map +1 -1
- package/dist/Versioned/Versioned.js +298 -46
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- package/package.json +125 -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/catch.ts +0 -165
- package/src/Fx/combinators/causes.ts +0 -23
- package/src/Fx/combinators/compact.ts +0 -15
- package/src/Fx/combinators/continueWith.ts +0 -78
- 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 -36
- 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 -51
- 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/mapEffect.ts +0 -32
- 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 -62
- package/src/Fx/combinators/skip.ts +0 -20
- package/src/Fx/combinators/skipRepeats.ts +0 -15
- package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
- package/src/Fx/combinators/slice.ts +0 -32
- package/src/Fx/combinators/switchMap.ts +0 -55
- package/src/Fx/combinators/switchMapEffect.ts +0 -25
- package/src/Fx/combinators/take.ts +0 -17
- package/src/Fx/combinators/takeUntil.ts +0 -50
- 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/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.catch.test.ts +0 -61
- package/src/Fx.fn.test.ts +0 -51
- package/src/Fx.lifecycle.test.ts +0 -80
- package/src/Fx.test.ts +0 -71
- package/src/Fx.ts +0 -1
- package/src/Push/Push.ts +0 -903
- package/src/Push/index.ts +0 -1
- package/src/Push.test.ts +0 -26
- package/src/Push.ts +0 -1
- package/src/RefSubject/RefArray.ts +0 -512
- 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 -510
- package/src/RefSubject/RefDateTime.test.ts +0 -43
- package/src/RefSubject/RefDateTime.ts +0 -264
- package/src/RefSubject/RefDuration.test.ts +0 -49
- package/src/RefSubject/RefDuration.ts +0 -188
- package/src/RefSubject/RefGraph.ts +0 -650
- package/src/RefSubject/RefHashMap.ts +0 -465
- package/src/RefSubject/RefHashRing.ts +0 -262
- package/src/RefSubject/RefHashSet.ts +0 -308
- package/src/RefSubject/RefIterable.ts +0 -445
- package/src/RefSubject/RefOption.test.ts +0 -67
- package/src/RefSubject/RefOption.ts +0 -193
- package/src/RefSubject/RefRecord.ts +0 -612
- 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 -2545
- package/src/RefSubject/RefTrie.ts +0 -356
- 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.test.ts +0 -65
- package/src/RefSubject.ts +0 -1
- package/src/Sink/Sink.ts +0 -159
- package/src/Sink/combinators.ts +0 -993
- package/src/Sink/index.ts +0 -2
- 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 -521
- package/src/Versioned/index.ts +0 -1
- package/src/Versioned.test.ts +0 -23
- package/src/Versioned.ts +0 -1
- package/src/index.ts +0 -7
- package/tsconfig.json +0 -6
package/dist/Fx/run/collect.d.ts
CHANGED
|
@@ -4,29 +4,95 @@ import type { Fx } from "../Fx.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Collects all values emitted by an `Fx` into an array.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
*
|
|
10
|
+
* Finite producers sometimes need to cross from push processing back to one Effect
|
|
11
|
+
* value. `collectAll` makes that buffering explicit rather than hiding it in `Fx`.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
*
|
|
15
|
+
* The array is allocated separately for each Effect run. Subscription starts when the
|
|
16
|
+
* Effect runs and ends on source completion, failure, or interruption. Every emitted
|
|
17
|
+
* value is retained until completion, so an infinite source never completes and can
|
|
18
|
+
* grow memory without bound. Failures and services remain in `E` and `R`.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { Effect } from "effect"
|
|
23
|
+
* import { collectAll, fromIterable } from "@typed/fx/Fx"
|
|
24
|
+
*
|
|
25
|
+
* const program = collectAll(fromIterable([1, 2, 3])).pipe(
|
|
26
|
+
* Effect.map((values) => values.reduce((sum, value) => sum + value, 0))
|
|
27
|
+
* )
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
7
30
|
* @param fx - The `Fx` to collect values from.
|
|
8
31
|
* @returns An `Effect` that produces an array of all values when the `Fx` completes.
|
|
9
32
|
* @since 1.0.0
|
|
10
|
-
* @category
|
|
33
|
+
* @category Collecting values
|
|
11
34
|
*/
|
|
12
35
|
export declare const collectAll: <A, E = never, R = never>(fx: Fx<A, E, R>) => Effect.Effect<ReadonlyArray<A>, E, R>;
|
|
13
36
|
/**
|
|
14
37
|
* Forks the collection of all values from an `Fx`.
|
|
15
38
|
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* ## Why
|
|
41
|
+
*
|
|
42
|
+
* Collection can proceed concurrently while the caller retains a typed `Fiber` for
|
|
43
|
+
* awaiting, polling, or interruption.
|
|
44
|
+
*
|
|
45
|
+
* ## Ownership and lifetime
|
|
46
|
+
*
|
|
47
|
+
* Running the returned Effect starts a child fiber immediately. The parent fiber's
|
|
48
|
+
* scope supervises it, so parent termination interrupts collection. The child retains
|
|
49
|
+
* every value until completion and exposes source failure as its `E` channel.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* import { Effect, Fiber } from "effect"
|
|
54
|
+
* import { collectAllFork, fromIterable } from "@typed/fx/Fx"
|
|
55
|
+
*
|
|
56
|
+
* const program = Effect.gen(function* () {
|
|
57
|
+
* const fiber = yield* collectAllFork(fromIterable([1, 2, 3]))
|
|
58
|
+
* return yield* Fiber.join(fiber)
|
|
59
|
+
* })
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
16
62
|
* @param fx - The `Fx` to collect values from.
|
|
17
63
|
* @returns An `Effect` that produces a `Fiber` which computes the array of values.
|
|
18
64
|
* @since 1.0.0
|
|
19
|
-
* @category
|
|
65
|
+
* @category Collecting values
|
|
20
66
|
*/
|
|
21
67
|
export declare const collectAllFork: <A, E = never, R = never>(fx: Fx<A, E, R>) => Effect.Effect<Fiber.Fiber<ReadonlyArray<A>, E>, never, R>;
|
|
22
68
|
/**
|
|
23
69
|
* Collects the first `n` values emitted by an `Fx` into an array.
|
|
24
70
|
*
|
|
71
|
+
* @remarks
|
|
72
|
+
* ## Why
|
|
73
|
+
*
|
|
74
|
+
* `collectUpTo` creates a bounded pull result from a push source and stops upstream as
|
|
75
|
+
* soon as the requested cardinality has arrived.
|
|
76
|
+
*
|
|
77
|
+
* ## Ownership and lifetime
|
|
78
|
+
*
|
|
79
|
+
* Each Effect run owns a fresh array and source subscription. At most `upTo` values
|
|
80
|
+
* are retained in producer order; reaching the bound requests early exit and cleans
|
|
81
|
+
* up upstream. If the source completes first, the shorter array is returned. Source
|
|
82
|
+
* failures before completion remain typed.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* import { collectUpTo, fromIterable } from "@typed/fx/Fx"
|
|
87
|
+
*
|
|
88
|
+
* const firstTwo = collectUpTo(fromIterable([1, 2, 3]), 2)
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
25
91
|
* @param fx - The `Fx` to collect values from.
|
|
26
92
|
* @param upTo - The maximum number of values to collect.
|
|
27
93
|
* @returns An `Effect` that produces an array of up to `n` values.
|
|
28
94
|
* @since 1.0.0
|
|
29
|
-
* @category
|
|
95
|
+
* @category Collecting values
|
|
30
96
|
*/
|
|
31
97
|
export declare const collectUpTo: {
|
|
32
98
|
(upTo: number): <A, E, R>(fx: Fx<A, E, R>) => Effect.Effect<ReadonlyArray<A>, E, R>;
|
|
@@ -35,11 +101,34 @@ export declare const collectUpTo: {
|
|
|
35
101
|
/**
|
|
36
102
|
* Forks the collection of up to `n` values from an `Fx`.
|
|
37
103
|
*
|
|
104
|
+
* @remarks
|
|
105
|
+
* ## Why
|
|
106
|
+
*
|
|
107
|
+
* A bounded collection can run concurrently while the caller keeps control through
|
|
108
|
+
* the returned fiber.
|
|
109
|
+
*
|
|
110
|
+
* ## Ownership and lifetime
|
|
111
|
+
*
|
|
112
|
+
* Running the Effect starts a supervised child immediately. It retains at most
|
|
113
|
+
* `upTo` values, stops upstream at the bound, and is interrupted when its parent
|
|
114
|
+
* terminates. Source failures are reported by the child fiber.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* import { Effect, Fiber } from "effect"
|
|
119
|
+
* import { collectUpToFork, periodic } from "@typed/fx/Fx"
|
|
120
|
+
*
|
|
121
|
+
* const program = Effect.gen(function* () {
|
|
122
|
+
* const fiber = yield* collectUpToFork(periodic("10 millis"), 2)
|
|
123
|
+
* return yield* Fiber.join(fiber)
|
|
124
|
+
* })
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
38
127
|
* @param fx - The `Fx` to collect values from.
|
|
39
128
|
* @param upTo - The maximum number of values to collect.
|
|
40
129
|
* @returns An `Effect` that produces a `Fiber` which computes the array of values.
|
|
41
130
|
* @since 1.0.0
|
|
42
|
-
* @category
|
|
131
|
+
* @category Collecting values
|
|
43
132
|
*/
|
|
44
133
|
export declare const collectUpToFork: <A, E = never, R = never>(fx: Fx<A, E, R>, upTo: number) => Effect.Effect<Fiber.Fiber<ReadonlyArray<A>, E>, never, R>;
|
|
45
134
|
//# sourceMappingURL=collect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC
|
|
1
|
+
{"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,MAC5C,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACd,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAQnC,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,MAChD,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIvD,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,WAAW,EAAE;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAKjF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,MACjD,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QACT,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIvD,CAAC"}
|
package/dist/Fx/run/collect.js
CHANGED
|
@@ -5,22 +5,68 @@ import { observe } from "./observe.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Collects all values emitted by an `Fx` into an array.
|
|
7
7
|
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* ## Why
|
|
10
|
+
*
|
|
11
|
+
* Finite producers sometimes need to cross from push processing back to one Effect
|
|
12
|
+
* value. `collectAll` makes that buffering explicit rather than hiding it in `Fx`.
|
|
13
|
+
*
|
|
14
|
+
* ## Ownership and lifetime
|
|
15
|
+
*
|
|
16
|
+
* The array is allocated separately for each Effect run. Subscription starts when the
|
|
17
|
+
* Effect runs and ends on source completion, failure, or interruption. Every emitted
|
|
18
|
+
* value is retained until completion, so an infinite source never completes and can
|
|
19
|
+
* grow memory without bound. Failures and services remain in `E` and `R`.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { Effect } from "effect"
|
|
24
|
+
* import { collectAll, fromIterable } from "@typed/fx/Fx"
|
|
25
|
+
*
|
|
26
|
+
* const program = collectAll(fromIterable([1, 2, 3])).pipe(
|
|
27
|
+
* Effect.map((values) => values.reduce((sum, value) => sum + value, 0))
|
|
28
|
+
* )
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
8
31
|
* @param fx - The `Fx` to collect values from.
|
|
9
32
|
* @returns An `Effect` that produces an array of all values when the `Fx` completes.
|
|
10
33
|
* @since 1.0.0
|
|
11
|
-
* @category
|
|
34
|
+
* @category Collecting values
|
|
12
35
|
*/
|
|
13
36
|
export const collectAll = (fx) => Effect.suspend(() => {
|
|
14
37
|
const values = [];
|
|
15
|
-
return fx.pipe(observe((value) => Effect.sync(() => values.push(value))),
|
|
38
|
+
return fx.pipe(observe((value) => Effect.sync(() => values.push(value))), Effect.map(() => values));
|
|
16
39
|
});
|
|
17
40
|
/**
|
|
18
41
|
* Forks the collection of all values from an `Fx`.
|
|
19
42
|
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* ## Why
|
|
45
|
+
*
|
|
46
|
+
* Collection can proceed concurrently while the caller retains a typed `Fiber` for
|
|
47
|
+
* awaiting, polling, or interruption.
|
|
48
|
+
*
|
|
49
|
+
* ## Ownership and lifetime
|
|
50
|
+
*
|
|
51
|
+
* Running the returned Effect starts a child fiber immediately. The parent fiber's
|
|
52
|
+
* scope supervises it, so parent termination interrupts collection. The child retains
|
|
53
|
+
* every value until completion and exposes source failure as its `E` channel.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* import { Effect, Fiber } from "effect"
|
|
58
|
+
* import { collectAllFork, fromIterable } from "@typed/fx/Fx"
|
|
59
|
+
*
|
|
60
|
+
* const program = Effect.gen(function* () {
|
|
61
|
+
* const fiber = yield* collectAllFork(fromIterable([1, 2, 3]))
|
|
62
|
+
* return yield* Fiber.join(fiber)
|
|
63
|
+
* })
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
20
66
|
* @param fx - The `Fx` to collect values from.
|
|
21
67
|
* @returns An `Effect` that produces a `Fiber` which computes the array of values.
|
|
22
68
|
* @since 1.0.0
|
|
23
|
-
* @category
|
|
69
|
+
* @category Collecting values
|
|
24
70
|
*/
|
|
25
71
|
export const collectAllFork = (fx) => Effect.forkChild(collectAll(fx), {
|
|
26
72
|
startImmediately: true,
|
|
@@ -29,21 +75,64 @@ export const collectAllFork = (fx) => Effect.forkChild(collectAll(fx), {
|
|
|
29
75
|
/**
|
|
30
76
|
* Collects the first `n` values emitted by an `Fx` into an array.
|
|
31
77
|
*
|
|
78
|
+
* @remarks
|
|
79
|
+
* ## Why
|
|
80
|
+
*
|
|
81
|
+
* `collectUpTo` creates a bounded pull result from a push source and stops upstream as
|
|
82
|
+
* soon as the requested cardinality has arrived.
|
|
83
|
+
*
|
|
84
|
+
* ## Ownership and lifetime
|
|
85
|
+
*
|
|
86
|
+
* Each Effect run owns a fresh array and source subscription. At most `upTo` values
|
|
87
|
+
* are retained in producer order; reaching the bound requests early exit and cleans
|
|
88
|
+
* up upstream. If the source completes first, the shorter array is returned. Source
|
|
89
|
+
* failures before completion remain typed.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* import { collectUpTo, fromIterable } from "@typed/fx/Fx"
|
|
94
|
+
*
|
|
95
|
+
* const firstTwo = collectUpTo(fromIterable([1, 2, 3]), 2)
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
32
98
|
* @param fx - The `Fx` to collect values from.
|
|
33
99
|
* @param upTo - The maximum number of values to collect.
|
|
34
100
|
* @returns An `Effect` that produces an array of up to `n` values.
|
|
35
101
|
* @since 1.0.0
|
|
36
|
-
* @category
|
|
102
|
+
* @category Collecting values
|
|
37
103
|
*/
|
|
38
104
|
export const collectUpTo = dual(2, (fx, upTo) => fx.pipe(take(upTo), collectAll));
|
|
39
105
|
/**
|
|
40
106
|
* Forks the collection of up to `n` values from an `Fx`.
|
|
41
107
|
*
|
|
108
|
+
* @remarks
|
|
109
|
+
* ## Why
|
|
110
|
+
*
|
|
111
|
+
* A bounded collection can run concurrently while the caller keeps control through
|
|
112
|
+
* the returned fiber.
|
|
113
|
+
*
|
|
114
|
+
* ## Ownership and lifetime
|
|
115
|
+
*
|
|
116
|
+
* Running the Effect starts a supervised child immediately. It retains at most
|
|
117
|
+
* `upTo` values, stops upstream at the bound, and is interrupted when its parent
|
|
118
|
+
* terminates. Source failures are reported by the child fiber.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* import { Effect, Fiber } from "effect"
|
|
123
|
+
* import { collectUpToFork, periodic } from "@typed/fx/Fx"
|
|
124
|
+
*
|
|
125
|
+
* const program = Effect.gen(function* () {
|
|
126
|
+
* const fiber = yield* collectUpToFork(periodic("10 millis"), 2)
|
|
127
|
+
* return yield* Fiber.join(fiber)
|
|
128
|
+
* })
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
42
131
|
* @param fx - The `Fx` to collect values from.
|
|
43
132
|
* @param upTo - The maximum number of values to collect.
|
|
44
133
|
* @returns An `Effect` that produces a `Fiber` which computes the array of values.
|
|
45
134
|
* @since 1.0.0
|
|
46
|
-
* @category
|
|
135
|
+
* @category Collecting values
|
|
47
136
|
*/
|
|
48
137
|
export const collectUpToFork = (fx, upTo) => Effect.forkChild(collectUpTo(fx, upTo), {
|
|
49
138
|
startImmediately: true,
|
package/dist/Fx/run/first.d.ts
CHANGED
|
@@ -5,10 +5,32 @@ import type { Fx } from "../Fx.js";
|
|
|
5
5
|
* Returns the first value emitted by the `Fx` wrapped in an `Option`.
|
|
6
6
|
* If the `Fx` is empty, returns `None`.
|
|
7
7
|
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* ## Why
|
|
10
|
+
*
|
|
11
|
+
* `first` safely crosses from a possibly empty push source to one Effect value without
|
|
12
|
+
* inventing an error for the zero-emission case.
|
|
13
|
+
*
|
|
14
|
+
* ## Ownership and lifetime
|
|
15
|
+
*
|
|
16
|
+
* Running the Effect subscribes once and stops upstream after the first value. It
|
|
17
|
+
* returns `None` only when the source completes first; a source failure is still `E`.
|
|
18
|
+
* Interruption cleans up the active source.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { Effect, Option } from "effect"
|
|
23
|
+
* import { first, fromIterable } from "@typed/fx/Fx"
|
|
24
|
+
*
|
|
25
|
+
* const program = first(fromIterable([10, 20])).pipe(
|
|
26
|
+
* Effect.map(Option.getOrElse(() => 0))
|
|
27
|
+
* )
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
8
30
|
* @param fx - The `Fx` stream.
|
|
9
31
|
* @returns An `Effect` that produces `Some(firstValue)` or `None`.
|
|
10
32
|
* @since 1.0.0
|
|
11
|
-
* @category
|
|
33
|
+
* @category Collecting values
|
|
12
34
|
*/
|
|
13
35
|
export declare function first<A, E, R>(fx: Fx<A, E, R>): Effect<Option<A>, E, R>;
|
|
14
36
|
//# sourceMappingURL=first.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/first.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC
|
|
1
|
+
{"version":3,"file":"first.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/first.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEvE"}
|
package/dist/Fx/run/first.js
CHANGED
|
@@ -6,10 +6,32 @@ import { collectUpTo } from "./collect.js";
|
|
|
6
6
|
* Returns the first value emitted by the `Fx` wrapped in an `Option`.
|
|
7
7
|
* If the `Fx` is empty, returns `None`.
|
|
8
8
|
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* ## Why
|
|
11
|
+
*
|
|
12
|
+
* `first` safely crosses from a possibly empty push source to one Effect value without
|
|
13
|
+
* inventing an error for the zero-emission case.
|
|
14
|
+
*
|
|
15
|
+
* ## Ownership and lifetime
|
|
16
|
+
*
|
|
17
|
+
* Running the Effect subscribes once and stops upstream after the first value. It
|
|
18
|
+
* returns `None` only when the source completes first; a source failure is still `E`.
|
|
19
|
+
* Interruption cleans up the active source.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { Effect, Option } from "effect"
|
|
24
|
+
* import { first, fromIterable } from "@typed/fx/Fx"
|
|
25
|
+
*
|
|
26
|
+
* const program = first(fromIterable([10, 20])).pipe(
|
|
27
|
+
* Effect.map(Option.getOrElse(() => 0))
|
|
28
|
+
* )
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
9
31
|
* @param fx - The `Fx` stream.
|
|
10
32
|
* @returns An `Effect` that produces `Some(firstValue)` or `None`.
|
|
11
33
|
* @since 1.0.0
|
|
12
|
-
* @category
|
|
34
|
+
* @category Collecting values
|
|
13
35
|
*/
|
|
14
36
|
export function first(fx) {
|
|
15
37
|
return pipe(fx, collectUpTo(1), map(head));
|
package/dist/Fx/run/fork.d.ts
CHANGED
|
@@ -5,11 +5,36 @@ import type { Fx } from "../Fx.js";
|
|
|
5
5
|
* Forks the execution of an `Fx` into a background fiber.
|
|
6
6
|
* The stream will run until it completes or the fiber is interrupted.
|
|
7
7
|
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* ## Why
|
|
10
|
+
*
|
|
11
|
+
* `fork` keeps background execution inside Effect's supervised fiber tree while
|
|
12
|
+
* returning an explicit handle for coordination.
|
|
13
|
+
*
|
|
14
|
+
* ## Ownership and lifetime
|
|
15
|
+
*
|
|
16
|
+
* The returned Effect acquires the source services and creates a child attached to
|
|
17
|
+
* the calling fiber's scope. Parent termination interrupts the child. By default the
|
|
18
|
+
* child starts immediately and remains interruptible; `options` can change those two
|
|
19
|
+
* Effect fiber policies. Values are discarded and source failure is reported by the
|
|
20
|
+
* child fiber.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { Effect, Fiber } from "effect"
|
|
25
|
+
* import { fork, periodic } from "@typed/fx/Fx"
|
|
26
|
+
*
|
|
27
|
+
* const program = Effect.gen(function* () {
|
|
28
|
+
* const fiber = yield* fork(periodic("1 second"))
|
|
29
|
+
* return yield* Fiber.interrupt(fiber)
|
|
30
|
+
* })
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
8
33
|
* @param fx - The `Fx` stream to fork.
|
|
9
34
|
* @param options - Configuration for the forked fiber.
|
|
10
35
|
* @returns An `Effect` that produces a `Fiber`.
|
|
11
36
|
* @since 1.0.0
|
|
12
|
-
* @category
|
|
37
|
+
* @category Running effects
|
|
13
38
|
*/
|
|
14
39
|
export declare const fork: <A, E, R>(fx: Fx<A, E, R>, options?: {
|
|
15
40
|
readonly startImmediately?: boolean;
|
|
@@ -19,11 +44,36 @@ export declare const fork: <A, E, R>(fx: Fx<A, E, R>, options?: {
|
|
|
19
44
|
* Runs an `Fx` in a new fiber, using the standard `Effect.runFork`.
|
|
20
45
|
* This is useful for integrating with the top-level Effect runtime.
|
|
21
46
|
*
|
|
47
|
+
* @remarks
|
|
48
|
+
* ## Why
|
|
49
|
+
*
|
|
50
|
+
* Application and foreign-runtime boundaries sometimes need to start an `Fx` without
|
|
51
|
+
* already being inside an Effect program.
|
|
52
|
+
*
|
|
53
|
+
* ## Ownership and lifetime
|
|
54
|
+
*
|
|
55
|
+
* `runFork` starts immediately on Effect's default runtime, so it only accepts an `Fx`
|
|
56
|
+
* with no unsupplied services. The returned root fiber owns the subscription and must
|
|
57
|
+
* be interrupted by the caller when the source should stop. Values are discarded;
|
|
58
|
+
* failures appear on the fiber and `RunOptions` controls the runtime launch.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import { Effect, Fiber } from "effect"
|
|
63
|
+
* import { periodic, runFork } from "@typed/fx/Fx"
|
|
64
|
+
*
|
|
65
|
+
* const fiber = runFork(periodic("1 second"))
|
|
66
|
+
*
|
|
67
|
+
* // `runFork` is already a host-runtime boundary. Execute the returned
|
|
68
|
+
* // interruption Effect when this host no longer needs the subscription.
|
|
69
|
+
* await Effect.runPromise(Fiber.interrupt(fiber))
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
22
72
|
* @param fx - The `Fx` stream to run.
|
|
23
73
|
* @param options - `RunOptions` for the execution.
|
|
24
74
|
* @returns The created `Fiber`.
|
|
25
75
|
* @since 1.0.0
|
|
26
|
-
* @category
|
|
76
|
+
* @category Running effects
|
|
27
77
|
*/
|
|
28
78
|
export declare const runFork: <A, E>(fx: Fx<A, E>, options?: RunOptions) => Fiber<void, E>;
|
|
29
79
|
//# sourceMappingURL=fork.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/Fx/run/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MACtB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YACL;IACR,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC,KACA,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAIjC,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,UAAU,KAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAC7C,CAAC"}
|
package/dist/Fx/run/fork.js
CHANGED
|
@@ -4,11 +4,36 @@ import { drain } from "./observe.js";
|
|
|
4
4
|
* Forks the execution of an `Fx` into a background fiber.
|
|
5
5
|
* The stream will run until it completes or the fiber is interrupted.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
*
|
|
10
|
+
* `fork` keeps background execution inside Effect's supervised fiber tree while
|
|
11
|
+
* returning an explicit handle for coordination.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
*
|
|
15
|
+
* The returned Effect acquires the source services and creates a child attached to
|
|
16
|
+
* the calling fiber's scope. Parent termination interrupts the child. By default the
|
|
17
|
+
* child starts immediately and remains interruptible; `options` can change those two
|
|
18
|
+
* Effect fiber policies. Values are discarded and source failure is reported by the
|
|
19
|
+
* child fiber.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { Effect, Fiber } from "effect"
|
|
24
|
+
* import { fork, periodic } from "@typed/fx/Fx"
|
|
25
|
+
*
|
|
26
|
+
* const program = Effect.gen(function* () {
|
|
27
|
+
* const fiber = yield* fork(periodic("1 second"))
|
|
28
|
+
* return yield* Fiber.interrupt(fiber)
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
7
32
|
* @param fx - The `Fx` stream to fork.
|
|
8
33
|
* @param options - Configuration for the forked fiber.
|
|
9
34
|
* @returns An `Effect` that produces a `Fiber`.
|
|
10
35
|
* @since 1.0.0
|
|
11
|
-
* @category
|
|
36
|
+
* @category Running effects
|
|
12
37
|
*/
|
|
13
38
|
export const fork = (fx, options) => effectFork(drain(fx), {
|
|
14
39
|
startImmediately: options?.startImmediately ?? true,
|
|
@@ -18,10 +43,35 @@ export const fork = (fx, options) => effectFork(drain(fx), {
|
|
|
18
43
|
* Runs an `Fx` in a new fiber, using the standard `Effect.runFork`.
|
|
19
44
|
* This is useful for integrating with the top-level Effect runtime.
|
|
20
45
|
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* ## Why
|
|
48
|
+
*
|
|
49
|
+
* Application and foreign-runtime boundaries sometimes need to start an `Fx` without
|
|
50
|
+
* already being inside an Effect program.
|
|
51
|
+
*
|
|
52
|
+
* ## Ownership and lifetime
|
|
53
|
+
*
|
|
54
|
+
* `runFork` starts immediately on Effect's default runtime, so it only accepts an `Fx`
|
|
55
|
+
* with no unsupplied services. The returned root fiber owns the subscription and must
|
|
56
|
+
* be interrupted by the caller when the source should stop. Values are discarded;
|
|
57
|
+
* failures appear on the fiber and `RunOptions` controls the runtime launch.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* import { Effect, Fiber } from "effect"
|
|
62
|
+
* import { periodic, runFork } from "@typed/fx/Fx"
|
|
63
|
+
*
|
|
64
|
+
* const fiber = runFork(periodic("1 second"))
|
|
65
|
+
*
|
|
66
|
+
* // `runFork` is already a host-runtime boundary. Execute the returned
|
|
67
|
+
* // interruption Effect when this host no longer needs the subscription.
|
|
68
|
+
* await Effect.runPromise(Fiber.interrupt(fiber))
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
21
71
|
* @param fx - The `Fx` stream to run.
|
|
22
72
|
* @param options - `RunOptions` for the execution.
|
|
23
73
|
* @returns The created `Fiber`.
|
|
24
74
|
* @since 1.0.0
|
|
25
|
-
* @category
|
|
75
|
+
* @category Running effects
|
|
26
76
|
*/
|
|
27
77
|
export const runFork = (fx, options) => effectRunFork(drain(fx), options);
|
package/dist/Fx/run/observe.d.ts
CHANGED
|
@@ -6,11 +6,40 @@ import type { Fx } from "../Fx.js";
|
|
|
6
6
|
* Observes the values of an `Fx` stream using a callback function.
|
|
7
7
|
* The callback can return `void` or an `Effect` which will be executed for each value.
|
|
8
8
|
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* ## Why
|
|
11
|
+
*
|
|
12
|
+
* `observe` is the primary Effect boundary for performing work for each pushed value.
|
|
13
|
+
* A plain callback is lifted to Effect, while an Effect callback contributes its own
|
|
14
|
+
* typed failures and services to the result.
|
|
15
|
+
*
|
|
16
|
+
* ## Ownership and lifetime
|
|
17
|
+
*
|
|
18
|
+
* Observation starts only when the returned Effect runs. That Effect owns the source
|
|
19
|
+
* run and completes when the source completes. Interruption interrupts the internal
|
|
20
|
+
* fiber and source cleanup. Callback invocation follows the producer's delivery
|
|
21
|
+
* behavior; `observe` adds no buffer or concurrency of its own. A source cause or a
|
|
22
|
+
* callback failure fails the returned Effect as `E | E2` and stops further
|
|
23
|
+
* deliveries. The producer fiber finishes cleanup before observation settles;
|
|
24
|
+
* resources acquired in the caller's Scope retain that Scope's lifetime.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { Effect, Ref } from "effect"
|
|
29
|
+
* import { fromIterable, observe } from "@typed/fx/Fx"
|
|
30
|
+
*
|
|
31
|
+
* const program = Effect.gen(function* () {
|
|
32
|
+
* const total = yield* Ref.make(0)
|
|
33
|
+
* yield* observe(fromIterable([1, 2, 3]), (value) => Ref.update(total, (n) => n + value))
|
|
34
|
+
* return yield* Ref.get(total)
|
|
35
|
+
* })
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
9
38
|
* @param fx - The `Fx` stream to observe.
|
|
10
39
|
* @param f - The function to call for each emitted value.
|
|
11
40
|
* @returns An `Effect` that completes when the stream ends.
|
|
12
41
|
* @since 1.0.0
|
|
13
|
-
* @category
|
|
42
|
+
* @category Running effects
|
|
14
43
|
*/
|
|
15
44
|
export declare const observe: {
|
|
16
45
|
<A, E2 = never, R2 = never>(f: (value: A) => void | Effect<unknown, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Effect<unknown, E | E2, R | R2>;
|
|
@@ -20,31 +49,110 @@ export declare const observe: {
|
|
|
20
49
|
* Runs an `Fx` stream to completion, discarding all values.
|
|
21
50
|
* Useful when the side effects of the stream are all that matter.
|
|
22
51
|
*
|
|
52
|
+
* @remarks
|
|
53
|
+
* ## Why
|
|
54
|
+
*
|
|
55
|
+
* Some producers perform all useful work in acquisition, effects, or finalization and
|
|
56
|
+
* need execution without retaining their emitted values.
|
|
57
|
+
*
|
|
58
|
+
* ## Ownership and lifetime
|
|
59
|
+
*
|
|
60
|
+
* Running the Effect owns one source subscription until completion, failure, or
|
|
61
|
+
* interruption. It allocates no collection and adds no per-value effect. Source
|
|
62
|
+
* failures and services remain visible.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { drain, fromIterable } from "@typed/fx/Fx"
|
|
67
|
+
*
|
|
68
|
+
* const program = drain(fromIterable([1, 2, 3]))
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
23
71
|
* @param fx - The `Fx` stream to drain.
|
|
24
72
|
* @returns An `Effect` that completes when the stream ends.
|
|
25
73
|
* @since 1.0.0
|
|
26
|
-
* @category
|
|
74
|
+
* @category Running effects
|
|
27
75
|
*/
|
|
28
76
|
export declare const drain: <A, E, R>(fx: Fx<A, E, R>) => Effect<void, E, R>;
|
|
29
77
|
/**
|
|
30
78
|
* Runs an `Fx` stream as a Layer.
|
|
31
79
|
* The stream is forked in the background when the layer is acquired.
|
|
32
80
|
*
|
|
81
|
+
* @remarks
|
|
82
|
+
* ## Why
|
|
83
|
+
*
|
|
84
|
+
* A background producer can share the same acquisition and shutdown boundary as an
|
|
85
|
+
* application's Effect [Layer](https://effect.website/docs/v4/api/effect/Layer) graph
|
|
86
|
+
* even when it provides no service itself.
|
|
87
|
+
*
|
|
88
|
+
* ## Ownership and lifetime
|
|
89
|
+
*
|
|
90
|
+
* Building the Layer starts `drain(fx)` with `forkScoped`. Acquisition succeeds after
|
|
91
|
+
* the fiber is registered; it does not wait for that fiber. The Layer scope interrupts
|
|
92
|
+
* the fiber on release. A source failure is stored in the discarded child Fiber exit:
|
|
93
|
+
* it does not fail Layer acquisition and this API exposes no handle for awaiting it.
|
|
94
|
+
* Recover, report, or otherwise observe failures inside `fx` before calling
|
|
95
|
+
* `drainLayer`, or use `fork` when the caller needs the Fiber exit. The annotated `E`
|
|
96
|
+
* channel remains in the public Layer type even though the background exit is not
|
|
97
|
+
* propagated by this implementation. `Scope` is supplied by the Layer.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* import { Effect } from "effect"
|
|
102
|
+
* import { Fx } from "@typed/fx"
|
|
103
|
+
*
|
|
104
|
+
* const reported = Fx.fail("offline").pipe(
|
|
105
|
+
* Fx.catch((error) => Fx.fromEffect(Effect.logError(error)))
|
|
106
|
+
* )
|
|
107
|
+
* const Background = Fx.drainLayer(reported)
|
|
108
|
+
* const program = Effect.void.pipe(Effect.provide(Background))
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
33
111
|
* @param fx - The `Fx` stream to run.
|
|
34
112
|
* @returns A `Layer` that manages the background execution of the stream.
|
|
35
113
|
* @since 1.0.0
|
|
36
|
-
* @category
|
|
114
|
+
* @category Running effects
|
|
37
115
|
*/
|
|
38
116
|
export declare const drainLayer: <A, E, R>(fx: Fx<A, E, R>) => Layer<never, E, Exclude<R, Scope>>;
|
|
39
117
|
/**
|
|
40
118
|
* Observes the values of an `Fx` stream using a callback function and returns a `Layer`.
|
|
41
119
|
* The callback can return `void` or an `Effect` which will be executed for each value.
|
|
42
120
|
*
|
|
121
|
+
* @remarks
|
|
122
|
+
* ## Why
|
|
123
|
+
*
|
|
124
|
+
* Observation side effects can be installed as application infrastructure and share
|
|
125
|
+
* the Layer graph's typed dependencies and shutdown behavior.
|
|
126
|
+
*
|
|
127
|
+
* ## Ownership and lifetime
|
|
128
|
+
*
|
|
129
|
+
* Building the Layer forks `observe(fx, f)` in its scope and completes acquisition
|
|
130
|
+
* after registration. Releasing the Layer interrupts the observer and source. Source
|
|
131
|
+
* and callback failures terminate the discarded child Fiber; they do not fail Layer
|
|
132
|
+
* acquisition, and this API exposes no Fiber handle from which to await the exit.
|
|
133
|
+
* Handle or report those failures inside the source/callback, or use `observe`/`fork`
|
|
134
|
+
* when the caller must observe them. The annotated `E | E2` Layer error remains in the
|
|
135
|
+
* public type even though this implementation does not propagate the background exit.
|
|
136
|
+
* `Scope` is supplied internally; delivery behavior remains that of `observe`.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* import { Effect } from "effect"
|
|
141
|
+
* import { fromIterable, observeLayer } from "@typed/fx/Fx"
|
|
142
|
+
*
|
|
143
|
+
* const report = (value: number) =>
|
|
144
|
+
* Effect.try({ try: () => JSON.stringify(BigInt(value)), catch: String }).pipe(
|
|
145
|
+
* Effect.catch((error) => Effect.logError(error))
|
|
146
|
+
* )
|
|
147
|
+
* const LogValues = observeLayer(fromIterable([1, 2]), report)
|
|
148
|
+
* const program = Effect.void.pipe(Effect.provide(LogValues))
|
|
149
|
+
* ```
|
|
150
|
+
*
|
|
43
151
|
* @param fx - The `Fx` stream to observe.
|
|
44
152
|
* @param f - The function to call for each emitted value.
|
|
45
153
|
* @returns A `Layer` that manages the background execution of the stream.
|
|
46
154
|
* @since 1.0.0
|
|
47
|
-
* @category
|
|
155
|
+
* @category Running effects
|
|
48
156
|
*/
|
|
49
157
|
export declare const observeLayer: {
|
|
50
158
|
<A, E2 = never, R2 = never>(f: (value: A) => void | Effect<unknown, E2, R2>): <E, R>(fx: Fx<A, E, R>) => Layer<never, E | E2, Exclude<R | R2, Scope>>;
|