@typed/fx 2.0.0-beta.1 → 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 +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 +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 +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/dist/Fx/internal/diff.js
CHANGED
|
@@ -1,23 +1,111 @@
|
|
|
1
1
|
import * as Equal from "effect/Equal";
|
|
2
2
|
import { identity } from "effect/Function";
|
|
3
|
+
/** Constructs an immutable `Add` change record.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* Central construction keeps the discriminant and index meaning consistent for diff consumers.
|
|
9
|
+
*
|
|
10
|
+
* ## Ownership and lifetime
|
|
11
|
+
*
|
|
12
|
+
* Allocates one plain object and acquires no services or Scope.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { add } from "@typed/fx/Fx/internal/diff"
|
|
17
|
+
*
|
|
18
|
+
* const patch = add({ id: "a" }, 0, "a")
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
* @category constructors
|
|
23
|
+
* @stability internal-but-published
|
|
24
|
+
*/
|
|
3
25
|
export const add = (value, index, key) => ({
|
|
4
26
|
_tag: "Add",
|
|
5
27
|
index,
|
|
6
28
|
value,
|
|
7
29
|
key,
|
|
8
30
|
});
|
|
31
|
+
/** Constructs an immutable `Remove` change record.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* ## Why
|
|
35
|
+
*
|
|
36
|
+
* Central construction preserves the old-index convention expected by keyed consumers.
|
|
37
|
+
*
|
|
38
|
+
* ## Ownership and lifetime
|
|
39
|
+
*
|
|
40
|
+
* Allocates one plain object and acquires no services or Scope.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { remove } from "@typed/fx/Fx/internal/diff"
|
|
45
|
+
*
|
|
46
|
+
* const patch = remove({ id: "a" }, 0, "a")
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @since 1.0.0
|
|
50
|
+
* @category constructors
|
|
51
|
+
* @stability internal-but-published
|
|
52
|
+
*/
|
|
9
53
|
export const remove = (value, index, key) => ({
|
|
10
54
|
_tag: "Remove",
|
|
11
55
|
index,
|
|
12
56
|
value,
|
|
13
57
|
key,
|
|
14
58
|
});
|
|
59
|
+
/** Constructs an immutable `Update` change record.
|
|
60
|
+
*
|
|
61
|
+
* @remarks
|
|
62
|
+
* ## Why
|
|
63
|
+
*
|
|
64
|
+
* Central construction preserves the shared-index convention expected by keyed consumers.
|
|
65
|
+
*
|
|
66
|
+
* ## Ownership and lifetime
|
|
67
|
+
*
|
|
68
|
+
* Allocates one plain object and acquires no services or Scope.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { update } from "@typed/fx/Fx/internal/diff"
|
|
73
|
+
*
|
|
74
|
+
* const patch = update({ id: "a", value: 2 }, 0, "a")
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @since 1.0.0
|
|
78
|
+
* @category constructors
|
|
79
|
+
* @stability internal-but-published
|
|
80
|
+
*/
|
|
15
81
|
export const update = (value, index, key) => ({
|
|
16
82
|
_tag: "Update",
|
|
17
83
|
index,
|
|
18
84
|
value,
|
|
19
85
|
key,
|
|
20
86
|
});
|
|
87
|
+
/** Constructs an immutable `Moved` change record.
|
|
88
|
+
*
|
|
89
|
+
* @remarks
|
|
90
|
+
* ## Why
|
|
91
|
+
*
|
|
92
|
+
* Central construction keeps source and destination index meanings explicit.
|
|
93
|
+
*
|
|
94
|
+
* ## Ownership and lifetime
|
|
95
|
+
*
|
|
96
|
+
* Allocates one plain object and acquires no services or Scope.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```ts
|
|
100
|
+
* import { moved } from "@typed/fx/Fx/internal/diff"
|
|
101
|
+
*
|
|
102
|
+
* const patch = moved({ id: "a" }, 0, 1, "a")
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @since 1.0.0
|
|
106
|
+
* @category constructors
|
|
107
|
+
* @stability internal-but-published
|
|
108
|
+
*/
|
|
21
109
|
export const moved = (value, from, to, key) => ({
|
|
22
110
|
_tag: "Moved",
|
|
23
111
|
index: from,
|
|
@@ -91,16 +179,39 @@ export function* diffIterator(a, b, options = {}) {
|
|
|
91
179
|
}
|
|
92
180
|
}
|
|
93
181
|
}
|
|
94
|
-
|
|
182
|
+
/** Builds a map from each extracted key to its current array index.
|
|
183
|
+
*
|
|
184
|
+
* @remarks
|
|
185
|
+
* ## Why
|
|
186
|
+
*
|
|
187
|
+
* Exposing map construction lets repeated diff callers cache the previous array's index and avoid
|
|
188
|
+
* re-extracting those keys on the next transition.
|
|
189
|
+
*
|
|
190
|
+
* ## Ownership and lifetime
|
|
191
|
+
*
|
|
192
|
+
* The returned map is newly allocated and retains each key until released. The input array is read
|
|
193
|
+
* once and not retained by the map. Duplicate keys are not rejected: the last occurrence wins, so
|
|
194
|
+
* callers that require an unambiguous diff must validate uniqueness separately.
|
|
195
|
+
*
|
|
196
|
+
* The operation is O(n) time and O(n) space, plus the cost of `getKey` and Map hashing.
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```ts
|
|
200
|
+
* import { getKeyMap } from "@typed/fx/Fx/internal/diff"
|
|
201
|
+
*
|
|
202
|
+
* const map = getKeyMap([{ id: "a" }, { id: "b" }], ({ id }) => id)
|
|
203
|
+
* map.get("b") // 1
|
|
204
|
+
* ```
|
|
205
|
+
*
|
|
206
|
+
* @since 1.0.0
|
|
207
|
+
* @category advanced
|
|
208
|
+
* @stability internal-but-published
|
|
209
|
+
*/
|
|
95
210
|
export function getKeyMap(a, getKey) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const len = a.length;
|
|
101
|
-
for (let i = 0; i < len; ++i) {
|
|
102
|
-
keyMap.set(getKey(a[i]), i);
|
|
103
|
-
}
|
|
211
|
+
const keyMap = new Map();
|
|
212
|
+
const len = a.length;
|
|
213
|
+
for (let i = 0; i < len; ++i) {
|
|
214
|
+
keyMap.set(getKey(a[i]), i);
|
|
104
215
|
}
|
|
105
216
|
return keyMap;
|
|
106
217
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** The Effect runtime property key used to evaluate an Effectable value.
|
|
2
|
+
*
|
|
3
|
+
* @remarks
|
|
4
|
+
* ## Why
|
|
5
|
+
*
|
|
6
|
+
* Effect's generator interpreter steps yielded Effectable objects through this property. Typed
|
|
7
|
+
* must use the exact runtime key so its Effect-compatible Fx and state objects evaluate their
|
|
8
|
+
* underlying work rather than returning themselves.
|
|
9
|
+
*
|
|
10
|
+
* ## Ownership and lifetime
|
|
11
|
+
*
|
|
12
|
+
* This is immutable protocol metadata. Reading it acquires no services and retains no resources.
|
|
13
|
+
*
|
|
14
|
+
* The value must remain byte-for-byte aligned with Effect's internal
|
|
15
|
+
* `` `${EffectTypeId}/evaluate` `` key. It is therefore published for advanced implementors but is
|
|
16
|
+
* coupled to Effect runtime internals and may change between prereleases.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { EFFECT_EVALUATE_KEY } from "@typed/fx/Fx/internal/effectableEvaluateKey"
|
|
21
|
+
*
|
|
22
|
+
* EFFECT_EVALUATE_KEY // "~effect/Effect/evaluate"
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
* @category advanced
|
|
27
|
+
* @stability internal-but-published
|
|
28
|
+
*/
|
|
29
|
+
export declare const EFFECT_EVALUATE_KEY: "~effect/Effect/evaluate";
|
|
30
|
+
//# sourceMappingURL=effectableEvaluateKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effectableEvaluateKey.d.ts","sourceRoot":"","sources":["../../../src/Fx/internal/effectableEvaluateKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,mBAAmB,EAAG,yBAAkC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** The Effect runtime property key used to evaluate an Effectable value.
|
|
2
|
+
*
|
|
3
|
+
* @remarks
|
|
4
|
+
* ## Why
|
|
5
|
+
*
|
|
6
|
+
* Effect's generator interpreter steps yielded Effectable objects through this property. Typed
|
|
7
|
+
* must use the exact runtime key so its Effect-compatible Fx and state objects evaluate their
|
|
8
|
+
* underlying work rather than returning themselves.
|
|
9
|
+
*
|
|
10
|
+
* ## Ownership and lifetime
|
|
11
|
+
*
|
|
12
|
+
* This is immutable protocol metadata. Reading it acquires no services and retains no resources.
|
|
13
|
+
*
|
|
14
|
+
* The value must remain byte-for-byte aligned with Effect's internal
|
|
15
|
+
* `` `${EffectTypeId}/evaluate` `` key. It is therefore published for advanced implementors but is
|
|
16
|
+
* coupled to Effect runtime internals and may change between prereleases.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { EFFECT_EVALUATE_KEY } from "@typed/fx/Fx/internal/effectableEvaluateKey"
|
|
21
|
+
*
|
|
22
|
+
* EFFECT_EVALUATE_KEY // "~effect/Effect/evaluate"
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
* @category advanced
|
|
27
|
+
* @stability internal-but-published
|
|
28
|
+
*/
|
|
29
|
+
export const EFFECT_EVALUATE_KEY = "~effect/Effect/evaluate";
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Effectable } from "effect";
|
|
2
|
+
import type * as Effect from "effect/Effect";
|
|
3
|
+
/** Effectable base class whose generator evaluation delegates to an explicit Effect.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* Effect 4's `Effectable.Class` evaluates to the object itself. Typed's yieldable objects instead
|
|
9
|
+
* need `Effect.gen` to execute their `override` Effect. The prototype protocol installed below
|
|
10
|
+
* returns that Effect and avoids recursively yielding the same object.
|
|
11
|
+
*
|
|
12
|
+
* ## Ownership and lifetime
|
|
13
|
+
*
|
|
14
|
+
* The base class owns no fiber or Scope. Subclasses own the Effect assigned to `override` and all
|
|
15
|
+
* resources that Effect acquires. Execution preserves its value, typed error, service, interruption,
|
|
16
|
+
* and finalization channels.
|
|
17
|
+
*
|
|
18
|
+
* This class is a published extension point, but it is coupled to Effect's evaluator protocol and
|
|
19
|
+
* may change between prereleases.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { EffectableWithOverride } from "@typed/fx/Fx/internal/effectableWithOverride"
|
|
24
|
+
* import * as Effect from "effect/Effect"
|
|
25
|
+
*
|
|
26
|
+
* class Answer extends EffectableWithOverride<number> {
|
|
27
|
+
* readonly override = Effect.succeed(42)
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* const value = Effect.runSync(new Answer()) // 42
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
* @category advanced
|
|
35
|
+
* @stability internal-but-published
|
|
36
|
+
*/
|
|
37
|
+
export declare abstract class EffectableWithOverride<A, E = never, R = never> extends Effectable.Class<A, E, R> {
|
|
38
|
+
/** The real Effect executed when this object is yielded or otherwise evaluated by Effect.
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* ## Why
|
|
42
|
+
*
|
|
43
|
+
* Subclasses must return stable work for the lifetime semantics they advertise; the base class
|
|
44
|
+
* neither memoizes nor scopes it.
|
|
45
|
+
*
|
|
46
|
+
* ## Ownership and lifetime
|
|
47
|
+
*
|
|
48
|
+
* The subclass owns this Effect and every resource it acquires; the evaluator only delegates.
|
|
49
|
+
*
|
|
50
|
+
* @since 1.0.0
|
|
51
|
+
* @category effects
|
|
52
|
+
*/
|
|
53
|
+
abstract override: Effect.Effect<A, E, R>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=effectableWithOverride.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effectableWithOverride.d.ts","sourceRoot":"","sources":["../../../src/Fx/internal/effectableWithOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,8BAAsB,sBAAsB,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAE,SAAQ,UAAU,CAAC,KAAK,CAC5F,CAAC,EACD,CAAC,EACD,CAAC,CACF;IACC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Effectable } from "effect";
|
|
2
|
+
import { EFFECT_EVALUATE_KEY } from "./effectableEvaluateKey.js";
|
|
3
|
+
/** Effectable base class whose generator evaluation delegates to an explicit Effect.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* Effect 4's `Effectable.Class` evaluates to the object itself. Typed's yieldable objects instead
|
|
9
|
+
* need `Effect.gen` to execute their `override` Effect. The prototype protocol installed below
|
|
10
|
+
* returns that Effect and avoids recursively yielding the same object.
|
|
11
|
+
*
|
|
12
|
+
* ## Ownership and lifetime
|
|
13
|
+
*
|
|
14
|
+
* The base class owns no fiber or Scope. Subclasses own the Effect assigned to `override` and all
|
|
15
|
+
* resources that Effect acquires. Execution preserves its value, typed error, service, interruption,
|
|
16
|
+
* and finalization channels.
|
|
17
|
+
*
|
|
18
|
+
* This class is a published extension point, but it is coupled to Effect's evaluator protocol and
|
|
19
|
+
* may change between prereleases.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { EffectableWithOverride } from "@typed/fx/Fx/internal/effectableWithOverride"
|
|
24
|
+
* import * as Effect from "effect/Effect"
|
|
25
|
+
*
|
|
26
|
+
* class Answer extends EffectableWithOverride<number> {
|
|
27
|
+
* readonly override = Effect.succeed(42)
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* const value = Effect.runSync(new Answer()) // 42
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
* @category advanced
|
|
35
|
+
* @stability internal-but-published
|
|
36
|
+
*/
|
|
37
|
+
export class EffectableWithOverride extends Effectable.Class {
|
|
38
|
+
}
|
|
39
|
+
// @effect-diagnostics-next-line floatingEffect:off
|
|
40
|
+
Object.defineProperty(EffectableWithOverride.prototype, EFFECT_EVALUATE_KEY, {
|
|
41
|
+
value: function () {
|
|
42
|
+
return this.override;
|
|
43
|
+
},
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true,
|
|
46
|
+
});
|
|
@@ -1,4 +1,33 @@
|
|
|
1
1
|
import * as Equivalence from "effect/Equivalence";
|
|
2
2
|
import type * as Exit from "effect/Exit";
|
|
3
|
+
/** Lifts value equivalence to successes while comparing failure Causes structurally.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* State cells store full `Exit` values. Successful values should follow the caller's domain
|
|
9
|
+
* equivalence, while failures must retain Effect's Cause structure so repeated equivalent failures
|
|
10
|
+
* can be suppressed without collapsing distinct defects, interruptions, or compositions.
|
|
11
|
+
*
|
|
12
|
+
* ## Ownership and lifetime
|
|
13
|
+
*
|
|
14
|
+
* The returned function closes over `A` and acquires no services or Scope. Each comparison is pure;
|
|
15
|
+
* its cost is the cost of `A` for two successes or Effect's structural Cause equality for two
|
|
16
|
+
* failures. A success and failure are always different.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { getExitEquivalence } from "@typed/fx/Fx/internal/equivalence"
|
|
21
|
+
* import * as Equivalence from "effect/Equivalence"
|
|
22
|
+
* import * as Exit from "effect/Exit"
|
|
23
|
+
*
|
|
24
|
+
* const equivalent = getExitEquivalence(Equivalence.Number)
|
|
25
|
+
* equivalent(Exit.succeed(1), Exit.succeed(1)) // true
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category advanced
|
|
30
|
+
* @stability internal-but-published
|
|
31
|
+
*/
|
|
3
32
|
export declare const getExitEquivalence: <E, A>(A: Equivalence.Equivalence<A>) => Equivalence.Equivalence<Exit.Exit<A, E>>;
|
|
4
33
|
//# sourceMappingURL=equivalence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equivalence.d.ts","sourceRoot":"","sources":["../../../src/Fx/internal/equivalence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"equivalence.d.ts","sourceRoot":"","sources":["../../../src/Fx/internal/equivalence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,6CAOlE,CAAC"}
|
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
import { equals } from "effect/Equal";
|
|
2
2
|
import * as Equivalence from "effect/Equivalence";
|
|
3
|
+
/** Lifts value equivalence to successes while comparing failure Causes structurally.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* State cells store full `Exit` values. Successful values should follow the caller's domain
|
|
9
|
+
* equivalence, while failures must retain Effect's Cause structure so repeated equivalent failures
|
|
10
|
+
* can be suppressed without collapsing distinct defects, interruptions, or compositions.
|
|
11
|
+
*
|
|
12
|
+
* ## Ownership and lifetime
|
|
13
|
+
*
|
|
14
|
+
* The returned function closes over `A` and acquires no services or Scope. Each comparison is pure;
|
|
15
|
+
* its cost is the cost of `A` for two successes or Effect's structural Cause equality for two
|
|
16
|
+
* failures. A success and failure are always different.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { getExitEquivalence } from "@typed/fx/Fx/internal/equivalence"
|
|
21
|
+
* import * as Equivalence from "effect/Equivalence"
|
|
22
|
+
* import * as Exit from "effect/Exit"
|
|
23
|
+
*
|
|
24
|
+
* const equivalent = getExitEquivalence(Equivalence.Number)
|
|
25
|
+
* equivalent(Exit.succeed(1), Exit.succeed(1)) // true
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category advanced
|
|
30
|
+
* @stability internal-but-published
|
|
31
|
+
*/
|
|
3
32
|
export const getExitEquivalence = (A) => Equivalence.make((a, b) => {
|
|
4
33
|
if (a._tag === "Failure") {
|
|
5
34
|
return b._tag === "Failure" && equals(a.cause, b.cause);
|
|
@@ -1,10 +1,153 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
|
|
2
|
+
import { EffectableWithOverride } from "./effectableWithOverride.js";
|
|
3
|
+
/** An Effect-compatible wrapper that joins the currently recorded detached execution.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ## Why
|
|
7
|
+
*
|
|
8
|
+
* Some sampled state computations are expensive but may be requested concurrently. The wrapper
|
|
9
|
+
* lets later callers join the same in-flight fiber, preserving one result, typed failure, and Cause
|
|
10
|
+
* for that run. After completion the recorded fiber is cleared and a later call starts fresh work.
|
|
11
|
+
*
|
|
12
|
+
* ## Ownership and lifetime
|
|
13
|
+
*
|
|
14
|
+
* The first caller starts `effect` in a detached fiber using that caller's services. Interrupting a
|
|
15
|
+
* joining caller stops only its wait; the detached computation continues until completion or an
|
|
16
|
+
* explicit `interrupt`. A directly constructed instance has no automatic finalizer. Prefer
|
|
17
|
+
* `makeMulticastEffect` when a Scope should interrupt remaining work.
|
|
18
|
+
*
|
|
19
|
+
* ## Concurrency and interruption
|
|
20
|
+
*
|
|
21
|
+
* Calls made after `_fiber` is recorded join that fiber. Recording uses mutable instance state
|
|
22
|
+
* rather than a semaphore, so this is a low-level primitive whose callers must not assume a stronger
|
|
23
|
+
* atomic-start guarantee than the implementation provides. Completion or explicit interruption
|
|
24
|
+
* clears the matching record; all joiners observe the fiber's exact success, typed error, defect,
|
|
25
|
+
* or interruption.
|
|
26
|
+
*
|
|
27
|
+
* This path is published for advanced state implementations and may change between prereleases.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { MulticastEffect } from "@typed/fx/Fx/internal/multicast"
|
|
32
|
+
* import * as Effect from "effect/Effect"
|
|
33
|
+
*
|
|
34
|
+
* const sharedWhileRunning = new MulticastEffect(Effect.succeed("ready"))
|
|
35
|
+
* const value = Effect.runSync(sharedWhileRunning)
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @since 1.0.0
|
|
39
|
+
* @category advanced
|
|
40
|
+
* @stability internal-but-published
|
|
41
|
+
*/
|
|
42
|
+
export declare class MulticastEffect<A, E, R> extends EffectableWithOverride<A, E, R> {
|
|
3
43
|
private _fiber;
|
|
44
|
+
/** Underlying computation started when no recorded fiber is running.
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* ## Why
|
|
48
|
+
*
|
|
49
|
+
* Keeping the source Effect visible lets advanced implementations inspect or compose the exact
|
|
50
|
+
* work whose in-flight execution is shared.
|
|
51
|
+
*
|
|
52
|
+
* ## Ownership and lifetime
|
|
53
|
+
*
|
|
54
|
+
* The wrapper retains this immutable Effect description; resources begin only when it is run.
|
|
55
|
+
*
|
|
56
|
+
* @since 1.0.0
|
|
57
|
+
* @category effects
|
|
58
|
+
*/
|
|
4
59
|
readonly effect: Effect.Effect<A, E, R>;
|
|
60
|
+
/** Creates a wrapper without attaching its future detached fiber to a Scope.
|
|
61
|
+
*
|
|
62
|
+
* @remarks
|
|
63
|
+
* ## Why
|
|
64
|
+
*
|
|
65
|
+
* Direct construction supports owners such as Versioned that already expose an explicit
|
|
66
|
+
* interruption boundary and do not need acquisition itself to require Scope.
|
|
67
|
+
*
|
|
68
|
+
* ## Ownership and lifetime
|
|
69
|
+
*
|
|
70
|
+
* Construction retains only the Effect description and starts no work. The first evaluation may
|
|
71
|
+
* start a detached fiber, which remains this instance's responsibility until it completes or
|
|
72
|
+
* `interrupt` is run. Use `makeMulticastEffect` when Scope closure should provide that cleanup.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* import { MulticastEffect } from "@typed/fx/Fx/internal/multicast"
|
|
77
|
+
* import * as Effect from "effect/Effect"
|
|
78
|
+
*
|
|
79
|
+
* const shared = new MulticastEffect(Effect.succeed("ready"))
|
|
80
|
+
* const result = Effect.runSync(shared)
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @since 1.0.0
|
|
84
|
+
* @category constructors
|
|
85
|
+
*/
|
|
5
86
|
constructor(effect: Effect.Effect<A, E, R>);
|
|
6
|
-
|
|
87
|
+
/** Effect view that joins the recorded fiber or starts and records a detached one.
|
|
88
|
+
*
|
|
89
|
+
* @remarks
|
|
90
|
+
* ## Why
|
|
91
|
+
*
|
|
92
|
+
* Effect evaluation is the common entry point through which concurrent callers share work.
|
|
93
|
+
*
|
|
94
|
+
* ## Ownership and lifetime
|
|
95
|
+
*
|
|
96
|
+
* A newly started fiber is detached from the joining caller and remains recorded until completion
|
|
97
|
+
* or explicit interruption.
|
|
98
|
+
*
|
|
99
|
+
* @since 1.0.0
|
|
100
|
+
* @category effects
|
|
101
|
+
*/
|
|
102
|
+
readonly override: Effect.Effect<A, E, R>;
|
|
103
|
+
/** Interrupts the currently recorded fiber as the calling fiber and clears the record.
|
|
104
|
+
*
|
|
105
|
+
* @remarks
|
|
106
|
+
* ## Why
|
|
107
|
+
*
|
|
108
|
+
* If no fiber is recorded, the Effect succeeds immediately. Interruption of the child is awaited,
|
|
109
|
+
* and cleanup clears the field even when interruption observation itself is interrupted.
|
|
110
|
+
*
|
|
111
|
+
* ## Ownership and lifetime
|
|
112
|
+
*
|
|
113
|
+
* The Effect owns only this interruption action; it does not prevent a later execution from
|
|
114
|
+
* starting a fresh fiber.
|
|
115
|
+
*
|
|
116
|
+
* @since 1.0.0
|
|
117
|
+
* @category lifecycle
|
|
118
|
+
*/
|
|
7
119
|
interrupt(): Effect.Effect<void, never, never>;
|
|
8
120
|
}
|
|
121
|
+
/** Acquires a scoped `MulticastEffect` whose finalizer interrupts recorded work.
|
|
122
|
+
*
|
|
123
|
+
* @remarks
|
|
124
|
+
* ## Why
|
|
125
|
+
*
|
|
126
|
+
* The scoped constructor makes the detached-fiber lifetime explicit and prevents a computation
|
|
127
|
+
* from surviving the application lifetime that requested sharing.
|
|
128
|
+
*
|
|
129
|
+
* ## Ownership and lifetime
|
|
130
|
+
*
|
|
131
|
+
* Acquisition allocates the wrapper but does not start `effect`. The first execution starts work;
|
|
132
|
+
* closing the required Scope calls `interrupt` and waits for the recorded fiber to terminate. The
|
|
133
|
+
* original effect's `E` and `R` channels are preserved when the wrapper is executed.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* import { makeMulticastEffect } from "@typed/fx/Fx/internal/multicast"
|
|
138
|
+
* import * as Effect from "effect/Effect"
|
|
139
|
+
*
|
|
140
|
+
* const program = Effect.gen(function* () {
|
|
141
|
+
* const shared = yield* makeMulticastEffect(Effect.succeed("ready"))
|
|
142
|
+
* return yield* shared
|
|
143
|
+
* })
|
|
144
|
+
*
|
|
145
|
+
* Effect.runSync(Effect.scoped(program))
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* @since 1.0.0
|
|
149
|
+
* @category constructors
|
|
150
|
+
* @stability internal-but-published
|
|
151
|
+
*/
|
|
9
152
|
export declare const makeMulticastEffect: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<MulticastEffect<A, E, R>, never, import("effect/Scope").Scope>;
|
|
10
153
|
//# sourceMappingURL=multicast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multicast.d.ts","sourceRoot":"","sources":["../../../src/Fx/internal/multicast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"multicast.d.ts","sourceRoot":"","sources":["../../../src/Fx/internal/multicast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,SAAQ,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,MAAM,CAAkC;IAEhD;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YAAY,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAmBzC;IAED;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1C;;;;;;;;;;;;;;;OAeG;IACH,SAAS,sCAYR;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,iFAIxE,CAAC"}
|