@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
|
@@ -1,10 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Creates an Fx that immediately interrupts.
|
|
3
3
|
*
|
|
4
|
-
* @
|
|
4
|
+
* @remarks
|
|
5
|
+
* ## Why
|
|
6
|
+
*
|
|
7
|
+
* A known Effect interruption cause can be represented as an `Fx` branch without
|
|
8
|
+
* disguising it as a typed failure or defect.
|
|
9
|
+
*
|
|
10
|
+
* ## Ownership and lifetime
|
|
11
|
+
*
|
|
12
|
+
* Construction is inert. Each run forwards one interruption cause carrying `id` to
|
|
13
|
+
* the sink, emits no values, and acquires no resources.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { Effect } from "effect"
|
|
18
|
+
* import { interrupt, observe } from "@typed/fx/Fx"
|
|
19
|
+
*
|
|
20
|
+
* const source = interrupt(1)
|
|
21
|
+
* const program = observe(source, () => Effect.void)
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @param id - Optional numeric fiber identifier responsible for the interruption.
|
|
5
25
|
* @returns An `Fx` that is interrupted.
|
|
6
26
|
* @since 1.0.0
|
|
7
|
-
* @category
|
|
27
|
+
* @category Failure sources
|
|
8
28
|
*/
|
|
9
29
|
export declare const interrupt: (fiberId?: number | undefined) => import("../Fx.js").Fx<never, never, never>;
|
|
10
30
|
//# sourceMappingURL=interrupt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/interrupt.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/interrupt.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,SAAS,8EAAiD,CAAC"}
|
|
@@ -4,9 +4,29 @@ import { failCause } from "./failCause.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates an Fx that immediately interrupts.
|
|
6
6
|
*
|
|
7
|
-
* @
|
|
7
|
+
* @remarks
|
|
8
|
+
* ## Why
|
|
9
|
+
*
|
|
10
|
+
* A known Effect interruption cause can be represented as an `Fx` branch without
|
|
11
|
+
* disguising it as a typed failure or defect.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
*
|
|
15
|
+
* Construction is inert. Each run forwards one interruption cause carrying `id` to
|
|
16
|
+
* the sink, emits no values, and acquires no resources.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { Effect } from "effect"
|
|
21
|
+
* import { interrupt, observe } from "@typed/fx/Fx"
|
|
22
|
+
*
|
|
23
|
+
* const source = interrupt(1)
|
|
24
|
+
* const program = observe(source, () => Effect.void)
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @param id - Optional numeric fiber identifier responsible for the interruption.
|
|
8
28
|
* @returns An `Fx` that is interrupted.
|
|
9
29
|
* @since 1.0.0
|
|
10
|
-
* @category
|
|
30
|
+
* @category Failure sources
|
|
11
31
|
*/
|
|
12
32
|
export const interrupt = /*#__PURE__*/ flow(Cause.interrupt, failCause);
|
|
@@ -9,32 +9,179 @@ import type { Fx } from "../Fx.js";
|
|
|
9
9
|
* This is the lowest-level constructor for Fx, giving you full control over
|
|
10
10
|
* the stream's behavior.
|
|
11
11
|
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* ## Why
|
|
14
|
+
*
|
|
15
|
+
* `make` is the protocol boundary for custom producers. It exposes the real `Sink`
|
|
16
|
+
* operation so libraries can define cardinality, ordering, concurrency, causes, and
|
|
17
|
+
* services without an opinionated source wrapper.
|
|
18
|
+
*
|
|
19
|
+
* ## Ownership and lifetime
|
|
20
|
+
*
|
|
21
|
+
* `make` stores the callback without invoking it. Calling `fx.run(sink)` asks the
|
|
22
|
+
* callback to construct its Effect; executing that Effect performs the subscription.
|
|
23
|
+
* Keep acquisition, publication, and cleanup inside the returned Effect or a required
|
|
24
|
+
* `Scope`, rather than performing side effects while constructing it. The returned
|
|
25
|
+
* Effect has no typed failure channel because producer failures are delivered through
|
|
26
|
+
* `sink.onFailure`; defects and interruption can still affect the run.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { Effect } from "effect"
|
|
31
|
+
* import { collectAll, make } from "@typed/fx/Fx"
|
|
32
|
+
*
|
|
33
|
+
* const pair = make<number>((sink) =>
|
|
34
|
+
* Effect.andThen(sink.onSuccess(1), sink.onSuccess(2))
|
|
35
|
+
* )
|
|
36
|
+
* const program = collectAll(pair)
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
12
39
|
* @param run - A function that takes a `Sink` and returns an `Effect` that drives the stream.
|
|
13
40
|
* @returns An `Fx` instance.
|
|
14
41
|
* @since 1.0.0
|
|
15
|
-
* @category
|
|
42
|
+
* @category Callback sources
|
|
16
43
|
*/
|
|
17
44
|
export declare const make: <A, E = never, R = never>(run: <RSink = never>(sink: Sink<A, E, RSink>) => Effect.Effect<unknown, never, R | RSink>) => Fx<A, E, R>;
|
|
18
45
|
/**
|
|
19
|
-
*
|
|
46
|
+
* Operations supplied to a callback producer for emitting values or ending its run.
|
|
47
|
+
*
|
|
48
|
+
* @remarks
|
|
49
|
+
* ## Why
|
|
50
|
+
*
|
|
51
|
+
* Callback sources need an explicit bridge into Sink operations while retaining the
|
|
52
|
+
* distinction between typed failures, defects, interruption causes, and completion.
|
|
53
|
+
*
|
|
54
|
+
* ## Ownership and lifetime
|
|
55
|
+
*
|
|
56
|
+
* An `Emit` is valid only for the active callback run. Every operation forks the
|
|
57
|
+
* corresponding sink Effect in that run's scope and returns its `Fiber`; callers may
|
|
58
|
+
* inspect or interrupt that delivery. Retaining it after cleanup is unsupported.
|
|
59
|
+
*
|
|
20
60
|
* @since 1.0.0
|
|
21
|
-
* @category
|
|
61
|
+
* @category Callback protocol
|
|
22
62
|
*/
|
|
23
63
|
export type Emit<A, E = never> = {
|
|
64
|
+
/**
|
|
65
|
+
* Starts delivery of one value and returns the delivery fiber.
|
|
66
|
+
*
|
|
67
|
+
* @remarks
|
|
68
|
+
* ## Why
|
|
69
|
+
*
|
|
70
|
+
* Callback producers push values when they arrive instead of waiting to be pulled.
|
|
71
|
+
*
|
|
72
|
+
* ## Ownership and lifetime
|
|
73
|
+
*
|
|
74
|
+
* The active callback scope owns the returned fiber; deliveries can overlap when
|
|
75
|
+
* `succeed` is called again before an earlier sink Effect completes.
|
|
76
|
+
*
|
|
77
|
+
* @since 1.0.0
|
|
78
|
+
* @category emitters
|
|
79
|
+
*/
|
|
24
80
|
succeed: (value: A) => Fiber<unknown, never>;
|
|
81
|
+
/**
|
|
82
|
+
* Starts delivery of a complete Effect `Cause` and returns the delivery fiber.
|
|
83
|
+
*
|
|
84
|
+
* @remarks
|
|
85
|
+
* ## Why
|
|
86
|
+
*
|
|
87
|
+
* Typed failures, defects, and interruption remain structurally distinct.
|
|
88
|
+
*
|
|
89
|
+
* ## Ownership and lifetime
|
|
90
|
+
*
|
|
91
|
+
* The active callback scope owns the returned fiber. This operation does not
|
|
92
|
+
* automatically call `done`; terminal behavior is determined by the sink.
|
|
93
|
+
*
|
|
94
|
+
* @since 1.0.0
|
|
95
|
+
* @category emitters
|
|
96
|
+
*/
|
|
25
97
|
failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;
|
|
98
|
+
/**
|
|
99
|
+
* Starts delivery of one typed failure and returns the delivery fiber.
|
|
100
|
+
*
|
|
101
|
+
* @remarks
|
|
102
|
+
* ## Why
|
|
103
|
+
*
|
|
104
|
+
* Expected callback errors enter `E` without being converted to defects.
|
|
105
|
+
*
|
|
106
|
+
* ## Ownership and lifetime
|
|
107
|
+
*
|
|
108
|
+
* The active callback scope owns the returned fiber. The error is wrapped with
|
|
109
|
+
* `Cause.fail` and forwarded to the sink.
|
|
110
|
+
*
|
|
111
|
+
* @since 1.0.0
|
|
112
|
+
* @category emitters
|
|
113
|
+
*/
|
|
26
114
|
fail: (error: E) => Fiber<unknown, never>;
|
|
115
|
+
/**
|
|
116
|
+
* Starts delivery of one unexpected defect and returns the delivery fiber.
|
|
117
|
+
*
|
|
118
|
+
* @remarks
|
|
119
|
+
* ## Why
|
|
120
|
+
*
|
|
121
|
+
* Programming defects remain outside the typed `E` channel.
|
|
122
|
+
*
|
|
123
|
+
* ## Ownership and lifetime
|
|
124
|
+
*
|
|
125
|
+
* The active callback scope owns the returned fiber. The value is wrapped with
|
|
126
|
+
* `Cause.die` and forwarded to the sink.
|
|
127
|
+
*
|
|
128
|
+
* @since 1.0.0
|
|
129
|
+
* @category emitters
|
|
130
|
+
*/
|
|
27
131
|
die: (error: unknown) => Fiber<unknown, never>;
|
|
132
|
+
/**
|
|
133
|
+
* Requests early completion and returns the sink's early-exit fiber.
|
|
134
|
+
*
|
|
135
|
+
* @remarks
|
|
136
|
+
* ## Why
|
|
137
|
+
*
|
|
138
|
+
* Finite callback APIs need an explicit completion signal distinct from failure.
|
|
139
|
+
*
|
|
140
|
+
* ## Ownership and lifetime
|
|
141
|
+
*
|
|
142
|
+
* The active callback scope owns the returned fiber. Early exit ends the run and
|
|
143
|
+
* causes callback cleanup registered by `callback` to execute.
|
|
144
|
+
*
|
|
145
|
+
* @since 1.0.0
|
|
146
|
+
* @category emitters
|
|
147
|
+
*/
|
|
28
148
|
done: () => Fiber<unknown, never>;
|
|
29
149
|
};
|
|
30
150
|
/**
|
|
31
151
|
* Creates an Fx from a callback-based source.
|
|
32
152
|
*
|
|
153
|
+
* @remarks
|
|
154
|
+
* ## Why
|
|
155
|
+
*
|
|
156
|
+
* DOM events, sockets, observers, and foreign libraries decide when values exist.
|
|
157
|
+
* `callback` turns that push boundary into `Fx` while keeping failure and cleanup
|
|
158
|
+
* inside Effect's structured lifetime.
|
|
159
|
+
*
|
|
160
|
+
* ## Ownership and lifetime
|
|
161
|
+
*
|
|
162
|
+
* Registration is lazy: `run` is called once for each `Fx` run. The run creates a
|
|
163
|
+
* child scope and stays active until `emit.done()`, sink early exit, or interruption.
|
|
164
|
+
* If `run` returns an Effect, it is registered as the scope finalizer. Each emit
|
|
165
|
+
* operation starts its sink handler in a fiber, so handler completion can overlap;
|
|
166
|
+
* use the returned fibers or a serialized source when ordering of effects matters.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```ts
|
|
170
|
+
* import { Effect } from "effect"
|
|
171
|
+
* import { callback, collectUpTo } from "@typed/fx/Fx"
|
|
172
|
+
*
|
|
173
|
+
* const messages = callback<string>((emit) => {
|
|
174
|
+
* const timer = setInterval(() => emit.succeed("tick"), 10)
|
|
175
|
+
* return Effect.sync(() => clearInterval(timer))
|
|
176
|
+
* })
|
|
177
|
+
* const program = collectUpTo(messages, 2)
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
33
180
|
* @param run - A function that receives an `Emit` object to push values/errors.
|
|
34
181
|
* It can return a cleanup effect.
|
|
35
182
|
* @returns An `Fx` adapted from the callback.
|
|
36
183
|
* @since 1.0.0
|
|
37
|
-
* @category
|
|
184
|
+
* @category Callback sources
|
|
38
185
|
*/
|
|
39
186
|
export declare const callback: <A, E = never, R = never>(run: (emit: Emit<A, E>) => void | Effect.Effect<unknown, never, R>) => Fx<A, E, R>;
|
|
40
187
|
//# sourceMappingURL=make.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAsBnC
|
|
1
|
+
{"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAsBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,OACrC,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KACxF,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAA2B,CAAC;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C;;;;;;;;;;;;;;;OAeG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D;;;;;;;;;;;;;;;OAeG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C;;;;;;;;;;;;;;;OAeG;IACH,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C;;;;;;;;;;;;;;;OAeG;IACH,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,OACzC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KACjE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CA6BV,CAAC"}
|
|
@@ -26,27 +26,80 @@ class Make {
|
|
|
26
26
|
* This is the lowest-level constructor for Fx, giving you full control over
|
|
27
27
|
* the stream's behavior.
|
|
28
28
|
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* ## Why
|
|
31
|
+
*
|
|
32
|
+
* `make` is the protocol boundary for custom producers. It exposes the real `Sink`
|
|
33
|
+
* operation so libraries can define cardinality, ordering, concurrency, causes, and
|
|
34
|
+
* services without an opinionated source wrapper.
|
|
35
|
+
*
|
|
36
|
+
* ## Ownership and lifetime
|
|
37
|
+
*
|
|
38
|
+
* `make` stores the callback without invoking it. Calling `fx.run(sink)` asks the
|
|
39
|
+
* callback to construct its Effect; executing that Effect performs the subscription.
|
|
40
|
+
* Keep acquisition, publication, and cleanup inside the returned Effect or a required
|
|
41
|
+
* `Scope`, rather than performing side effects while constructing it. The returned
|
|
42
|
+
* Effect has no typed failure channel because producer failures are delivered through
|
|
43
|
+
* `sink.onFailure`; defects and interruption can still affect the run.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { Effect } from "effect"
|
|
48
|
+
* import { collectAll, make } from "@typed/fx/Fx"
|
|
49
|
+
*
|
|
50
|
+
* const pair = make<number>((sink) =>
|
|
51
|
+
* Effect.andThen(sink.onSuccess(1), sink.onSuccess(2))
|
|
52
|
+
* )
|
|
53
|
+
* const program = collectAll(pair)
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
29
56
|
* @param run - A function that takes a `Sink` and returns an `Effect` that drives the stream.
|
|
30
57
|
* @returns An `Fx` instance.
|
|
31
58
|
* @since 1.0.0
|
|
32
|
-
* @category
|
|
59
|
+
* @category Callback sources
|
|
33
60
|
*/
|
|
34
61
|
export const make = (run) => new Make(run);
|
|
35
62
|
/**
|
|
36
63
|
* Creates an Fx from a callback-based source.
|
|
37
64
|
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* ## Why
|
|
67
|
+
*
|
|
68
|
+
* DOM events, sockets, observers, and foreign libraries decide when values exist.
|
|
69
|
+
* `callback` turns that push boundary into `Fx` while keeping failure and cleanup
|
|
70
|
+
* inside Effect's structured lifetime.
|
|
71
|
+
*
|
|
72
|
+
* ## Ownership and lifetime
|
|
73
|
+
*
|
|
74
|
+
* Registration is lazy: `run` is called once for each `Fx` run. The run creates a
|
|
75
|
+
* child scope and stays active until `emit.done()`, sink early exit, or interruption.
|
|
76
|
+
* If `run` returns an Effect, it is registered as the scope finalizer. Each emit
|
|
77
|
+
* operation starts its sink handler in a fiber, so handler completion can overlap;
|
|
78
|
+
* use the returned fibers or a serialized source when ordering of effects matters.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* import { Effect } from "effect"
|
|
83
|
+
* import { callback, collectUpTo } from "@typed/fx/Fx"
|
|
84
|
+
*
|
|
85
|
+
* const messages = callback<string>((emit) => {
|
|
86
|
+
* const timer = setInterval(() => emit.succeed("tick"), 10)
|
|
87
|
+
* return Effect.sync(() => clearInterval(timer))
|
|
88
|
+
* })
|
|
89
|
+
* const program = collectUpTo(messages, 2)
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
38
92
|
* @param run - A function that receives an `Emit` object to push values/errors.
|
|
39
93
|
* It can return a cleanup effect.
|
|
40
94
|
* @returns An `Fx` adapted from the callback.
|
|
41
95
|
* @since 1.0.0
|
|
42
|
-
* @category
|
|
96
|
+
* @category Callback sources
|
|
43
97
|
*/
|
|
44
98
|
export const callback = (run) => make((sink) => Effect.acquireUseRelease(Scope.make(), (scope) => withEarlyExit(sink, Effect.fn(function* (sink) {
|
|
45
|
-
const services = yield* Effect.
|
|
99
|
+
const services = yield* Effect.context();
|
|
46
100
|
const runFork = Effect.runForkWith(services);
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
const runEffect = (effect) => runFork(effect, { signal: controller.signal });
|
|
101
|
+
const signal = yield* Scope.provide(Effect.abortSignal, scope);
|
|
102
|
+
const runEffect = (effect) => runFork(effect, { signal });
|
|
50
103
|
const emit = {
|
|
51
104
|
succeed: (value) => runEffect(sink.onSuccess(value)),
|
|
52
105
|
failCause: (cause) => runEffect(sink.onFailure(cause)),
|
|
@@ -56,6 +109,6 @@ export const callback = (run) => make((sink) => Effect.acquireUseRelease(Scope.m
|
|
|
56
109
|
};
|
|
57
110
|
const effect = run(emit);
|
|
58
111
|
if (effect)
|
|
59
|
-
yield* Scope.addFinalizer(scope, Effect.
|
|
112
|
+
yield* Scope.addFinalizer(scope, Effect.provideContext(effect, services));
|
|
60
113
|
return yield* Effect.never;
|
|
61
114
|
})), Scope.close));
|
|
@@ -3,10 +3,39 @@ import type { Fx } from "../Fx.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Creates an Fx that emits a `void` value periodically.
|
|
5
5
|
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* ## Why
|
|
8
|
+
*
|
|
9
|
+
* Common interval work can use Effect's
|
|
10
|
+
* [Schedule](https://effect.website/docs/v4/api/effect/Schedule) clock and
|
|
11
|
+
* interruption semantics rather than an unmanaged platform timer.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
*
|
|
15
|
+
* Construction starts no clock. A run waits `period` before the first emission and
|
|
16
|
+
* again between every subsequent emission. The run fiber owns the schedule; no ticks
|
|
17
|
+
* continue after interruption.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { Effect, Fiber } from "effect"
|
|
22
|
+
* import * as TestClock from "effect/testing/TestClock"
|
|
23
|
+
* import { collectUpTo, periodic } from "@typed/fx/Fx"
|
|
24
|
+
*
|
|
25
|
+
* const program = Effect.gen(function* () {
|
|
26
|
+
* const fiber = yield* Effect.forkChild(collectUpTo(periodic("1 second"), 1))
|
|
27
|
+
* yield* TestClock.adjust("999 millis")
|
|
28
|
+
* const beforeFirstPeriod = fiber.pollUnsafe()
|
|
29
|
+
* yield* TestClock.adjust("1 millis")
|
|
30
|
+
* const firstTick = yield* Fiber.join(fiber)
|
|
31
|
+
* return { beforeFirstPeriod, firstTick }
|
|
32
|
+
* })
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
6
35
|
* @param period - The duration between emissions.
|
|
7
36
|
* @returns An `Fx` that emits repeatedly.
|
|
8
37
|
* @since 1.0.0
|
|
9
|
-
* @category
|
|
38
|
+
* @category Time and rate
|
|
10
39
|
*/
|
|
11
|
-
export declare const periodic: (period: Duration.
|
|
40
|
+
export declare const periodic: (period: Duration.Input) => Fx<void>;
|
|
12
41
|
//# sourceMappingURL=periodic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/periodic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC
|
|
1
|
+
{"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/periodic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,QAAQ,WAAY,QAAQ,CAAC,KAAK,KAAG,EAAE,CAAC,IAAI,CACb,CAAC"}
|
|
@@ -3,10 +3,39 @@ import { fromSchedule } from "./fromSchedule.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Creates an Fx that emits a `void` value periodically.
|
|
5
5
|
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* ## Why
|
|
8
|
+
*
|
|
9
|
+
* Common interval work can use Effect's
|
|
10
|
+
* [Schedule](https://effect.website/docs/v4/api/effect/Schedule) clock and
|
|
11
|
+
* interruption semantics rather than an unmanaged platform timer.
|
|
12
|
+
*
|
|
13
|
+
* ## Ownership and lifetime
|
|
14
|
+
*
|
|
15
|
+
* Construction starts no clock. A run waits `period` before the first emission and
|
|
16
|
+
* again between every subsequent emission. The run fiber owns the schedule; no ticks
|
|
17
|
+
* continue after interruption.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { Effect, Fiber } from "effect"
|
|
22
|
+
* import * as TestClock from "effect/testing/TestClock"
|
|
23
|
+
* import { collectUpTo, periodic } from "@typed/fx/Fx"
|
|
24
|
+
*
|
|
25
|
+
* const program = Effect.gen(function* () {
|
|
26
|
+
* const fiber = yield* Effect.forkChild(collectUpTo(periodic("1 second"), 1))
|
|
27
|
+
* yield* TestClock.adjust("999 millis")
|
|
28
|
+
* const beforeFirstPeriod = fiber.pollUnsafe()
|
|
29
|
+
* yield* TestClock.adjust("1 millis")
|
|
30
|
+
* const firstTick = yield* Fiber.join(fiber)
|
|
31
|
+
* return { beforeFirstPeriod, firstTick }
|
|
32
|
+
* })
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
6
35
|
* @param period - The duration between emissions.
|
|
7
36
|
* @returns An `Fx` that emits repeatedly.
|
|
8
37
|
* @since 1.0.0
|
|
9
|
-
* @category
|
|
38
|
+
* @category Time and rate
|
|
10
39
|
*/
|
|
11
40
|
export const periodic = (period) =>
|
|
12
41
|
/*#__PURE__*/ fromSchedule(spaced(period));
|
|
@@ -2,30 +2,102 @@ import type { Fx } from "../Fx.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Creates an Fx that emits a single value and then completes.
|
|
4
4
|
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* A known value can enter `Fx` composition without adding failure or service
|
|
9
|
+
* requirements.
|
|
10
|
+
*
|
|
11
|
+
* ## Ownership and lifetime
|
|
12
|
+
*
|
|
13
|
+
* Construction stores the value. Each run offers it exactly once, waits for the sink
|
|
14
|
+
* handler, and completes without acquiring resources.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { collectAll, succeed } from "@typed/fx/Fx"
|
|
19
|
+
*
|
|
20
|
+
* const program = collectAll(succeed({ status: "ready" }))
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
5
23
|
* @param value - The value to emit.
|
|
6
24
|
* @returns An `Fx` that emits the value.
|
|
7
25
|
* @since 1.0.0
|
|
8
|
-
* @category
|
|
26
|
+
* @category Value sources
|
|
9
27
|
*/
|
|
10
28
|
export declare const succeed: <A>(value: A) => Fx<A>;
|
|
11
29
|
/**
|
|
12
|
-
* An Fx that emits `null` and then completes.
|
|
30
|
+
* An Fx that emits `null` exactly once and then completes.
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* ## Why
|
|
34
|
+
*
|
|
35
|
+
* The shared constant avoids repeatedly spelling `succeed(null)` in optional-value
|
|
36
|
+
* compositions. It is also exported as `null`.
|
|
37
|
+
*
|
|
38
|
+
* ## Ownership and lifetime
|
|
39
|
+
*
|
|
40
|
+
* Each run performs one sink delivery and acquires no resources.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { first, succeedNull } from "@typed/fx/Fx"
|
|
45
|
+
*
|
|
46
|
+
* const program = first(succeedNull)
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
13
49
|
* @since 1.0.0
|
|
14
|
-
* @category
|
|
50
|
+
* @category Value sources
|
|
15
51
|
*/
|
|
16
52
|
export declare const succeedNull: Fx<null, never, never>;
|
|
17
53
|
export { succeedNull as null };
|
|
18
54
|
/**
|
|
19
|
-
* An Fx that emits `undefined` and then completes.
|
|
55
|
+
* An Fx that emits `undefined` exactly once and then completes.
|
|
56
|
+
*
|
|
57
|
+
* @remarks
|
|
58
|
+
* ## Why
|
|
59
|
+
*
|
|
60
|
+
* The shared constant avoids repeatedly spelling `succeed(undefined)` in optional
|
|
61
|
+
* compositions. It is also exported as `undefined`.
|
|
62
|
+
*
|
|
63
|
+
* ## Ownership and lifetime
|
|
64
|
+
*
|
|
65
|
+
* Each run performs one sink delivery and acquires no resources.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* import { first, succeedUndefined } from "@typed/fx/Fx"
|
|
70
|
+
*
|
|
71
|
+
* const program = first(succeedUndefined)
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
20
74
|
* @since 1.0.0
|
|
21
|
-
* @category
|
|
75
|
+
* @category Value sources
|
|
22
76
|
*/
|
|
23
77
|
export declare const succeedUndefined: Fx<undefined, never, never>;
|
|
24
78
|
export { succeedUndefined as undefined };
|
|
25
79
|
/**
|
|
26
|
-
* An Fx that emits `void` and then completes.
|
|
80
|
+
* An Fx that emits `void` exactly once and then completes.
|
|
81
|
+
*
|
|
82
|
+
* @remarks
|
|
83
|
+
* ## Why
|
|
84
|
+
*
|
|
85
|
+
* The shared constant is a completion pulse for operations whose payload is
|
|
86
|
+
* irrelevant. It is also exported as `void`.
|
|
87
|
+
*
|
|
88
|
+
* ## Ownership and lifetime
|
|
89
|
+
*
|
|
90
|
+
* Each run performs one sink delivery and acquires no resources.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```ts
|
|
94
|
+
* import { drain, succeedVoid } from "@typed/fx/Fx"
|
|
95
|
+
*
|
|
96
|
+
* const program = drain(succeedVoid)
|
|
97
|
+
* ```
|
|
98
|
+
*
|
|
27
99
|
* @since 1.0.0
|
|
28
|
-
* @category
|
|
100
|
+
* @category Value sources
|
|
29
101
|
*/
|
|
30
102
|
export declare const succeedVoid: Fx<void, never, never>;
|
|
31
103
|
export { succeedVoid as void };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"succeed.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/succeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC
|
|
1
|
+
{"version":3,"file":"succeed.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/succeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,CAAC,KAAG,EAAE,CAAC,CAAC,CACc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,wBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,gBAAgB,6BAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAE,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC"}
|
|
@@ -2,31 +2,103 @@ import { make } from "./make.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Creates an Fx that emits a single value and then completes.
|
|
4
4
|
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* A known value can enter `Fx` composition without adding failure or service
|
|
9
|
+
* requirements.
|
|
10
|
+
*
|
|
11
|
+
* ## Ownership and lifetime
|
|
12
|
+
*
|
|
13
|
+
* Construction stores the value. Each run offers it exactly once, waits for the sink
|
|
14
|
+
* handler, and completes without acquiring resources.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { collectAll, succeed } from "@typed/fx/Fx"
|
|
19
|
+
*
|
|
20
|
+
* const program = collectAll(succeed({ status: "ready" }))
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
5
23
|
* @param value - The value to emit.
|
|
6
24
|
* @returns An `Fx` that emits the value.
|
|
7
25
|
* @since 1.0.0
|
|
8
|
-
* @category
|
|
26
|
+
* @category Value sources
|
|
9
27
|
*/
|
|
10
28
|
export const succeed = (value) =>
|
|
11
29
|
/*#__PURE__*/ make((sink) => sink.onSuccess(value));
|
|
12
30
|
/**
|
|
13
|
-
* An Fx that emits `null` and then completes.
|
|
31
|
+
* An Fx that emits `null` exactly once and then completes.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* ## Why
|
|
35
|
+
*
|
|
36
|
+
* The shared constant avoids repeatedly spelling `succeed(null)` in optional-value
|
|
37
|
+
* compositions. It is also exported as `null`.
|
|
38
|
+
*
|
|
39
|
+
* ## Ownership and lifetime
|
|
40
|
+
*
|
|
41
|
+
* Each run performs one sink delivery and acquires no resources.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { first, succeedNull } from "@typed/fx/Fx"
|
|
46
|
+
*
|
|
47
|
+
* const program = first(succeedNull)
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
14
50
|
* @since 1.0.0
|
|
15
|
-
* @category
|
|
51
|
+
* @category Value sources
|
|
16
52
|
*/
|
|
17
53
|
export const succeedNull = succeed(null);
|
|
18
54
|
export { succeedNull as null };
|
|
19
55
|
/**
|
|
20
|
-
* An Fx that emits `undefined` and then completes.
|
|
56
|
+
* An Fx that emits `undefined` exactly once and then completes.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* ## Why
|
|
60
|
+
*
|
|
61
|
+
* The shared constant avoids repeatedly spelling `succeed(undefined)` in optional
|
|
62
|
+
* compositions. It is also exported as `undefined`.
|
|
63
|
+
*
|
|
64
|
+
* ## Ownership and lifetime
|
|
65
|
+
*
|
|
66
|
+
* Each run performs one sink delivery and acquires no resources.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* import { first, succeedUndefined } from "@typed/fx/Fx"
|
|
71
|
+
*
|
|
72
|
+
* const program = first(succeedUndefined)
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
21
75
|
* @since 1.0.0
|
|
22
|
-
* @category
|
|
76
|
+
* @category Value sources
|
|
23
77
|
*/
|
|
24
78
|
export const succeedUndefined = succeed(undefined);
|
|
25
79
|
export { succeedUndefined as undefined };
|
|
26
80
|
/**
|
|
27
|
-
* An Fx that emits `void` and then completes.
|
|
81
|
+
* An Fx that emits `void` exactly once and then completes.
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* ## Why
|
|
85
|
+
*
|
|
86
|
+
* The shared constant is a completion pulse for operations whose payload is
|
|
87
|
+
* irrelevant. It is also exported as `void`.
|
|
88
|
+
*
|
|
89
|
+
* ## Ownership and lifetime
|
|
90
|
+
*
|
|
91
|
+
* Each run performs one sink delivery and acquires no resources.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import { drain, succeedVoid } from "@typed/fx/Fx"
|
|
96
|
+
*
|
|
97
|
+
* const program = drain(succeedVoid)
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
28
100
|
* @since 1.0.0
|
|
29
|
-
* @category
|
|
101
|
+
* @category Value sources
|
|
30
102
|
*/
|
|
31
103
|
export const succeedVoid = succeed(void 0);
|
|
32
104
|
export { succeedVoid as void };
|