@typed/fx 2.0.0-beta.1 → 2.0.0-beta.11
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 +35 -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 +162 -11
- package/dist/Fx/combinators/additive.d.ts.map +1 -1
- package/dist/Fx/combinators/additive.js +162 -11
- package/dist/Fx/combinators/catch.d.ts +202 -29
- package/dist/Fx/combinators/catch.d.ts.map +1 -1
- package/dist/Fx/combinators/catch.js +193 -23
- 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 +21 -1
- package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/changesWithEffect.js +21 -1
- 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 +44 -2
- package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/dropUntil.js +44 -2
- 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 +48 -2
- 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 +35 -0
- package/dist/Fx/combinators/index.d.ts.map +1 -1
- package/dist/Fx/combinators/index.js +35 -0
- package/dist/Fx/combinators/keyed.d.ts +123 -9
- 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 +20 -1
- package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
- package/dist/Fx/combinators/mapBoth.js +20 -1
- 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 +21 -5
- package/dist/Fx/combinators/mapError.d.ts.map +1 -1
- package/dist/Fx/combinators/mapError.js +21 -5
- 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 +141 -20
- package/dist/Fx/combinators/provide.d.ts.map +1 -1
- package/dist/Fx/combinators/provide.js +137 -16
- 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 +23 -1
- package/dist/Fx/combinators/result.d.ts.map +1 -1
- package/dist/Fx/combinators/result.js +27 -13
- 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 +41 -2
- package/dist/Fx/combinators/scan.d.ts.map +1 -1
- package/dist/Fx/combinators/scan.js +43 -4
- 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 +33 -2
- package/dist/Fx/combinators/skip.d.ts.map +1 -1
- package/dist/Fx/combinators/skip.js +33 -2
- 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 +72 -4
- package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
- package/dist/Fx/combinators/skipWhile.js +72 -4
- package/dist/Fx/combinators/slice.d.ts +85 -3
- package/dist/Fx/combinators/slice.d.ts.map +1 -1
- package/dist/Fx/combinators/slice.js +35 -2
- 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 +34 -2
- package/dist/Fx/combinators/take.d.ts.map +1 -1
- package/dist/Fx/combinators/take.js +34 -2
- package/dist/Fx/combinators/takeUntil.d.ts +49 -3
- package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/takeUntil.js +49 -3
- package/dist/Fx/combinators/takeWhile.d.ts +33 -2
- package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
- package/dist/Fx/combinators/takeWhile.js +33 -2
- 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 +64 -4
- package/dist/Fx/combinators/zip.d.ts.map +1 -1
- package/dist/Fx/combinators/zip.js +64 -4
- package/dist/Fx/constructors/at.d.ts +21 -1
- 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 +30 -1
- 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 +70 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
- package/dist/Fx/internal/effectableWithOverride.js +54 -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 +1229 -104
- package/dist/Push/Push.d.ts.map +1 -1
- package/dist/Push/Push.js +1024 -95
- 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 +133 -12
- 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 +1197 -45
- package/dist/RefSubject/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject/RefSubject.js +935 -88
- 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 +740 -11
- package/dist/Sink/combinators.d.ts.map +1 -1
- package/dist/Sink/combinators.js +716 -14
- 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 +447 -27
- package/dist/Versioned/Versioned.d.ts.map +1 -1
- package/dist/Versioned/Versioned.js +282 -48
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- package/package.json +126 -16
- package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
- package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
- package/dist/Fx/constructors/fromYieldable.js +0 -12
- package/src/Fx/Fx.ts +0 -164
- package/src/Fx/TypeId.ts +0 -25
- package/src/Fx/combinators/additive.ts +0 -142
- package/src/Fx/combinators/catch.ts +0 -421
- package/src/Fx/combinators/causes.ts +0 -23
- package/src/Fx/combinators/changesWithEffect.ts +0 -66
- package/src/Fx/combinators/compact.ts +0 -15
- package/src/Fx/combinators/continueWith.ts +0 -78
- package/src/Fx/combinators/dropUntil.ts +0 -47
- package/src/Fx/combinators/ensuring.ts +0 -23
- package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
- package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
- package/src/Fx/combinators/exhaustMap.ts +0 -36
- package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
- package/src/Fx/combinators/exit.ts +0 -15
- package/src/Fx/combinators/filter.ts +0 -22
- package/src/Fx/combinators/filterEffect.ts +0 -31
- package/src/Fx/combinators/filterMap.ts +0 -23
- package/src/Fx/combinators/filterMapEffect.ts +0 -32
- package/src/Fx/combinators/filterMapLoop.ts +0 -35
- package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
- package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
- package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
- package/src/Fx/combinators/flatMap.ts +0 -51
- package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
- package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
- package/src/Fx/combinators/flatMapEffect.ts +0 -42
- package/src/Fx/combinators/flip.ts +0 -14
- package/src/Fx/combinators/gen.ts +0 -24
- package/src/Fx/combinators/genScoped.ts +0 -24
- package/src/Fx/combinators/index.ts +0 -61
- package/src/Fx/combinators/keyed.ts +0 -369
- package/src/Fx/combinators/loop.ts +0 -27
- package/src/Fx/combinators/loopCause.ts +0 -34
- package/src/Fx/combinators/loopCauseEffect.ts +0 -36
- package/src/Fx/combinators/loopEffect.ts +0 -34
- package/src/Fx/combinators/map.ts +0 -22
- package/src/Fx/combinators/mapBoth.ts +0 -40
- package/src/Fx/combinators/mapEffect.ts +0 -32
- package/src/Fx/combinators/mapError.ts +0 -28
- package/src/Fx/combinators/mergeAll.ts +0 -22
- package/src/Fx/combinators/mergeOrdered.ts +0 -123
- package/src/Fx/combinators/onError.ts +0 -40
- package/src/Fx/combinators/onExit.ts +0 -82
- package/src/Fx/combinators/onInterrupt.ts +0 -87
- package/src/Fx/combinators/provide.ts +0 -124
- package/src/Fx/combinators/result.ts +0 -39
- package/src/Fx/combinators/scan.ts +0 -82
- package/src/Fx/combinators/skip.ts +0 -41
- package/src/Fx/combinators/skipRepeats.ts +0 -15
- package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
- package/src/Fx/combinators/skipWhile.ts +0 -100
- package/src/Fx/combinators/slice.ts +0 -55
- package/src/Fx/combinators/switchMap.ts +0 -55
- package/src/Fx/combinators/switchMapEffect.ts +0 -25
- package/src/Fx/combinators/take.ts +0 -38
- package/src/Fx/combinators/takeUntil.ts +0 -88
- package/src/Fx/combinators/takeWhile.ts +0 -47
- package/src/Fx/combinators/tapEffect.ts +0 -39
- package/src/Fx/combinators/tuple.ts +0 -79
- package/src/Fx/combinators/unwrap.ts +0 -21
- package/src/Fx/combinators/unwrapScoped.ts +0 -26
- package/src/Fx/combinators/when.ts +0 -64
- package/src/Fx/combinators/withSpan.ts +0 -24
- package/src/Fx/combinators/zip.ts +0 -175
- package/src/Fx/constructors/at.ts +0 -23
- package/src/Fx/constructors/die.ts +0 -17
- package/src/Fx/constructors/empty.ts +0 -10
- package/src/Fx/constructors/fail.ts +0 -14
- package/src/Fx/constructors/failCause.ts +0 -14
- package/src/Fx/constructors/fn.ts +0 -245
- package/src/Fx/constructors/fromEffect.ts +0 -24
- package/src/Fx/constructors/fromFailures.ts +0 -19
- package/src/Fx/constructors/fromIterable.ts +0 -15
- package/src/Fx/constructors/fromSchedule.ts +0 -18
- package/src/Fx/constructors/fromYieldable.ts +0 -17
- package/src/Fx/constructors/index.ts +0 -15
- package/src/Fx/constructors/interrupt.ts +0 -13
- package/src/Fx/constructors/make.ts +0 -103
- package/src/Fx/constructors/periodic.ts +0 -15
- package/src/Fx/constructors/succeed.ts +0 -37
- package/src/Fx/constructors/suspend.ts +0 -6
- package/src/Fx/index.ts +0 -6
- package/src/Fx/internal/DeferredRef.ts +0 -87
- package/src/Fx/internal/UnionToTuple.ts +0 -12
- package/src/Fx/internal/diff.ts +0 -191
- package/src/Fx/internal/equivalence.ts +0 -12
- package/src/Fx/internal/multicast.ts +0 -51
- package/src/Fx/internal/ring-buffer.ts +0 -60
- package/src/Fx/internal/scope.ts +0 -58
- package/src/Fx/internal/yieldable.ts +0 -31
- package/src/Fx/run/collect.ts +0 -79
- package/src/Fx/run/first.ts +0 -20
- package/src/Fx/run/fork.ts +0 -40
- package/src/Fx/run/index.ts +0 -5
- package/src/Fx/run/observe.ts +0 -114
- package/src/Fx/run/runPromise.ts +0 -32
- package/src/Fx/stream.ts +0 -42
- package/src/Fx.additive-combinators.test.ts +0 -126
- package/src/Fx.catch-additive.test.ts +0 -206
- package/src/Fx.catch.test.ts +0 -60
- package/src/Fx.dropUntil.test.ts +0 -61
- package/src/Fx.fn.test.ts +0 -51
- package/src/Fx.lifecycle.test.ts +0 -79
- package/src/Fx.mapError-mapBoth.test.ts +0 -101
- package/src/Fx.provide-combinators.test.ts +0 -94
- package/src/Fx.result-changesWithEffect.test.ts +0 -112
- package/src/Fx.scan.test.ts +0 -73
- package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
- package/src/Fx.test.ts +0 -71
- package/src/Fx.ts +0 -1
- package/src/Fx.zip-merge-additive.test.ts +0 -171
- package/src/Fx.zip.test.ts +0 -133
- package/src/Push/Push.ts +0 -1072
- package/src/Push/index.ts +0 -1
- package/src/Push.additive.test.ts +0 -256
- package/src/Push.test.ts +0 -26
- package/src/Push.ts +0 -1
- package/src/RefSubject/RefArray.ts +0 -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 -2646
- 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.additive-parity.test.ts +0 -101
- package/src/RefSubject.test.ts +0 -65
- package/src/RefSubject.ts +0 -1
- package/src/Sink/Sink.ts +0 -159
- package/src/Sink/combinators.ts +0 -1115
- package/src/Sink/index.ts +0 -2
- package/src/Sink.combinators.test.ts +0 -88
- package/src/Sink.reduce-collect-head-last.test.ts +0 -107
- package/src/Sink.ts +0 -1
- package/src/Subject/Subject.ts +0 -441
- package/src/Subject/index.ts +0 -1
- package/src/Subject.test.ts +0 -47
- package/src/Subject.ts +0 -1
- package/src/Versioned/Versioned.ts +0 -597
- package/src/Versioned/index.ts +0 -1
- package/src/Versioned.filterMap.test.ts +0 -91
- package/src/Versioned.test.ts +0 -23
- package/src/Versioned.ts +0 -1
- package/src/index.ts +0 -7
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023-present The Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
## API overview
|
|
12
12
|
|
|
13
|
-
- **Fx** — Stream type `Fx.Fx<A, E, R>` with constructors (`succeed`, `fail`, `fromEffect`, `fromIterable`, `make`, `periodic`, etc.), combinators (`map`, `flatMap`, `filter`, `take`, `switchMap`, etc.), and run (`runPromise`, `
|
|
13
|
+
- **Fx** — Stream type `Fx.Fx<A, E, R>` with constructors (`succeed`, `fail`, `fromEffect`, `fromIterable`, `make`, `periodic`, etc.), combinators (`map`, `flatMap`, `filter`, `take`, `switchMap`, etc.), and run (`runPromise`, `collectAll`, `fork`, `observe`).
|
|
14
14
|
- **Push** — Push-based stream abstraction.
|
|
15
15
|
- **RefSubject** — Mutable reactive refs; `RefSubject.make(initial)`; typed helpers like `RefSubject.increment` / `RefSubject.decrement` for numbers; `RefArray`, `RefBoolean`, `RefOption`, etc.
|
|
16
16
|
- **Subject** — Multicast subject for Fx streams.
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
## Example
|
|
21
21
|
|
|
22
22
|
```ts
|
|
23
|
+
import { Effect } from "effect";
|
|
23
24
|
import { Fx } from "@typed/fx";
|
|
24
25
|
|
|
25
26
|
Fx.fromIterable([1, 2, 3]).pipe(
|
|
@@ -30,7 +31,7 @@ Fx.fromIterable([1, 2, 3]).pipe(
|
|
|
30
31
|
);
|
|
31
32
|
```
|
|
32
33
|
|
|
33
|
-
See the [counter example](https://github.com/
|
|
34
|
+
See the [counter example](https://github.com/TylorS/typed/tree/development/examples/counter) for a full runnable app.
|
|
34
35
|
|
|
35
36
|
## API reference
|
|
36
37
|
|
|
@@ -69,7 +70,6 @@ Reactive stream type with concurrency, error handling, and context, integrated w
|
|
|
69
70
|
- `never` — Run forever without emitting.
|
|
70
71
|
- `fromEffect(effect)` — One-value Fx from an Effect (emit on success, fail on failure).
|
|
71
72
|
- `fromIterable(iterable)` — Emit each element of the iterable then complete.
|
|
72
|
-
- `fromYieldable(yieldable)` — Fx from any Yieldable (Effect, Promise, etc.).
|
|
73
73
|
- `fromSchedule(schedule)` — Emit `void` each time the schedule fires.
|
|
74
74
|
- `fromFailures(failures)` — Fx that fails with combined failures from an iterable.
|
|
75
75
|
- `make(run)` — Low-level: build Fx from a function that runs a Sink.
|
|
@@ -85,15 +85,15 @@ Reactive stream type with concurrency, error handling, and context, integrated w
|
|
|
85
85
|
- `mapError(f)` — Transform typed failures.
|
|
86
86
|
- `mapBoth({ onSuccess, onFailure })` — Transform both success values and typed failures.
|
|
87
87
|
- `flatMap(f)` — Map to inner Fx and merge (concurrent; like mergeMap).
|
|
88
|
-
- `flatMapEffect(f)` —
|
|
89
|
-
- `flatMapConcurrently(f, concurrency
|
|
90
|
-
- `flatMapConcurrentlyEffect(f, concurrency
|
|
88
|
+
- `flatMapEffect(f)` — Map to an Effect and merge its successful values.
|
|
89
|
+
- `flatMapConcurrently(f, concurrency)` — FlatMap with a positive safe-integer concurrency limit; invalid limits fail through the Fx error channel with `IllegalArgumentError`.
|
|
90
|
+
- `flatMapConcurrentlyEffect(f, concurrency)` — Map to Effects with the same validated concurrency contract.
|
|
91
91
|
- `switchMap(f)` — Map to inner Fx and switch to latest (cancels previous).
|
|
92
|
-
- `switchMapEffect(f)` —
|
|
92
|
+
- `switchMapEffect(f)` — Map to an Effect and switch to the latest execution.
|
|
93
93
|
- `exhaustMap(f)` — Map to inner Fx, ignore new outer values while inner runs.
|
|
94
|
-
- `exhaustMapEffect(f)` —
|
|
94
|
+
- `exhaustMapEffect(f)` — Map to an Effect, ignoring new values while it runs.
|
|
95
95
|
- `exhaustLatestMap(f)` — Like exhaustMap but cancel previous inner when new outer arrives.
|
|
96
|
-
- `exhaustLatestMapEffect(f)` —
|
|
96
|
+
- `exhaustLatestMapEffect(f)` — Effect-based exhaustLatestMap.
|
|
97
97
|
- `filter(f)` — Keep only values satisfying the predicate.
|
|
98
98
|
- `filterEffect(f)` — Filter with an Effect predicate.
|
|
99
99
|
- `filterMap(f)` — Filter and map to Option; compact.
|
|
@@ -101,8 +101,8 @@ Reactive stream type with concurrency, error handling, and context, integrated w
|
|
|
101
101
|
- `compact` — Filter out `None`, unwrap `Some`.
|
|
102
102
|
- `take(n)` — Take first n elements.
|
|
103
103
|
- `takeEffect(effect)` — Take first n elements, where n is computed by an Effect.
|
|
104
|
-
- `takeUntil(
|
|
105
|
-
- `takeUntilEffect(f)` — Take until an effectful predicate
|
|
104
|
+
- `takeUntil(predicate)` — Take values until the predicate matches; the matching value is excluded.
|
|
105
|
+
- `takeUntilEffect(f)` — Take values until an effectful predicate matches; the matching value is excluded.
|
|
106
106
|
- `takeWhile(f)` — Take while predicate holds.
|
|
107
107
|
- `takeWhileEffect(f)` — Take while effectful predicate holds.
|
|
108
108
|
- `skip(n)` — Skip first n elements.
|
|
@@ -128,10 +128,11 @@ Reactive stream type with concurrency, error handling, and context, integrated w
|
|
|
128
128
|
- `onExit(f)` — Run an effect on exit (success/failure/interrupt).
|
|
129
129
|
- `onInterrupt(f)` — Run an effect on interrupt.
|
|
130
130
|
- `ensuring(effect)` — Run effect when Fx ends (success, failure, or interrupt).
|
|
131
|
-
- `provide(
|
|
131
|
+
- `provide(layer)` — Provide services to the Fx from a Layer.
|
|
132
132
|
- `provideService(tag, service)` — Provide a single service to the Fx.
|
|
133
133
|
- `provideServiceEffect(tag, effect)` — Provide a service produced by an Effect.
|
|
134
|
-
- `
|
|
134
|
+
- `if(condition, { onTrue, onFalse })` — Switch between two Fx streams based on a boolean Fx.
|
|
135
|
+
- `when(condition, { onTrue, onFalse })` — Map a boolean Fx to one of two values.
|
|
135
136
|
- `unwrap` — Unwrap Fx of Fx (flatten one level).
|
|
136
137
|
- `unwrapScoped` — Unwrap with Scope for inner Fx.
|
|
137
138
|
- `gen(f)` — Build Fx from a generator (yield Effects, return Fx).
|
|
@@ -146,15 +147,15 @@ Reactive stream type with concurrency, error handling, and context, integrated w
|
|
|
146
147
|
- `filterMapLoopEffect(initial, f)` — filterMapLoop with Effect.
|
|
147
148
|
- `filterMapLoopCause(initial, f)` — filterMapLoop with Cause.
|
|
148
149
|
- `filterMapLoopCauseEffect(initial, f)` — filterMapLoop with Cause and Effect.
|
|
149
|
-
- `keyed(
|
|
150
|
-
- `
|
|
150
|
+
- `keyed({ getKey, onValue, debounce? })` — Track array elements by key and run an inner Fx per key.
|
|
151
|
+
- `tap(f)` — Run a function or Effect for each value, then pass the value through.
|
|
151
152
|
- `exit` — Turn Fx of Exit into Fx that fails/succeeds accordingly.
|
|
152
153
|
- `result` — Materialize successes/failures as `Result`.
|
|
153
154
|
- `causes` — Expose failures as Cause emissions.
|
|
154
155
|
- `continueWith(f)` — When Fx ends, continue with another Fx.
|
|
155
156
|
- `flip` — Swap success and error types.
|
|
156
157
|
- `tuple(...fxs)` — Combine Fx streams into tuple Fx.
|
|
157
|
-
- `withSpan(name
|
|
158
|
+
- `withSpan(name, options?)` — Add tracing spans around the Fx and sink callbacks.
|
|
158
159
|
|
|
159
160
|
**Run**
|
|
160
161
|
|
|
@@ -211,6 +212,8 @@ Mutable reactive reference: observable state that can be read (as Effect), updat
|
|
|
211
212
|
**Constructors**
|
|
212
213
|
|
|
213
214
|
- `make(initial, options?)` — Create RefSubject from value, Effect, or Fx; options include `eq` (equivalence).
|
|
215
|
+
- `hydrate(schema, initial, options?)` — Create a callable `HydratedRefSubject` that is both reactive state and its DOM hydration ref. A named hydration requires a string-encoded schema.
|
|
216
|
+
- `hydrateAll(first, ...rest)` — Compose hydrated states into one DOM ref invocation.
|
|
214
217
|
- `fromEffect(effect)` — RefSubject driven by an Effect (e.g. initial value from async source).
|
|
215
218
|
- `fromFx(fx)` — RefSubject that follows an Fx stream.
|
|
216
219
|
- `fromStream(stream)` — RefSubject from an Effect Stream.
|
|
@@ -229,6 +232,17 @@ Mutable reactive reference: observable state that can be read (as Effect), updat
|
|
|
229
232
|
- `proxy(ref)` — Create a proxy RefSubject that forwards to the given ref.
|
|
230
233
|
- `isRefSubject(value)` — Type guard for RefSubject.
|
|
231
234
|
|
|
235
|
+
**Hydration**
|
|
236
|
+
|
|
237
|
+
```ts
|
|
238
|
+
const count = yield * RefSubject.hydrate(Schema.Number, 0);
|
|
239
|
+
const page = yield * RefSubject.hydrate(Schema.NumberFromString, 1, { name: "page" });
|
|
240
|
+
|
|
241
|
+
html`<section ref=${RefSubject.hydrateAll(count, page)}>${count}</section>`;
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The returned state is directly callable as the specialized DOM ref; there is no separate hydration property. Unnamed states share a versioned `data-typed-refsubject` tuple that is consumed and removed without installing an ongoing subscription. A named state uses its string codec directly in `data-<name>`, retains that attribute, and keeps it synchronized with exactly one scope-owned subscription. Closing the scope stops named synchronization.
|
|
245
|
+
|
|
232
246
|
**Derived**
|
|
233
247
|
|
|
234
248
|
- `map(ref, f)` — Computed that applies f to the value.
|
|
@@ -246,7 +260,7 @@ Mutable reactive reference: observable state that can be read (as Effect), updat
|
|
|
246
260
|
|
|
247
261
|
**Typed refs** (each has `make` and domain-specific helpers)
|
|
248
262
|
|
|
249
|
-
- `RefArray` — Array ref; e.g. prepend, append,
|
|
263
|
+
- `RefArray` — Array ref; e.g. prepend, append, insertAt, replaceAt, drop, and filterValues.
|
|
250
264
|
- `RefBoolean` — Boolean ref; e.g. toggle, setTrue, setFalse.
|
|
251
265
|
- `RefOption` — Option ref.
|
|
252
266
|
- `RefResult` — Result ref.
|
|
@@ -279,15 +293,15 @@ Multicast point: both an Fx and a Sink; multiple subscribers share one run of th
|
|
|
279
293
|
|
|
280
294
|
**Constructors**
|
|
281
295
|
|
|
282
|
-
- `Subject.make(replay?)` — Create a subject; optional replay buffer size
|
|
283
|
-
- `Subject.unsafeMake(replay?)` — Create without Scope (unsafe for cleanup).
|
|
296
|
+
- `Subject.make(replay?)` — Create a subject; optional replay buffer size must be an integer from 0 through 4,294,967,295, otherwise the Effect fails with `IllegalArgumentError`.
|
|
297
|
+
- `Subject.unsafeMake(replay?)` — Create without Scope (unsafe for cleanup); replay capacity has the same bounds and throws `IllegalArgumentError` when invalid.
|
|
284
298
|
|
|
285
299
|
**Combinators**
|
|
286
300
|
|
|
287
301
|
- `Subject.share(fx, subject)` — Multicast Fx through a subject (one run, many subscribers).
|
|
288
302
|
- `Subject.multicast(fx)` — Share Fx with a fresh subject.
|
|
289
303
|
- `Subject.hold(fx)` — Fx that holds last value for late subscribers.
|
|
290
|
-
- `Subject.replay(fx, n)` — Replay last n values to new subscribers.
|
|
304
|
+
- `Subject.replay(fx, n)` — Replay the last `n` values to new subscribers. Invalid capacities fail through the Fx error channel with `IllegalArgumentError`; valid capacities retain storage under the caller's memory policy.
|
|
291
305
|
|
|
292
306
|
**Service**
|
|
293
307
|
|
|
@@ -334,7 +348,7 @@ Consumer of values: two callbacks, one for success and one for failure.
|
|
|
334
348
|
- `tapEffect(sink, f)` — Tap with Effect, pass value through.
|
|
335
349
|
- `flip(sink)` — Swap success and error types.
|
|
336
350
|
- `exit(sink)` — Sink for Exit (success/failure).
|
|
337
|
-
- `dropAfter(sink,
|
|
351
|
+
- `dropAfter(sink, predicate, run)` — Run with a derived sink that forwards through the first predicate match, then exits early.
|
|
338
352
|
- `skipInterrupt(sink)` — Ignore interrupt at the Sink.
|
|
339
353
|
|
|
340
354
|
**Service**
|
package/dist/Fx/Fx.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import type { Layer } from "effect/Layer";
|
|
3
3
|
import { type Pipeable } from "effect/Pipeable";
|
|
4
4
|
import type * as Scope from "effect/Scope";
|
|
5
|
-
import * as
|
|
5
|
+
import * as Context from "effect/Context";
|
|
6
6
|
import type * as Types from "effect/Types";
|
|
7
7
|
import type * as Sink from "../Sink/Sink.js";
|
|
8
8
|
import { FxTypeId } from "./TypeId.js";
|
|
@@ -19,78 +19,430 @@ import { FxTypeId } from "./TypeId.js";
|
|
|
19
19
|
* 0, 1, or many values over time. It is similar to RxJS Observables or
|
|
20
20
|
* AsyncIterables, but built on top of Effect's fiber-based concurrency model.
|
|
21
21
|
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* ## Why
|
|
24
|
+
*
|
|
25
|
+
* Browser events, clocks, sockets, and users decide when work exists. `Fx`
|
|
26
|
+
* models that producer-driven direction while retaining Effect's explicit
|
|
27
|
+
* success, error, and service channels. An `Effect`, `Stream`, `Promise`,
|
|
28
|
+
* `ReadableStream`, iterable, or custom source can participate through an
|
|
29
|
+
* explicit constructor; `Fx` extends the Effect ecosystem rather than
|
|
30
|
+
* replacing it.
|
|
31
|
+
*
|
|
32
|
+
* ## Ownership and lifetime
|
|
33
|
+
*
|
|
34
|
+
* Constructing an `Fx` starts no work. Calling `run` returns an `Effect` whose
|
|
35
|
+
* running fiber and `Scope` own subscriptions, child fibers, and finalizers.
|
|
36
|
+
* Interruption propagates through that Effect lifetime. The supplied `Sink`
|
|
37
|
+
* contributes its requirements to `run`; failures are delivered to the Sink,
|
|
38
|
+
* which is why the returned Effect itself cannot fail.
|
|
39
|
+
*
|
|
40
|
+
* ## Composition
|
|
41
|
+
*
|
|
42
|
+
* The type parameters follow Effect's `A`, `E`, `R` vocabulary. Consequently,
|
|
43
|
+
* an `Fx<RenderEvent, E, R>` can describe arbitrary UI without hiding its
|
|
44
|
+
* failures or required services.
|
|
45
|
+
*
|
|
46
|
+
* ## Effect foundations
|
|
47
|
+
*
|
|
48
|
+
* `Fx` execution is an [Effect](https://effect.website/docs/v4/api/effect/Effect),
|
|
49
|
+
* resource ownership uses [Scope](https://effect.website/docs/v4/api/effect/Scope),
|
|
50
|
+
* concurrent runs use [Fiber](https://effect.website/docs/v4/api/effect/Fiber), and
|
|
51
|
+
* failures retain Effect's structured [Cause](https://effect.website/docs/v4/api/effect/Cause).
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { Effect } from "effect"
|
|
56
|
+
* import { Fx } from "@typed/fx"
|
|
57
|
+
*
|
|
58
|
+
* const keys: Fx.Fx<KeyboardEvent> = Fx.callback((emit) => {
|
|
59
|
+
* const onKey = (event: KeyboardEvent) => emit.succeed(event)
|
|
60
|
+
* document.addEventListener("keydown", onKey)
|
|
61
|
+
* return Effect.sync(() => document.removeEventListener("keydown", onKey))
|
|
62
|
+
* })
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
22
65
|
* @since 1.0.0
|
|
23
|
-
* @category
|
|
66
|
+
* @category Type contracts
|
|
24
67
|
*/
|
|
25
68
|
export interface Fx<A, E = never, R = never> extends Pipeable {
|
|
69
|
+
/**
|
|
70
|
+
* Identifies this value as an `Fx` and records its success, error, and service variance.
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* ## Why
|
|
74
|
+
*
|
|
75
|
+
* The marker makes `Fx` distinguishable at runtime without executing it, while its
|
|
76
|
+
* type carries the three channels through structural composition.
|
|
77
|
+
*
|
|
78
|
+
* ## Ownership and lifetime
|
|
79
|
+
*
|
|
80
|
+
* Reading the marker starts no work and acquires no resources.
|
|
81
|
+
*
|
|
82
|
+
* @since 1.0.0
|
|
83
|
+
* @category symbols
|
|
84
|
+
*/
|
|
26
85
|
readonly [FxTypeId]: Fx.Variance<A, E, R>;
|
|
27
86
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
87
|
+
* Connects this producer to a `Sink` and returns the `Effect` that owns the connection.
|
|
88
|
+
*
|
|
89
|
+
* @remarks
|
|
90
|
+
* ## Why
|
|
91
|
+
*
|
|
92
|
+
* Keeping execution behind an `Effect` preserves typed services, structured
|
|
93
|
+
* concurrency, and interruption instead of starting hidden work during construction.
|
|
94
|
+
* Values are offered to the sink in the order chosen by this `Fx`; the producer may
|
|
95
|
+
* emit zero, one, or many values.
|
|
96
|
+
*
|
|
97
|
+
* ## Ownership and lifetime
|
|
98
|
+
*
|
|
99
|
+
* Work starts when the returned `Effect` runs. Its fiber owns the subscription and
|
|
100
|
+
* any child scopes. Interrupting it interrupts the producer and runs its finalizers.
|
|
101
|
+
* Producer failures are delivered to `sink.onFailure`, so they are not repeated in
|
|
102
|
+
* the returned Effect's error channel.
|
|
103
|
+
*
|
|
104
|
+
* @since 1.0.0
|
|
105
|
+
* @category runners
|
|
30
106
|
*/
|
|
31
107
|
readonly run: <RSink>(sink: Sink.Sink<A, E, RSink>) => Effect.Effect<unknown, never, R | RSink>;
|
|
32
108
|
}
|
|
33
109
|
export declare namespace Fx {
|
|
34
110
|
/**
|
|
35
|
-
*
|
|
111
|
+
* Matches any `Fx` regardless of its value, error, or service channels.
|
|
112
|
+
*
|
|
113
|
+
* @remarks
|
|
114
|
+
* ## Why
|
|
115
|
+
*
|
|
116
|
+
* Generic helpers sometimes need to retain an entire unknown `Fx` type before
|
|
117
|
+
* extracting its channels with `Success`, `Error`, and `Services`.
|
|
118
|
+
*
|
|
119
|
+
* ## Ownership and lifetime
|
|
120
|
+
*
|
|
121
|
+
* This type alias performs no acquisition and starts no stream.
|
|
122
|
+
*
|
|
36
123
|
* @since 1.0.0
|
|
37
124
|
* @category models
|
|
38
125
|
*/
|
|
39
126
|
type Any = Fx<any, any, any>;
|
|
40
127
|
/**
|
|
41
|
-
*
|
|
128
|
+
* Describes how an `Fx` varies in its value, error, and service channels.
|
|
129
|
+
*
|
|
130
|
+
* @remarks
|
|
131
|
+
* ## Why
|
|
132
|
+
*
|
|
133
|
+
* The phantom fields preserve `Fx<A, E, R>` relationships through TypeScript's
|
|
134
|
+
* structural type system and power channel extraction without runtime sampling.
|
|
135
|
+
*
|
|
136
|
+
* ## Ownership and lifetime
|
|
137
|
+
*
|
|
138
|
+
* Variance markers are type-level metadata and retain no values or resources.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* import type { Fx } from "@typed/fx/Fx"
|
|
143
|
+
*
|
|
144
|
+
* type NumberFxVariance = Fx.Variance<number, never, never>
|
|
145
|
+
* ```
|
|
146
|
+
*
|
|
42
147
|
* @since 1.0.0
|
|
43
148
|
* @category models
|
|
44
149
|
*/
|
|
45
150
|
interface Variance<A, E, R> {
|
|
151
|
+
/**
|
|
152
|
+
* Covariant marker for emitted values.
|
|
153
|
+
*
|
|
154
|
+
* @remarks
|
|
155
|
+
* ## Why
|
|
156
|
+
*
|
|
157
|
+
* Preserves the `A` relationship without retaining an emitted value.
|
|
158
|
+
*
|
|
159
|
+
* ## Ownership and lifetime
|
|
160
|
+
*
|
|
161
|
+
* This phantom field starts no work and owns no resource.
|
|
162
|
+
*
|
|
163
|
+
* @since 1.0.0
|
|
164
|
+
* @category models
|
|
165
|
+
*/
|
|
46
166
|
readonly _A: Types.Covariant<A>;
|
|
167
|
+
/**
|
|
168
|
+
* Covariant marker for typed failures.
|
|
169
|
+
*
|
|
170
|
+
* @remarks
|
|
171
|
+
* ## Why
|
|
172
|
+
*
|
|
173
|
+
* Preserves the `E` relationship without manufacturing a failure.
|
|
174
|
+
*
|
|
175
|
+
* ## Ownership and lifetime
|
|
176
|
+
*
|
|
177
|
+
* This phantom field starts no work and owns no resource.
|
|
178
|
+
*
|
|
179
|
+
* @since 1.0.0
|
|
180
|
+
* @category models
|
|
181
|
+
*/
|
|
47
182
|
readonly _E: Types.Covariant<E>;
|
|
183
|
+
/**
|
|
184
|
+
* Covariant marker for required services.
|
|
185
|
+
*
|
|
186
|
+
* @remarks
|
|
187
|
+
* ## Why
|
|
188
|
+
*
|
|
189
|
+
* Preserves the `R` relationship without reading an Effect context.
|
|
190
|
+
*
|
|
191
|
+
* ## Ownership and lifetime
|
|
192
|
+
*
|
|
193
|
+
* This phantom field starts no work and owns no resource.
|
|
194
|
+
*
|
|
195
|
+
* @since 1.0.0
|
|
196
|
+
* @category models
|
|
197
|
+
*/
|
|
48
198
|
readonly _R: Types.Covariant<R>;
|
|
49
199
|
}
|
|
50
200
|
/**
|
|
51
|
-
*
|
|
201
|
+
* Extracts the emitted value type from an `Fx`.
|
|
202
|
+
*
|
|
203
|
+
* @remarks
|
|
204
|
+
* ## Why
|
|
205
|
+
*
|
|
206
|
+
* Higher-order APIs can preserve a producer's value channel without restating all
|
|
207
|
+
* three `Fx` type parameters. `never` remains `never` rather than distributing.
|
|
208
|
+
*
|
|
209
|
+
* ## Ownership and lifetime
|
|
210
|
+
*
|
|
211
|
+
* This conditional type performs no runtime work.
|
|
52
212
|
* @since 1.0.0
|
|
53
|
-
* @category
|
|
213
|
+
* @category Type contracts
|
|
54
214
|
*/
|
|
55
215
|
type Success<T> = [T] extends [never] ? never : T extends Fx<infer _A, infer _E, infer _R> ? _A : never;
|
|
56
216
|
/**
|
|
57
|
-
*
|
|
217
|
+
* Extracts the typed error from an `Fx`.
|
|
218
|
+
*
|
|
219
|
+
* @remarks
|
|
220
|
+
* ## Why
|
|
221
|
+
*
|
|
222
|
+
* Higher-order APIs can combine an unknown producer's failure channel precisely.
|
|
223
|
+
* `never` remains `never` rather than distributing.
|
|
224
|
+
*
|
|
225
|
+
* ## Ownership and lifetime
|
|
226
|
+
*
|
|
227
|
+
* This conditional type performs no runtime work.
|
|
58
228
|
* @since 1.0.0
|
|
59
|
-
* @category
|
|
229
|
+
* @category Type contracts
|
|
60
230
|
*/
|
|
61
231
|
type Error<T> = [T] extends [never] ? never : T extends Fx<infer _A, infer _E, infer _R> ? _E : never;
|
|
62
232
|
/**
|
|
63
|
-
*
|
|
233
|
+
* Extracts the services required to run an `Fx`.
|
|
234
|
+
*
|
|
235
|
+
* @remarks
|
|
236
|
+
* ## Why
|
|
237
|
+
*
|
|
238
|
+
* Combinators and helpers can expose the complete environment of a producer without
|
|
239
|
+
* evaluating it. The tuple wrapper prevents unwanted conditional distribution.
|
|
240
|
+
*
|
|
241
|
+
* ## Ownership and lifetime
|
|
242
|
+
*
|
|
243
|
+
* This conditional type performs no runtime work.
|
|
64
244
|
* @since 1.0.0
|
|
65
|
-
* @category
|
|
245
|
+
* @category Type contracts
|
|
66
246
|
*/
|
|
67
247
|
type Services<T> = [T] extends [never] ? never : [T] extends [Fx<infer _A, infer _E, infer _R>] ? _R : never;
|
|
248
|
+
/**
|
|
249
|
+
* An `Fx` whose implementation is obtained from an Effect service.
|
|
250
|
+
*
|
|
251
|
+
* @remarks
|
|
252
|
+
* ## Why
|
|
253
|
+
*
|
|
254
|
+
* Long-lived producers can be selected and replaced through Effect's service graph
|
|
255
|
+
* while remaining directly usable as `Fx<A, E, Self>`.
|
|
256
|
+
*
|
|
257
|
+
* ## Ownership and lifetime
|
|
258
|
+
*
|
|
259
|
+
* The service declaration owns nothing. A layer made with `make` owns the supplied
|
|
260
|
+
* producer for that layer's scope; each run reads the installed service.
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* ```ts
|
|
264
|
+
* import { Fx } from "@typed/fx"
|
|
265
|
+
* import type { Fx as FxModel } from "@typed/fx/Fx"
|
|
266
|
+
*
|
|
267
|
+
* class Ticks extends Fx.Service<Ticks, number>()("app/Ticks") {}
|
|
268
|
+
* const service: FxModel.Service<Ticks, "app/Ticks", number, never> = Ticks
|
|
269
|
+
* ```
|
|
270
|
+
*
|
|
271
|
+
* @since 1.0.0
|
|
272
|
+
* @category Providing services
|
|
273
|
+
*/
|
|
68
274
|
interface Service<Self, Id extends string, A, E> extends Fx<A, E, Self> {
|
|
275
|
+
/**
|
|
276
|
+
* Stable diagnostic identifier used to create the Effect service.
|
|
277
|
+
*
|
|
278
|
+
* @remarks
|
|
279
|
+
* ## Why
|
|
280
|
+
*
|
|
281
|
+
* Keeps the service identity visible to diagnostics and tooling.
|
|
282
|
+
*
|
|
283
|
+
* ## Ownership and lifetime
|
|
284
|
+
*
|
|
285
|
+
* Reading the identifier starts no work and owns no resource.
|
|
286
|
+
*
|
|
287
|
+
* @since 1.0.0
|
|
288
|
+
* @category models
|
|
289
|
+
*/
|
|
69
290
|
readonly id: Id;
|
|
70
|
-
|
|
291
|
+
/**
|
|
292
|
+
* Effect service tag containing the installed producer.
|
|
293
|
+
*
|
|
294
|
+
* @remarks
|
|
295
|
+
* ## Why
|
|
296
|
+
*
|
|
297
|
+
* Exposes the underlying Effect service for direct context and layer composition.
|
|
298
|
+
*
|
|
299
|
+
* ## Ownership and lifetime
|
|
300
|
+
*
|
|
301
|
+
* The tag is inert; the layer that installs its value owns the producer lifetime.
|
|
302
|
+
*
|
|
303
|
+
* @since 1.0.0
|
|
304
|
+
* @category models
|
|
305
|
+
*/
|
|
306
|
+
readonly service: Context.Service<Self, Fx<A, E>>;
|
|
307
|
+
/**
|
|
308
|
+
* Builds a layer from an `Fx`, or from an `Effect` that acquires one.
|
|
309
|
+
*
|
|
310
|
+
* @remarks
|
|
311
|
+
* ## Why
|
|
312
|
+
*
|
|
313
|
+
* Connects producer acquisition directly to Effect's service graph.
|
|
314
|
+
*
|
|
315
|
+
* ## Ownership and lifetime
|
|
316
|
+
*
|
|
317
|
+
* Scope is removed from the layer requirements because layer acquisition supplies
|
|
318
|
+
* it. Other services and typed failures remain visible.
|
|
319
|
+
*
|
|
320
|
+
* @since 1.0.0
|
|
321
|
+
* @category layers
|
|
322
|
+
*/
|
|
71
323
|
readonly make: <R = never>(fx: Fx<A, E, R> | Effect.Effect<Fx<A, E, R>, E, R>) => Layer<Self, E, Exclude<R, Scope.Scope>>;
|
|
72
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* The constructible service class returned by `Fx.Service`.
|
|
327
|
+
*
|
|
328
|
+
* @remarks
|
|
329
|
+
* ## Why
|
|
330
|
+
*
|
|
331
|
+
* A single value can act as the service tag, the service-backed `Fx`, and the owner
|
|
332
|
+
* of its [Layer](https://effect.website/docs/v4/api/effect/Layer) constructor,
|
|
333
|
+
* matching Effect's class-based service ergonomics.
|
|
334
|
+
*
|
|
335
|
+
* ## Ownership and lifetime
|
|
336
|
+
*
|
|
337
|
+
* Constructing the class returns the class value and starts no producer. Installed
|
|
338
|
+
* layer scopes own actual implementations.
|
|
339
|
+
*
|
|
340
|
+
* @example
|
|
341
|
+
* ```ts
|
|
342
|
+
* import { Fx } from "@typed/fx"
|
|
343
|
+
* import type { Fx as FxModel } from "@typed/fx/Fx"
|
|
344
|
+
*
|
|
345
|
+
* class Ticks extends Fx.Service<Ticks, number>()("app/Ticks") {}
|
|
346
|
+
* const definition: FxModel.Class<Ticks, "app/Ticks", number, never> = Ticks
|
|
347
|
+
* ```
|
|
348
|
+
*
|
|
349
|
+
* @since 1.0.0
|
|
350
|
+
* @category models
|
|
351
|
+
*/
|
|
73
352
|
interface Class<Self, Id extends string, A, E> extends Service<Self, Id, A, E> {
|
|
353
|
+
/**
|
|
354
|
+
* Returns the service class as its service-backed `Fx` value.
|
|
355
|
+
*
|
|
356
|
+
* @remarks
|
|
357
|
+
* ## Why
|
|
358
|
+
*
|
|
359
|
+
* Supports Effect's class-as-tag ergonomics without allocating wrapper instances.
|
|
360
|
+
*
|
|
361
|
+
* ## Ownership and lifetime
|
|
362
|
+
*
|
|
363
|
+
* Construction starts no producer. The installed layer owns the implementation.
|
|
364
|
+
*
|
|
365
|
+
* @since 1.0.0
|
|
366
|
+
* @category constructors
|
|
367
|
+
*/
|
|
74
368
|
new (): Service<Self, Id, A, E>;
|
|
75
369
|
}
|
|
76
370
|
}
|
|
77
371
|
/**
|
|
78
|
-
*
|
|
372
|
+
* Alias of `Fx.Success` for extracting an `Fx` value channel.
|
|
373
|
+
*
|
|
374
|
+
* @remarks
|
|
375
|
+
* ## Why
|
|
376
|
+
*
|
|
377
|
+
* The top-level alias supports type-only imports without requiring namespace syntax.
|
|
378
|
+
*
|
|
379
|
+
* ## Ownership and lifetime
|
|
380
|
+
*
|
|
381
|
+
* This type alias performs no runtime work.
|
|
79
382
|
* @since 1.0.0
|
|
80
|
-
* @category
|
|
383
|
+
* @category Type contracts
|
|
81
384
|
*/
|
|
82
385
|
export type Success<T> = Fx.Success<T>;
|
|
83
386
|
/**
|
|
84
|
-
*
|
|
387
|
+
* Alias of `Fx.Error` for extracting an `Fx` error channel.
|
|
388
|
+
*
|
|
389
|
+
* @remarks
|
|
390
|
+
* ## Why
|
|
391
|
+
*
|
|
392
|
+
* The top-level alias supports type-only imports without requiring namespace syntax.
|
|
393
|
+
*
|
|
394
|
+
* ## Ownership and lifetime
|
|
395
|
+
*
|
|
396
|
+
* This type alias performs no runtime work.
|
|
85
397
|
* @since 1.0.0
|
|
86
|
-
* @category
|
|
398
|
+
* @category Type contracts
|
|
87
399
|
*/
|
|
88
400
|
export type Error<T> = Fx.Error<T>;
|
|
89
401
|
/**
|
|
90
|
-
*
|
|
402
|
+
* Alias of `Fx.Services` for extracting an `Fx` service channel.
|
|
403
|
+
*
|
|
404
|
+
* @remarks
|
|
405
|
+
* ## Why
|
|
406
|
+
*
|
|
407
|
+
* The top-level alias supports type-only imports without requiring namespace syntax.
|
|
408
|
+
*
|
|
409
|
+
* ## Ownership and lifetime
|
|
410
|
+
*
|
|
411
|
+
* This type alias performs no runtime work.
|
|
91
412
|
* @since 1.0.0
|
|
92
|
-
* @category
|
|
413
|
+
* @category Type contracts
|
|
93
414
|
*/
|
|
94
415
|
export type Services<T> = Fx.Services<T>;
|
|
416
|
+
/**
|
|
417
|
+
* Defines an Effect service whose value is also a directly runnable `Fx`.
|
|
418
|
+
*
|
|
419
|
+
* @remarks
|
|
420
|
+
* ## Why
|
|
421
|
+
*
|
|
422
|
+
* Applications often need a producer selected by the Effect environment: a clock,
|
|
423
|
+
* event source, transport, or domain feed. `Service` keeps that dependency in `R`
|
|
424
|
+
* and provides the corresponding layer constructor without a parallel wrapper API.
|
|
425
|
+
*
|
|
426
|
+
* ## Ownership and lifetime
|
|
427
|
+
*
|
|
428
|
+
* Defining the class starts no work. `Class.make` acquires the producer when its layer
|
|
429
|
+
* is built, supplies the acquisition context to it, and binds its lifetime to the
|
|
430
|
+
* layer scope. Running the class reads the currently installed implementation.
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```ts
|
|
434
|
+
* import { Effect, Layer } from "effect"
|
|
435
|
+
* import { Fx } from "@typed/fx"
|
|
436
|
+
*
|
|
437
|
+
* class Ticks extends Fx.Service<Ticks, number>()("app/Ticks") {}
|
|
438
|
+
*
|
|
439
|
+
* const TicksLive = Ticks.make(Fx.succeed(1))
|
|
440
|
+
* const values = Fx.collectAll(Ticks).pipe(Effect.provide(TicksLive))
|
|
441
|
+
* const program = Effect.map(values, (items) => items[0])
|
|
442
|
+
* ```
|
|
443
|
+
*
|
|
444
|
+
* @since 1.0.0
|
|
445
|
+
* @category Providing services
|
|
446
|
+
*/
|
|
95
447
|
export declare function Service<Self, A, E = never>(): <const Id extends string>(id: Id) => Fx.Class<Self, Id, A, E>;
|
|
96
448
|
//# sourceMappingURL=Fx.d.ts.map
|
package/dist/Fx/Fx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fx.d.ts","sourceRoot":"","sources":["../../src/Fx/Fx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Fx.d.ts","sourceRoot":"","sources":["../../src/Fx/Fx.ts"],"names":[],"mappings":"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"}
|