@typed/fx 2.0.0-beta.0 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +58 -21
- package/dist/Fx/Fx.d.ts +371 -19
- package/dist/Fx/Fx.d.ts.map +1 -1
- package/dist/Fx/Fx.js +37 -6
- package/dist/Fx/TypeId.d.ts +52 -6
- package/dist/Fx/TypeId.d.ts.map +1 -1
- package/dist/Fx/TypeId.js +41 -4
- package/dist/Fx/combinators/additive.d.ts +245 -0
- package/dist/Fx/combinators/additive.d.ts.map +1 -0
- package/dist/Fx/combinators/additive.js +243 -0
- package/dist/Fx/combinators/catch.d.ts +246 -12
- package/dist/Fx/combinators/catch.d.ts.map +1 -1
- package/dist/Fx/combinators/catch.js +236 -12
- package/dist/Fx/combinators/causes.d.ts +25 -2
- package/dist/Fx/combinators/causes.d.ts.map +1 -1
- package/dist/Fx/combinators/causes.js +25 -2
- package/dist/Fx/combinators/changesWithEffect.d.ts +40 -0
- package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -0
- package/dist/Fx/combinators/changesWithEffect.js +48 -0
- package/dist/Fx/combinators/compact.d.ts +18 -1
- package/dist/Fx/combinators/compact.d.ts.map +1 -1
- package/dist/Fx/combinators/compact.js +18 -1
- package/dist/Fx/combinators/concatMap.d.ts +86 -0
- package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
- package/dist/Fx/combinators/concatMap.js +86 -0
- package/dist/Fx/combinators/continueWith.d.ts +113 -5
- package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
- package/dist/Fx/combinators/continueWith.js +113 -5
- package/dist/Fx/combinators/debounce.d.ts +34 -0
- package/dist/Fx/combinators/debounce.d.ts.map +1 -0
- package/dist/Fx/combinators/debounce.js +35 -0
- package/dist/Fx/combinators/delay.d.ts +36 -0
- package/dist/Fx/combinators/delay.d.ts.map +1 -0
- package/dist/Fx/combinators/delay.js +33 -0
- package/dist/Fx/combinators/dropUntil.d.ts +71 -0
- package/dist/Fx/combinators/dropUntil.d.ts.map +1 -0
- package/dist/Fx/combinators/dropUntil.js +65 -0
- package/dist/Fx/combinators/during.d.ts +38 -0
- package/dist/Fx/combinators/during.d.ts.map +1 -0
- package/dist/Fx/combinators/during.js +85 -0
- package/dist/Fx/combinators/ensuring.d.ts +34 -4
- package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
- package/dist/Fx/combinators/ensuring.js +34 -4
- package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
- package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
- package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
- package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMap.js +38 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
- package/dist/Fx/combinators/exit.d.ts +23 -2
- package/dist/Fx/combinators/exit.d.ts.map +1 -1
- package/dist/Fx/combinators/exit.js +23 -2
- package/dist/Fx/combinators/filter.d.ts +17 -1
- package/dist/Fx/combinators/filter.d.ts.map +1 -1
- package/dist/Fx/combinators/filter.js +17 -1
- package/dist/Fx/combinators/filterEffect.d.ts +22 -1
- package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterEffect.js +22 -1
- package/dist/Fx/combinators/filterMap.d.ts +20 -1
- package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMap.js +20 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoop.js +20 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
- package/dist/Fx/combinators/flatMap.d.ts +50 -5
- package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMap.js +36 -3
- package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
- package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrently.js +51 -4
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
- package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
- package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapEffect.js +32 -2
- package/dist/Fx/combinators/flip.d.ts +34 -2
- package/dist/Fx/combinators/flip.d.ts.map +1 -1
- package/dist/Fx/combinators/flip.js +34 -2
- package/dist/Fx/combinators/gen.d.ts +29 -10
- package/dist/Fx/combinators/gen.d.ts.map +1 -1
- package/dist/Fx/combinators/gen.js +28 -4
- package/dist/Fx/combinators/genScoped.d.ts +33 -10
- package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/genScoped.js +31 -3
- package/dist/Fx/combinators/grouped.d.ts +89 -0
- package/dist/Fx/combinators/grouped.d.ts.map +1 -0
- package/dist/Fx/combinators/grouped.js +146 -0
- package/dist/Fx/combinators/index.d.ts +45 -0
- package/dist/Fx/combinators/index.d.ts.map +1 -1
- package/dist/Fx/combinators/index.js +45 -0
- package/dist/Fx/combinators/keyed.d.ts +124 -10
- package/dist/Fx/combinators/keyed.d.ts.map +1 -1
- package/dist/Fx/combinators/keyed.js +69 -11
- package/dist/Fx/combinators/loop.d.ts +17 -1
- package/dist/Fx/combinators/loop.d.ts.map +1 -1
- package/dist/Fx/combinators/loop.js +17 -1
- package/dist/Fx/combinators/loopCause.d.ts +18 -1
- package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCause.js +18 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCauseEffect.js +19 -1
- package/dist/Fx/combinators/loopEffect.d.ts +24 -1
- package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopEffect.js +24 -1
- package/dist/Fx/combinators/map.d.ts +46 -1
- package/dist/Fx/combinators/map.d.ts.map +1 -1
- package/dist/Fx/combinators/map.js +43 -1
- package/dist/Fx/combinators/mapBoth.d.ts +40 -0
- package/dist/Fx/combinators/mapBoth.d.ts.map +1 -0
- package/dist/Fx/combinators/mapBoth.js +33 -0
- package/dist/Fx/combinators/mapEffect.d.ts +25 -1
- package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/mapEffect.js +25 -1
- package/dist/Fx/combinators/mapError.d.ts +33 -0
- package/dist/Fx/combinators/mapError.d.ts.map +1 -0
- package/dist/Fx/combinators/mapError.js +32 -0
- package/dist/Fx/combinators/mergeAll.d.ts +35 -1
- package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeAll.js +35 -1
- package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
- package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeOrdered.js +68 -14
- package/dist/Fx/combinators/onError.d.ts +34 -4
- package/dist/Fx/combinators/onError.d.ts.map +1 -1
- package/dist/Fx/combinators/onError.js +34 -4
- package/dist/Fx/combinators/onExit.d.ts +29 -3
- package/dist/Fx/combinators/onExit.d.ts.map +1 -1
- package/dist/Fx/combinators/onExit.js +29 -3
- package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
- package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
- package/dist/Fx/combinators/onInterrupt.js +49 -4
- package/dist/Fx/combinators/pairwise.d.ts +28 -0
- package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
- package/dist/Fx/combinators/pairwise.js +31 -0
- package/dist/Fx/combinators/provide.d.ts +162 -8
- package/dist/Fx/combinators/provide.d.ts.map +1 -1
- package/dist/Fx/combinators/provide.js +154 -6
- package/dist/Fx/combinators/race.d.ts +92 -0
- package/dist/Fx/combinators/race.d.ts.map +1 -0
- package/dist/Fx/combinators/race.js +149 -0
- package/dist/Fx/combinators/repeat.d.ts +41 -0
- package/dist/Fx/combinators/repeat.d.ts.map +1 -0
- package/dist/Fx/combinators/repeat.js +57 -0
- package/dist/Fx/combinators/result.d.ts +45 -0
- package/dist/Fx/combinators/result.d.ts.map +1 -0
- package/dist/Fx/combinators/result.js +46 -0
- package/dist/Fx/combinators/retry.d.ts +53 -0
- package/dist/Fx/combinators/retry.d.ts.map +1 -0
- package/dist/Fx/combinators/retry.js +71 -0
- package/dist/Fx/combinators/sample.d.ts +31 -0
- package/dist/Fx/combinators/sample.d.ts.map +1 -0
- package/dist/Fx/combinators/sample.js +42 -0
- package/dist/Fx/combinators/scan.d.ts +72 -0
- package/dist/Fx/combinators/scan.d.ts.map +1 -0
- package/dist/Fx/combinators/scan.js +77 -0
- package/dist/Fx/combinators/since.d.ts +30 -0
- package/dist/Fx/combinators/since.d.ts.map +1 -0
- package/dist/Fx/combinators/since.js +39 -0
- package/dist/Fx/combinators/skip.d.ts +45 -1
- package/dist/Fx/combinators/skip.d.ts.map +1 -1
- package/dist/Fx/combinators/skip.js +43 -1
- package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
- package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeats.js +17 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
- package/dist/Fx/combinators/skipWhile.d.ts +117 -0
- package/dist/Fx/combinators/skipWhile.d.ts.map +1 -0
- package/dist/Fx/combinators/skipWhile.js +134 -0
- package/dist/Fx/combinators/slice.d.ts +97 -2
- package/dist/Fx/combinators/slice.d.ts.map +1 -1
- package/dist/Fx/combinators/slice.js +45 -1
- package/dist/Fx/combinators/switchMap.d.ts +39 -1
- package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMap.js +43 -5
- package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
- package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMapEffect.js +38 -1
- package/dist/Fx/combinators/take.d.ts +46 -1
- package/dist/Fx/combinators/take.d.ts.map +1 -1
- package/dist/Fx/combinators/take.js +44 -1
- package/dist/Fx/combinators/takeUntil.d.ts +62 -2
- package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/takeUntil.js +62 -2
- package/dist/Fx/combinators/takeWhile.d.ts +60 -0
- package/dist/Fx/combinators/takeWhile.d.ts.map +1 -0
- package/dist/Fx/combinators/takeWhile.js +54 -0
- package/dist/Fx/combinators/tapEffect.d.ts +17 -1
- package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/tapEffect.js +17 -1
- package/dist/Fx/combinators/throttle.d.ts +79 -0
- package/dist/Fx/combinators/throttle.d.ts.map +1 -0
- package/dist/Fx/combinators/throttle.js +99 -0
- package/dist/Fx/combinators/timeout.d.ts +76 -0
- package/dist/Fx/combinators/timeout.d.ts.map +1 -0
- package/dist/Fx/combinators/timeout.js +110 -0
- package/dist/Fx/combinators/tuple.d.ts +32 -2
- package/dist/Fx/combinators/tuple.d.ts.map +1 -1
- package/dist/Fx/combinators/tuple.js +36 -5
- package/dist/Fx/combinators/until.d.ts +27 -0
- package/dist/Fx/combinators/until.d.ts.map +1 -0
- package/dist/Fx/combinators/until.js +56 -0
- package/dist/Fx/combinators/unwrap.d.ts +31 -2
- package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrap.js +30 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrapScoped.js +34 -1
- package/dist/Fx/combinators/when.d.ts +37 -2
- package/dist/Fx/combinators/when.d.ts.map +1 -1
- package/dist/Fx/combinators/when.js +38 -3
- package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
- package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
- package/dist/Fx/combinators/withLatestFrom.js +68 -0
- package/dist/Fx/combinators/withSpan.d.ts +35 -1
- package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
- package/dist/Fx/combinators/withSpan.js +34 -3
- package/dist/Fx/combinators/zip.d.ts +135 -0
- package/dist/Fx/combinators/zip.d.ts.map +1 -0
- package/dist/Fx/combinators/zip.js +160 -0
- package/dist/Fx/constructors/at.d.ts +23 -3
- package/dist/Fx/constructors/at.d.ts.map +1 -1
- package/dist/Fx/constructors/at.js +21 -1
- package/dist/Fx/constructors/die.d.ts +22 -1
- package/dist/Fx/constructors/die.d.ts.map +1 -1
- package/dist/Fx/constructors/die.js +22 -1
- package/dist/Fx/constructors/empty.d.ts +19 -1
- package/dist/Fx/constructors/empty.d.ts.map +1 -1
- package/dist/Fx/constructors/empty.js +19 -1
- package/dist/Fx/constructors/fail.d.ts +22 -1
- package/dist/Fx/constructors/fail.d.ts.map +1 -1
- package/dist/Fx/constructors/fail.js +22 -1
- package/dist/Fx/constructors/failCause.d.ts +23 -1
- package/dist/Fx/constructors/failCause.d.ts.map +1 -1
- package/dist/Fx/constructors/failCause.js +23 -1
- package/dist/Fx/constructors/fn.d.ts +116 -16
- package/dist/Fx/constructors/fn.d.ts.map +1 -1
- package/dist/Fx/constructors/fn.js +36 -0
- package/dist/Fx/constructors/fromEffect.d.ts +45 -3
- package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
- package/dist/Fx/constructors/fromEffect.js +45 -3
- package/dist/Fx/constructors/fromFailures.d.ts +25 -1
- package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
- package/dist/Fx/constructors/fromFailures.js +25 -1
- package/dist/Fx/constructors/fromIterable.d.ts +23 -1
- package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
- package/dist/Fx/constructors/fromIterable.js +23 -1
- package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
- package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
- package/dist/Fx/constructors/fromSchedule.js +28 -3
- package/dist/Fx/constructors/index.d.ts +2 -1
- package/dist/Fx/constructors/index.d.ts.map +1 -1
- package/dist/Fx/constructors/index.js +2 -1
- package/dist/Fx/constructors/interrupt.d.ts +22 -2
- package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
- package/dist/Fx/constructors/interrupt.js +22 -2
- package/dist/Fx/constructors/make.d.ts +151 -4
- package/dist/Fx/constructors/make.d.ts.map +1 -1
- package/dist/Fx/constructors/make.js +60 -7
- package/dist/Fx/constructors/periodic.d.ts +31 -2
- package/dist/Fx/constructors/periodic.d.ts.map +1 -1
- package/dist/Fx/constructors/periodic.js +30 -1
- package/dist/Fx/constructors/succeed.d.ts +79 -7
- package/dist/Fx/constructors/succeed.d.ts.map +1 -1
- package/dist/Fx/constructors/succeed.js +79 -7
- package/dist/Fx/constructors/suspend.d.ts +28 -0
- package/dist/Fx/constructors/suspend.d.ts.map +1 -1
- package/dist/Fx/constructors/suspend.js +28 -0
- package/dist/Fx/constructors/sync.d.ts +32 -0
- package/dist/Fx/constructors/sync.d.ts.map +1 -0
- package/dist/Fx/constructors/sync.js +32 -0
- package/dist/Fx/internal/DeferredRef.d.ts +259 -7
- package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
- package/dist/Fx/internal/DeferredRef.js +260 -9
- package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
- package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
- package/dist/Fx/internal/diff.d.ts +586 -0
- package/dist/Fx/internal/diff.d.ts.map +1 -1
- package/dist/Fx/internal/diff.js +120 -9
- package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
- package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
- package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
- package/dist/Fx/internal/effectableWithOverride.js +46 -0
- package/dist/Fx/internal/equivalence.d.ts +29 -0
- package/dist/Fx/internal/equivalence.d.ts.map +1 -1
- package/dist/Fx/internal/equivalence.js +29 -0
- package/dist/Fx/internal/multicast.d.ts +145 -2
- package/dist/Fx/internal/multicast.d.ts.map +1 -1
- package/dist/Fx/internal/multicast.js +146 -4
- package/dist/Fx/internal/ring-buffer.d.ts +149 -0
- package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
- package/dist/Fx/internal/ring-buffer.js +155 -0
- package/dist/Fx/internal/scope.d.ts +184 -0
- package/dist/Fx/internal/scope.d.ts.map +1 -1
- package/dist/Fx/internal/scope.js +150 -0
- package/dist/Fx/internal/yieldable.d.ts +117 -2
- package/dist/Fx/internal/yieldable.d.ts.map +1 -1
- package/dist/Fx/internal/yieldable.js +86 -3
- package/dist/Fx/run/collect.d.ts +93 -4
- package/dist/Fx/run/collect.d.ts.map +1 -1
- package/dist/Fx/run/collect.js +94 -5
- package/dist/Fx/run/first.d.ts +23 -1
- package/dist/Fx/run/first.d.ts.map +1 -1
- package/dist/Fx/run/first.js +23 -1
- package/dist/Fx/run/fork.d.ts +52 -2
- package/dist/Fx/run/fork.d.ts.map +1 -1
- package/dist/Fx/run/fork.js +52 -2
- package/dist/Fx/run/observe.d.ts +112 -4
- package/dist/Fx/run/observe.d.ts.map +1 -1
- package/dist/Fx/run/observe.js +137 -16
- package/dist/Fx/run/runPromise.d.ts +45 -2
- package/dist/Fx/run/runPromise.d.ts.map +1 -1
- package/dist/Fx/run/runPromise.js +45 -2
- package/dist/Fx/stream.d.ts +92 -0
- package/dist/Fx/stream.d.ts.map +1 -1
- package/dist/Fx/stream.js +60 -1
- package/dist/Push/Push.d.ts +1286 -98
- package/dist/Push/Push.d.ts.map +1 -1
- package/dist/Push/Push.js +1074 -88
- package/dist/RefArray.d.ts +2 -0
- package/dist/RefArray.d.ts.map +1 -0
- package/dist/RefArray.js +1 -0
- package/dist/RefBigDecimal.d.ts +2 -0
- package/dist/RefBigDecimal.d.ts.map +1 -0
- package/dist/RefBigDecimal.js +1 -0
- package/dist/RefBigInt.d.ts +2 -0
- package/dist/RefBigInt.d.ts.map +1 -0
- package/dist/RefBigInt.js +1 -0
- package/dist/RefBoolean.d.ts +2 -0
- package/dist/RefBoolean.d.ts.map +1 -0
- package/dist/RefBoolean.js +1 -0
- package/dist/RefCause.d.ts +2 -0
- package/dist/RefCause.d.ts.map +1 -0
- package/dist/RefCause.js +1 -0
- package/dist/RefChunk.d.ts +2 -0
- package/dist/RefChunk.d.ts.map +1 -0
- package/dist/RefChunk.js +1 -0
- package/dist/RefDateTime.d.ts +2 -0
- package/dist/RefDateTime.d.ts.map +1 -0
- package/dist/RefDateTime.js +1 -0
- package/dist/RefDuration.d.ts +2 -0
- package/dist/RefDuration.d.ts.map +1 -0
- package/dist/RefDuration.js +1 -0
- package/dist/RefGraph.d.ts +2 -0
- package/dist/RefGraph.d.ts.map +1 -0
- package/dist/RefGraph.js +1 -0
- package/dist/RefHashMap.d.ts +2 -0
- package/dist/RefHashMap.d.ts.map +1 -0
- package/dist/RefHashMap.js +1 -0
- package/dist/RefHashRing.d.ts +2 -0
- package/dist/RefHashRing.d.ts.map +1 -0
- package/dist/RefHashRing.js +1 -0
- package/dist/RefHashSet.d.ts +2 -0
- package/dist/RefHashSet.d.ts.map +1 -0
- package/dist/RefHashSet.js +1 -0
- package/dist/RefIterable.d.ts +2 -0
- package/dist/RefIterable.d.ts.map +1 -0
- package/dist/RefIterable.js +1 -0
- package/dist/RefOption.d.ts +2 -0
- package/dist/RefOption.d.ts.map +1 -0
- package/dist/RefOption.js +1 -0
- package/dist/RefRecord.d.ts +2 -0
- package/dist/RefRecord.d.ts.map +1 -0
- package/dist/RefRecord.js +1 -0
- package/dist/RefResult.d.ts +2 -0
- package/dist/RefResult.d.ts.map +1 -0
- package/dist/RefResult.js +1 -0
- package/dist/RefString.d.ts +2 -0
- package/dist/RefString.d.ts.map +1 -0
- package/dist/RefString.js +1 -0
- package/dist/RefStruct.d.ts +2 -0
- package/dist/RefStruct.d.ts.map +1 -0
- package/dist/RefStruct.js +1 -0
- package/dist/RefSubject/Hydration.d.ts +504 -0
- package/dist/RefSubject/Hydration.d.ts.map +1 -0
- package/dist/RefSubject/Hydration.js +300 -0
- package/dist/RefSubject/RefArray.d.ts +382 -35
- package/dist/RefSubject/RefArray.d.ts.map +1 -1
- package/dist/RefSubject/RefArray.js +374 -40
- package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
- package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
- package/dist/RefSubject/RefBigDecimal.js +229 -20
- package/dist/RefSubject/RefBigInt.d.ts +181 -16
- package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
- package/dist/RefSubject/RefBigInt.js +169 -15
- package/dist/RefSubject/RefBoolean.d.ts +181 -16
- package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
- package/dist/RefSubject/RefBoolean.js +169 -15
- package/dist/RefSubject/RefCause.d.ts +133 -12
- package/dist/RefSubject/RefCause.d.ts.map +1 -1
- package/dist/RefSubject/RefCause.js +121 -11
- package/dist/RefSubject/RefChunk.d.ts +481 -76
- package/dist/RefSubject/RefChunk.d.ts.map +1 -1
- package/dist/RefSubject/RefChunk.js +471 -75
- package/dist/RefSubject/RefDateTime.d.ts +137 -16
- package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
- package/dist/RefSubject/RefDateTime.js +122 -12
- package/dist/RefSubject/RefDuration.d.ts +169 -15
- package/dist/RefSubject/RefDuration.d.ts.map +1 -1
- package/dist/RefSubject/RefDuration.js +157 -14
- package/dist/RefSubject/RefGraph.d.ts +349 -35
- package/dist/RefSubject/RefGraph.d.ts.map +1 -1
- package/dist/RefSubject/RefGraph.js +334 -32
- package/dist/RefSubject/RefHashMap.d.ts +323 -28
- package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
- package/dist/RefSubject/RefHashMap.js +317 -29
- package/dist/RefSubject/RefHashRing.d.ts +159 -15
- package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
- package/dist/RefSubject/RefHashRing.js +145 -12
- package/dist/RefSubject/RefHashSet.d.ts +251 -22
- package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
- package/dist/RefSubject/RefHashSet.js +238 -20
- package/dist/RefSubject/RefIterable.d.ts +358 -32
- package/dist/RefSubject/RefIterable.d.ts.map +1 -1
- package/dist/RefSubject/RefIterable.js +350 -30
- package/dist/RefSubject/RefOption.d.ts +157 -14
- package/dist/RefSubject/RefOption.d.ts.map +1 -1
- package/dist/RefSubject/RefOption.js +145 -13
- package/dist/RefSubject/RefRecord.d.ts +402 -64
- package/dist/RefSubject/RefRecord.d.ts.map +1 -1
- package/dist/RefSubject/RefRecord.js +364 -39
- package/dist/RefSubject/RefResult.d.ts +167 -35
- package/dist/RefSubject/RefResult.d.ts.map +1 -1
- package/dist/RefSubject/RefResult.js +133 -12
- package/dist/RefSubject/RefString.d.ts +205 -18
- package/dist/RefSubject/RefString.d.ts.map +1 -1
- package/dist/RefSubject/RefString.js +193 -17
- package/dist/RefSubject/RefStruct.d.ts +169 -14
- package/dist/RefSubject/RefStruct.d.ts.map +1 -1
- package/dist/RefSubject/RefStruct.js +157 -13
- package/dist/RefSubject/RefSubject.d.ts +1242 -43
- package/dist/RefSubject/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject/RefSubject.js +1012 -86
- package/dist/RefSubject/RefTrie.d.ts +323 -37
- package/dist/RefSubject/RefTrie.d.ts.map +1 -1
- package/dist/RefSubject/RefTrie.js +311 -31
- package/dist/RefSubject/RefTuple.d.ts +127 -11
- package/dist/RefSubject/RefTuple.d.ts.map +1 -1
- package/dist/RefSubject/RefTuple.js +114 -9
- package/dist/RefSubject/index.d.ts +1 -0
- package/dist/RefSubject/index.d.ts.map +1 -1
- package/dist/RefSubject/index.js +1 -0
- package/dist/RefSubject.d.ts +2 -1
- package/dist/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject.js +2 -1
- package/dist/RefTrie.d.ts +2 -0
- package/dist/RefTrie.d.ts.map +1 -0
- package/dist/RefTrie.js +1 -0
- package/dist/RefTuple.d.ts +2 -0
- package/dist/RefTuple.d.ts.map +1 -0
- package/dist/RefTuple.js +1 -0
- package/dist/Sink/Sink.d.ts +396 -23
- package/dist/Sink/Sink.d.ts.map +1 -1
- package/dist/Sink/Sink.js +55 -7
- package/dist/Sink/combinators.d.ts +789 -3
- package/dist/Sink/combinators.d.ts.map +1 -1
- package/dist/Sink/combinators.js +812 -7
- package/dist/Subject/Subject.d.ts +1022 -27
- package/dist/Subject/Subject.d.ts.map +1 -1
- package/dist/Subject/Subject.js +909 -43
- package/dist/Versioned/Versioned.d.ts +475 -25
- package/dist/Versioned/Versioned.d.ts.map +1 -1
- package/dist/Versioned/Versioned.js +298 -46
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- package/package.json +125 -11
- package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
- package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
- package/dist/Fx/constructors/fromYieldable.js +0 -12
- package/src/Fx/Fx.ts +0 -164
- package/src/Fx/TypeId.ts +0 -25
- package/src/Fx/combinators/catch.ts +0 -165
- package/src/Fx/combinators/causes.ts +0 -23
- package/src/Fx/combinators/compact.ts +0 -15
- package/src/Fx/combinators/continueWith.ts +0 -78
- package/src/Fx/combinators/ensuring.ts +0 -23
- package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
- package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
- package/src/Fx/combinators/exhaustMap.ts +0 -36
- package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
- package/src/Fx/combinators/exit.ts +0 -15
- package/src/Fx/combinators/filter.ts +0 -22
- package/src/Fx/combinators/filterEffect.ts +0 -31
- package/src/Fx/combinators/filterMap.ts +0 -23
- package/src/Fx/combinators/filterMapEffect.ts +0 -32
- package/src/Fx/combinators/filterMapLoop.ts +0 -35
- package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
- package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
- package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
- package/src/Fx/combinators/flatMap.ts +0 -51
- package/src/Fx/combinators/flatMapConcurrently.ts +0 -36
- package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
- package/src/Fx/combinators/flatMapEffect.ts +0 -42
- package/src/Fx/combinators/flip.ts +0 -14
- package/src/Fx/combinators/gen.ts +0 -24
- package/src/Fx/combinators/genScoped.ts +0 -24
- package/src/Fx/combinators/index.ts +0 -51
- package/src/Fx/combinators/keyed.ts +0 -369
- package/src/Fx/combinators/loop.ts +0 -27
- package/src/Fx/combinators/loopCause.ts +0 -34
- package/src/Fx/combinators/loopCauseEffect.ts +0 -36
- package/src/Fx/combinators/loopEffect.ts +0 -34
- package/src/Fx/combinators/map.ts +0 -22
- package/src/Fx/combinators/mapEffect.ts +0 -32
- package/src/Fx/combinators/mergeAll.ts +0 -22
- package/src/Fx/combinators/mergeOrdered.ts +0 -123
- package/src/Fx/combinators/onError.ts +0 -40
- package/src/Fx/combinators/onExit.ts +0 -82
- package/src/Fx/combinators/onInterrupt.ts +0 -87
- package/src/Fx/combinators/provide.ts +0 -62
- package/src/Fx/combinators/skip.ts +0 -20
- package/src/Fx/combinators/skipRepeats.ts +0 -15
- package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
- package/src/Fx/combinators/slice.ts +0 -32
- package/src/Fx/combinators/switchMap.ts +0 -55
- package/src/Fx/combinators/switchMapEffect.ts +0 -25
- package/src/Fx/combinators/take.ts +0 -17
- package/src/Fx/combinators/takeUntil.ts +0 -50
- package/src/Fx/combinators/tapEffect.ts +0 -39
- package/src/Fx/combinators/tuple.ts +0 -79
- package/src/Fx/combinators/unwrap.ts +0 -21
- package/src/Fx/combinators/unwrapScoped.ts +0 -26
- package/src/Fx/combinators/when.ts +0 -64
- package/src/Fx/combinators/withSpan.ts +0 -24
- package/src/Fx/constructors/at.ts +0 -23
- package/src/Fx/constructors/die.ts +0 -17
- package/src/Fx/constructors/empty.ts +0 -10
- package/src/Fx/constructors/fail.ts +0 -14
- package/src/Fx/constructors/failCause.ts +0 -14
- package/src/Fx/constructors/fn.ts +0 -245
- package/src/Fx/constructors/fromEffect.ts +0 -24
- package/src/Fx/constructors/fromFailures.ts +0 -19
- package/src/Fx/constructors/fromIterable.ts +0 -15
- package/src/Fx/constructors/fromSchedule.ts +0 -18
- package/src/Fx/constructors/fromYieldable.ts +0 -17
- package/src/Fx/constructors/index.ts +0 -15
- package/src/Fx/constructors/interrupt.ts +0 -13
- package/src/Fx/constructors/make.ts +0 -103
- package/src/Fx/constructors/periodic.ts +0 -15
- package/src/Fx/constructors/succeed.ts +0 -37
- package/src/Fx/constructors/suspend.ts +0 -6
- package/src/Fx/index.ts +0 -6
- package/src/Fx/internal/DeferredRef.ts +0 -87
- package/src/Fx/internal/UnionToTuple.ts +0 -12
- package/src/Fx/internal/diff.ts +0 -191
- package/src/Fx/internal/equivalence.ts +0 -12
- package/src/Fx/internal/multicast.ts +0 -51
- package/src/Fx/internal/ring-buffer.ts +0 -60
- package/src/Fx/internal/scope.ts +0 -58
- package/src/Fx/internal/yieldable.ts +0 -31
- package/src/Fx/run/collect.ts +0 -79
- package/src/Fx/run/first.ts +0 -20
- package/src/Fx/run/fork.ts +0 -40
- package/src/Fx/run/index.ts +0 -5
- package/src/Fx/run/observe.ts +0 -114
- package/src/Fx/run/runPromise.ts +0 -32
- package/src/Fx/stream.ts +0 -42
- package/src/Fx.catch.test.ts +0 -61
- package/src/Fx.fn.test.ts +0 -51
- package/src/Fx.lifecycle.test.ts +0 -80
- package/src/Fx.test.ts +0 -71
- package/src/Fx.ts +0 -1
- package/src/Push/Push.ts +0 -903
- package/src/Push/index.ts +0 -1
- package/src/Push.test.ts +0 -26
- package/src/Push.ts +0 -1
- package/src/RefSubject/RefArray.ts +0 -512
- package/src/RefSubject/RefBigDecimal.test.ts +0 -56
- package/src/RefSubject/RefBigDecimal.ts +0 -295
- package/src/RefSubject/RefBigInt.test.ts +0 -56
- package/src/RefSubject/RefBigInt.ts +0 -189
- package/src/RefSubject/RefBoolean.test.ts +0 -57
- package/src/RefSubject/RefBoolean.ts +0 -185
- package/src/RefSubject/RefCause.test.ts +0 -53
- package/src/RefSubject/RefCause.ts +0 -146
- package/src/RefSubject/RefChunk.ts +0 -510
- package/src/RefSubject/RefDateTime.test.ts +0 -43
- package/src/RefSubject/RefDateTime.ts +0 -264
- package/src/RefSubject/RefDuration.test.ts +0 -49
- package/src/RefSubject/RefDuration.ts +0 -188
- package/src/RefSubject/RefGraph.ts +0 -650
- package/src/RefSubject/RefHashMap.ts +0 -465
- package/src/RefSubject/RefHashRing.ts +0 -262
- package/src/RefSubject/RefHashSet.ts +0 -308
- package/src/RefSubject/RefIterable.ts +0 -445
- package/src/RefSubject/RefOption.test.ts +0 -67
- package/src/RefSubject/RefOption.ts +0 -193
- package/src/RefSubject/RefRecord.ts +0 -612
- package/src/RefSubject/RefResult.test.ts +0 -63
- package/src/RefSubject/RefResult.ts +0 -209
- package/src/RefSubject/RefString.test.ts +0 -61
- package/src/RefSubject/RefString.ts +0 -256
- package/src/RefSubject/RefStruct.test.ts +0 -60
- package/src/RefSubject/RefStruct.ts +0 -253
- package/src/RefSubject/RefSubject.ts +0 -2545
- package/src/RefSubject/RefTrie.ts +0 -356
- package/src/RefSubject/RefTuple.test.ts +0 -60
- package/src/RefSubject/RefTuple.ts +0 -231
- package/src/RefSubject/index.ts +0 -21
- package/src/RefSubject.test.ts +0 -65
- package/src/RefSubject.ts +0 -1
- package/src/Sink/Sink.ts +0 -159
- package/src/Sink/combinators.ts +0 -993
- package/src/Sink/index.ts +0 -2
- package/src/Sink.ts +0 -1
- package/src/Subject/Subject.ts +0 -441
- package/src/Subject/index.ts +0 -1
- package/src/Subject.test.ts +0 -47
- package/src/Subject.ts +0 -1
- package/src/Versioned/Versioned.ts +0 -521
- package/src/Versioned/index.ts +0 -1
- package/src/Versioned.test.ts +0 -23
- package/src/Versioned.ts +0 -1
- package/src/index.ts +0 -7
- package/tsconfig.json +0 -6
|
@@ -4,12 +4,25 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { equals } from "effect/Equal";
|
|
6
6
|
import { dual } from "effect/Function";
|
|
7
|
+
import * as Option from "effect/Option";
|
|
7
8
|
import * as Trie from "effect/Trie";
|
|
8
9
|
import * as RefSubject from "./RefSubject.js";
|
|
10
|
+
import { Result } from "effect";
|
|
9
11
|
/**
|
|
10
12
|
* Creates a new `RefTrie` from a Trie, `Effect`, or `Fx`.
|
|
13
|
+
* @remarks
|
|
14
|
+
* ## Why
|
|
15
|
+
*
|
|
16
|
+
* Creates trie state with equality suited to that Effect data type, so unchanged values do not
|
|
17
|
+
* produce redundant pushed updates.
|
|
18
|
+
*
|
|
19
|
+
* ## Ownership and lifetime
|
|
20
|
+
*
|
|
21
|
+
* The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
|
|
22
|
+
* and cleanup; source failures and services stay on reads and pushes.
|
|
23
|
+
*
|
|
11
24
|
* @since 1.18.0
|
|
12
|
-
* @category
|
|
25
|
+
* @category Constructors
|
|
13
26
|
*/
|
|
14
27
|
export function make(initial) {
|
|
15
28
|
return RefSubject.make(initial, { eq: equals });
|
|
@@ -19,171 +32,427 @@ export function make(initial) {
|
|
|
19
32
|
// ========================================
|
|
20
33
|
/**
|
|
21
34
|
* Insert a key-value pair into the Trie.
|
|
35
|
+
* @remarks
|
|
36
|
+
* ## Why
|
|
37
|
+
*
|
|
38
|
+
* Expresses insert as one ordered trie transition; readers never observe the intermediate
|
|
39
|
+
* collection used to build the result.
|
|
40
|
+
*
|
|
41
|
+
* ## Ownership and lifetime
|
|
42
|
+
*
|
|
43
|
+
* Running insert performs one serialized trie transition and resolves with its committed value. It
|
|
44
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
45
|
+
*
|
|
22
46
|
* @since 1.18.0
|
|
23
|
-
* @category
|
|
47
|
+
* @category State updates
|
|
24
48
|
*/
|
|
25
49
|
export const insert = dual(3, function insert(ref, key, value) {
|
|
26
50
|
return RefSubject.update(ref, Trie.insert(key, value));
|
|
27
51
|
});
|
|
28
52
|
/**
|
|
29
53
|
* Insert multiple key-value pairs into the Trie.
|
|
54
|
+
* @remarks
|
|
55
|
+
* ## Why
|
|
56
|
+
*
|
|
57
|
+
* Expresses insert many as one ordered trie transition; readers never observe the intermediate
|
|
58
|
+
* collection used to build the result.
|
|
59
|
+
*
|
|
60
|
+
* ## Ownership and lifetime
|
|
61
|
+
*
|
|
62
|
+
* Running insert many performs one serialized trie transition and resolves with its committed
|
|
63
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
64
|
+
*
|
|
30
65
|
* @since 1.18.0
|
|
31
|
-
* @category
|
|
66
|
+
* @category State updates
|
|
32
67
|
*/
|
|
33
68
|
export const insertMany = dual(2, function insertMany(ref, entries) {
|
|
34
69
|
return RefSubject.update(ref, Trie.insertMany(entries));
|
|
35
70
|
});
|
|
36
71
|
/**
|
|
37
72
|
* Remove a key from the Trie.
|
|
73
|
+
* @remarks
|
|
74
|
+
* ## Why
|
|
75
|
+
*
|
|
76
|
+
* Applies remove to the committed trie value and publishes only the result, preserving its element
|
|
77
|
+
* order and equality rules.
|
|
78
|
+
*
|
|
79
|
+
* ## Ownership and lifetime
|
|
80
|
+
*
|
|
81
|
+
* Running remove performs one serialized trie transition and resolves with its committed value. It
|
|
82
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
83
|
+
*
|
|
38
84
|
* @since 1.18.0
|
|
39
|
-
* @category
|
|
85
|
+
* @category State updates
|
|
40
86
|
*/
|
|
41
87
|
export const remove = dual(2, function remove(ref, key) {
|
|
42
88
|
return RefSubject.update(ref, Trie.remove(key));
|
|
43
89
|
});
|
|
44
90
|
/**
|
|
45
91
|
* Remove multiple keys from the Trie.
|
|
92
|
+
* @remarks
|
|
93
|
+
* ## Why
|
|
94
|
+
*
|
|
95
|
+
* Applies remove many to the committed trie value and publishes only the result, preserving its
|
|
96
|
+
* element order and equality rules.
|
|
97
|
+
*
|
|
98
|
+
* ## Ownership and lifetime
|
|
99
|
+
*
|
|
100
|
+
* Running remove many performs one serialized trie transition and resolves with its committed
|
|
101
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
102
|
+
*
|
|
46
103
|
* @since 1.18.0
|
|
47
|
-
* @category
|
|
104
|
+
* @category State updates
|
|
48
105
|
*/
|
|
49
106
|
export const removeMany = dual(2, function removeMany(ref, keys) {
|
|
50
107
|
return RefSubject.update(ref, Trie.removeMany(keys));
|
|
51
108
|
});
|
|
52
109
|
/**
|
|
53
110
|
* Modify the value at a key if it exists.
|
|
111
|
+
* @remarks
|
|
112
|
+
* ## Why
|
|
113
|
+
*
|
|
114
|
+
* Keeps modify atomic with respect to competing RefSubject writes instead of splitting the read
|
|
115
|
+
* and replacement into separate effects.
|
|
116
|
+
*
|
|
117
|
+
* ## Ownership and lifetime
|
|
118
|
+
*
|
|
119
|
+
* Running modify performs one serialized trie transition and resolves with its committed value. It
|
|
120
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
121
|
+
*
|
|
54
122
|
* @since 1.18.0
|
|
55
|
-
* @category
|
|
123
|
+
* @category State updates
|
|
56
124
|
*/
|
|
57
125
|
export const modify = dual(3, function modify(ref, key, f) {
|
|
58
126
|
return RefSubject.update(ref, Trie.modify(key, f));
|
|
59
127
|
});
|
|
60
128
|
/**
|
|
61
129
|
* Clear all entries from the Trie.
|
|
130
|
+
* @remarks
|
|
131
|
+
* ## Why
|
|
132
|
+
*
|
|
133
|
+
* Applies clear to the committed trie value and publishes only the result, preserving its element
|
|
134
|
+
* order and equality rules.
|
|
135
|
+
*
|
|
136
|
+
* ## Ownership and lifetime
|
|
137
|
+
*
|
|
138
|
+
* Running clear performs one serialized trie transition and resolves with its committed value. It
|
|
139
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
140
|
+
*
|
|
62
141
|
* @since 1.18.0
|
|
63
|
-
* @category
|
|
142
|
+
* @category State updates
|
|
64
143
|
*/
|
|
65
144
|
export const clear = (ref) => RefSubject.update(ref, () => Trie.empty());
|
|
66
145
|
/**
|
|
67
|
-
* Map values
|
|
146
|
+
* Map values into a read-only derived trie.
|
|
147
|
+
* @remarks
|
|
148
|
+
* ## Why
|
|
149
|
+
*
|
|
150
|
+
* Creates a read-only Computed trie whose values are mapped for current reads and every later
|
|
151
|
+
* source push; it does not modify the RefTrie.
|
|
152
|
+
*
|
|
153
|
+
* ## Ownership and lifetime
|
|
154
|
+
*
|
|
155
|
+
* The map view retains no independent state. An Effect read samples the source once; Fx
|
|
156
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
157
|
+
*
|
|
68
158
|
* @since 1.18.0
|
|
69
|
-
* @category
|
|
159
|
+
* @category State updates
|
|
70
160
|
*/
|
|
71
161
|
export const map = dual(2, function map(ref, f) {
|
|
72
|
-
return RefSubject.
|
|
162
|
+
return RefSubject.map(ref, Trie.map(f));
|
|
73
163
|
});
|
|
74
164
|
/**
|
|
75
|
-
* Filter entries
|
|
165
|
+
* Filter entries into a read-only derived trie.
|
|
166
|
+
* @remarks
|
|
167
|
+
* ## Why
|
|
168
|
+
*
|
|
169
|
+
* Creates a read-only Computed trie containing matching entries for current reads and every later
|
|
170
|
+
* source push; it does not modify the RefTrie.
|
|
171
|
+
*
|
|
172
|
+
* ## Ownership and lifetime
|
|
173
|
+
*
|
|
174
|
+
* The filter view retains no independent state. An Effect read samples the source once; Fx
|
|
175
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
176
|
+
*
|
|
76
177
|
* @since 1.18.0
|
|
77
|
-
* @category
|
|
178
|
+
* @category State updates
|
|
78
179
|
*/
|
|
79
180
|
export const filter = dual(2, function filter(ref, predicate) {
|
|
80
|
-
return RefSubject.
|
|
181
|
+
return RefSubject.map(ref, Trie.filter(predicate));
|
|
81
182
|
});
|
|
82
183
|
/**
|
|
83
|
-
* Filter and map entries
|
|
184
|
+
* Filter and map entries into a read-only derived trie.
|
|
185
|
+
* @remarks
|
|
186
|
+
* ## Why
|
|
187
|
+
*
|
|
188
|
+
* Creates a read-only Computed trie that can transform or omit each entry; it leaves the writable
|
|
189
|
+
* source trie unchanged.
|
|
190
|
+
*
|
|
191
|
+
* ## Ownership and lifetime
|
|
192
|
+
*
|
|
193
|
+
* The filter map view retains no independent state. An Effect read samples the source once; Fx
|
|
194
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
195
|
+
*
|
|
84
196
|
* @since 1.18.0
|
|
85
|
-
* @category
|
|
197
|
+
* @category State updates
|
|
86
198
|
*/
|
|
87
199
|
export const filterMap = dual(2, function filterMap(ref, f) {
|
|
88
|
-
return RefSubject.
|
|
200
|
+
return RefSubject.map(ref, Trie.filterMap((value, key) => Option.match(f(value, key), {
|
|
201
|
+
onNone: () => Result.failVoid,
|
|
202
|
+
onSome: (b) => Result.succeed(b),
|
|
203
|
+
})));
|
|
89
204
|
});
|
|
90
205
|
// ========================================
|
|
91
206
|
// Computed
|
|
92
207
|
// ========================================
|
|
93
208
|
/**
|
|
94
209
|
* Compact Option values.
|
|
210
|
+
* @remarks
|
|
211
|
+
* ## Why
|
|
212
|
+
*
|
|
213
|
+
* Creates a read-only Computed trie by removing None values and unwrapping Some values on each
|
|
214
|
+
* source version; the result is never absent as a whole.
|
|
215
|
+
*
|
|
216
|
+
* ## Ownership and lifetime
|
|
217
|
+
*
|
|
218
|
+
* This declaration performs no acquisition and retains no resources. Implementations preserve
|
|
219
|
+
* source errors, services, and lifetime.
|
|
220
|
+
*
|
|
95
221
|
* @since 1.18.0
|
|
96
|
-
* @category
|
|
222
|
+
* @category Derived queries
|
|
97
223
|
*/
|
|
98
224
|
export const compact = (ref) => RefSubject.map(ref, Trie.compact);
|
|
99
225
|
/**
|
|
100
226
|
* Get the current size of the Trie.
|
|
227
|
+
* @remarks
|
|
228
|
+
* ## Why
|
|
229
|
+
*
|
|
230
|
+
* Makes size a live projection of the trie; consumers can sample it now or observe it without
|
|
231
|
+
* copying the source state.
|
|
232
|
+
*
|
|
233
|
+
* ## Ownership and lifetime
|
|
234
|
+
*
|
|
235
|
+
* The size view retains no independent state. An Effect read samples the source once; Fx
|
|
236
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
237
|
+
*
|
|
101
238
|
* @since 1.18.0
|
|
102
|
-
* @category
|
|
239
|
+
* @category Derived queries
|
|
103
240
|
*/
|
|
104
241
|
export const size = (ref) => RefSubject.map(ref, Trie.size);
|
|
105
242
|
/**
|
|
106
243
|
* Check if the Trie is empty.
|
|
244
|
+
* @remarks
|
|
245
|
+
* ## Why
|
|
246
|
+
*
|
|
247
|
+
* Makes is empty a live projection of the trie; consumers can sample it now or observe it without
|
|
248
|
+
* copying the source state.
|
|
249
|
+
*
|
|
250
|
+
* ## Ownership and lifetime
|
|
251
|
+
*
|
|
252
|
+
* The is empty view retains no independent state. An Effect read samples the source once; Fx
|
|
253
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
254
|
+
*
|
|
107
255
|
* @since 1.18.0
|
|
108
|
-
* @category
|
|
256
|
+
* @category State predicates
|
|
109
257
|
*/
|
|
110
258
|
export const isEmpty = (ref) => RefSubject.map(ref, Trie.isEmpty);
|
|
111
259
|
/**
|
|
112
260
|
* Check if the Trie is non-empty.
|
|
261
|
+
* @remarks
|
|
262
|
+
* ## Why
|
|
263
|
+
*
|
|
264
|
+
* Makes is non empty a live projection of the trie; consumers can sample it now or observe it
|
|
265
|
+
* without copying the source state.
|
|
266
|
+
*
|
|
267
|
+
* ## Ownership and lifetime
|
|
268
|
+
*
|
|
269
|
+
* The is non empty view retains no independent state. An Effect read samples the source once; Fx
|
|
270
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
271
|
+
*
|
|
113
272
|
* @since 1.18.0
|
|
114
|
-
* @category
|
|
273
|
+
* @category State predicates
|
|
115
274
|
*/
|
|
116
275
|
export const isNonEmpty = (ref) => RefSubject.map(ref, (t) => !Trie.isEmpty(t));
|
|
117
276
|
/**
|
|
118
277
|
* Check if a key exists in the Trie.
|
|
278
|
+
* @remarks
|
|
279
|
+
* ## Why
|
|
280
|
+
*
|
|
281
|
+
* Makes has a live projection of the trie; consumers can sample it now or observe it without
|
|
282
|
+
* copying the source state.
|
|
283
|
+
*
|
|
284
|
+
* ## Ownership and lifetime
|
|
285
|
+
*
|
|
286
|
+
* The has view retains no independent state. An Effect read samples the source once; Fx
|
|
287
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
288
|
+
*
|
|
119
289
|
* @since 1.18.0
|
|
120
|
-
* @category
|
|
290
|
+
* @category State predicates
|
|
121
291
|
*/
|
|
122
292
|
export const has = dual(2, function has(ref, key) {
|
|
123
293
|
return RefSubject.map(ref, Trie.has(key));
|
|
124
294
|
});
|
|
125
295
|
/**
|
|
126
296
|
* Get all keys from the Trie.
|
|
297
|
+
* @remarks
|
|
298
|
+
* ## Why
|
|
299
|
+
*
|
|
300
|
+
* Projects trie state with keys for both current reads and future pushes, avoiding a second
|
|
301
|
+
* mutable cache of the derived value.
|
|
302
|
+
*
|
|
303
|
+
* ## Ownership and lifetime
|
|
304
|
+
*
|
|
305
|
+
* The keys view retains no independent state. An Effect read samples the source once; Fx
|
|
306
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
307
|
+
*
|
|
127
308
|
* @since 1.18.0
|
|
128
|
-
* @category
|
|
309
|
+
* @category Derived queries
|
|
129
310
|
*/
|
|
130
311
|
export const keys = (ref) => RefSubject.map(ref, (t) => Array.from(Trie.keys(t)));
|
|
131
312
|
/**
|
|
132
313
|
* Get all values from the Trie.
|
|
314
|
+
* @remarks
|
|
315
|
+
* ## Why
|
|
316
|
+
*
|
|
317
|
+
* Projects trie state with values for both current reads and future pushes, avoiding a second
|
|
318
|
+
* mutable cache of the derived value.
|
|
319
|
+
*
|
|
320
|
+
* ## Ownership and lifetime
|
|
321
|
+
*
|
|
322
|
+
* The values view retains no independent state. An Effect read samples the source once; Fx
|
|
323
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
324
|
+
*
|
|
133
325
|
* @since 1.18.0
|
|
134
|
-
* @category
|
|
326
|
+
* @category Derived queries
|
|
135
327
|
*/
|
|
136
328
|
export const values = (ref) => RefSubject.map(ref, (t) => Array.from(Trie.values(t)));
|
|
137
329
|
/**
|
|
138
330
|
* Get all entries from the Trie.
|
|
331
|
+
* @remarks
|
|
332
|
+
* ## Why
|
|
333
|
+
*
|
|
334
|
+
* Projects trie state with entries for both current reads and future pushes, avoiding a second
|
|
335
|
+
* mutable cache of the derived value.
|
|
336
|
+
*
|
|
337
|
+
* ## Ownership and lifetime
|
|
338
|
+
*
|
|
339
|
+
* The entries view retains no independent state. An Effect read samples the source once; Fx
|
|
340
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
341
|
+
*
|
|
139
342
|
* @since 1.18.0
|
|
140
|
-
* @category
|
|
343
|
+
* @category Derived queries
|
|
141
344
|
*/
|
|
142
345
|
export const entries = (ref) => RefSubject.map(ref, Trie.toEntries);
|
|
143
346
|
/**
|
|
144
347
|
* Get all keys with a given prefix.
|
|
348
|
+
* @remarks
|
|
349
|
+
* ## Why
|
|
350
|
+
*
|
|
351
|
+
* Projects trie state with keys with prefix for both current reads and future pushes, avoiding a
|
|
352
|
+
* second mutable cache of the derived value.
|
|
353
|
+
*
|
|
354
|
+
* ## Ownership and lifetime
|
|
355
|
+
*
|
|
356
|
+
* The keys with prefix view retains no independent state. An Effect read samples the source once;
|
|
357
|
+
* Fx observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
358
|
+
*
|
|
145
359
|
* @since 1.18.0
|
|
146
|
-
* @category
|
|
360
|
+
* @category Derived queries
|
|
147
361
|
*/
|
|
148
362
|
export const keysWithPrefix = dual(2, function keysWithPrefix(ref, prefix) {
|
|
149
363
|
return RefSubject.map(ref, (t) => Array.from(Trie.keysWithPrefix(t, prefix)));
|
|
150
364
|
});
|
|
151
365
|
/**
|
|
152
366
|
* Get all values with a given prefix.
|
|
367
|
+
* @remarks
|
|
368
|
+
* ## Why
|
|
369
|
+
*
|
|
370
|
+
* Projects trie state with values with prefix for both current reads and future pushes, avoiding a
|
|
371
|
+
* second mutable cache of the derived value.
|
|
372
|
+
*
|
|
373
|
+
* ## Ownership and lifetime
|
|
374
|
+
*
|
|
375
|
+
* The values with prefix view retains no independent state. An Effect read samples the source
|
|
376
|
+
* once; Fx observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
377
|
+
*
|
|
153
378
|
* @since 1.18.0
|
|
154
|
-
* @category
|
|
379
|
+
* @category Derived queries
|
|
155
380
|
*/
|
|
156
381
|
export const valuesWithPrefix = dual(2, function valuesWithPrefix(ref, prefix) {
|
|
157
382
|
return RefSubject.map(ref, (t) => Array.from(Trie.valuesWithPrefix(t, prefix)));
|
|
158
383
|
});
|
|
159
384
|
/**
|
|
160
385
|
* Get all entries with a given prefix.
|
|
386
|
+
* @remarks
|
|
387
|
+
* ## Why
|
|
388
|
+
*
|
|
389
|
+
* Projects trie state with entries with prefix for both current reads and future pushes, avoiding
|
|
390
|
+
* a second mutable cache of the derived value.
|
|
391
|
+
*
|
|
392
|
+
* ## Ownership and lifetime
|
|
393
|
+
*
|
|
394
|
+
* The entries with prefix view retains no independent state. An Effect read samples the source
|
|
395
|
+
* once; Fx observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
396
|
+
*
|
|
161
397
|
* @since 1.18.0
|
|
162
|
-
* @category
|
|
398
|
+
* @category Derived queries
|
|
163
399
|
*/
|
|
164
400
|
export const entriesWithPrefix = dual(2, function entriesWithPrefix(ref, prefix) {
|
|
165
401
|
return RefSubject.map(ref, Trie.toEntriesWithPrefix(prefix));
|
|
166
402
|
});
|
|
167
403
|
/**
|
|
168
404
|
* Get the longest prefix of a key that exists in the Trie.
|
|
405
|
+
* @remarks
|
|
406
|
+
* ## Why
|
|
407
|
+
*
|
|
408
|
+
* Models a longest-prefix lookup as Filtered state: an absent match fails an Effect read with
|
|
409
|
+
* `NoSuchElementError`, while later pushes can make a match available.
|
|
410
|
+
*
|
|
411
|
+
* ## Ownership and lifetime
|
|
412
|
+
*
|
|
413
|
+
* The longest prefix of view retains no independent state. An Effect read samples the source once;
|
|
414
|
+
* Fx observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
415
|
+
*
|
|
169
416
|
* @since 1.18.0
|
|
170
|
-
* @category
|
|
417
|
+
* @category Derived queries
|
|
171
418
|
*/
|
|
172
419
|
export const longestPrefixOf = dual(2, function longestPrefixOf(ref, key) {
|
|
173
420
|
return RefSubject.map(ref, Trie.longestPrefixOf(key));
|
|
174
421
|
});
|
|
175
422
|
/**
|
|
176
423
|
* Map values to a different type.
|
|
424
|
+
* @remarks
|
|
425
|
+
* ## Why
|
|
426
|
+
*
|
|
427
|
+
* Projects trie state with map values for both current reads and future pushes, avoiding a second
|
|
428
|
+
* mutable cache of the derived value.
|
|
429
|
+
*
|
|
430
|
+
* ## Ownership and lifetime
|
|
431
|
+
*
|
|
432
|
+
* The map values view retains no independent state. An Effect read samples the source once; Fx
|
|
433
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
434
|
+
*
|
|
177
435
|
* @since 1.18.0
|
|
178
|
-
* @category
|
|
436
|
+
* @category Derived queries
|
|
179
437
|
*/
|
|
180
438
|
export const mapValues = dual(2, function mapValues(ref, f) {
|
|
181
439
|
return RefSubject.map(ref, Trie.map(f));
|
|
182
440
|
});
|
|
183
441
|
/**
|
|
184
442
|
* Reduce the entries to a single value.
|
|
443
|
+
* @remarks
|
|
444
|
+
* ## Why
|
|
445
|
+
*
|
|
446
|
+
* Makes reduce a live projection of the trie; consumers can sample it now or observe it without
|
|
447
|
+
* copying the source state.
|
|
448
|
+
*
|
|
449
|
+
* ## Ownership and lifetime
|
|
450
|
+
*
|
|
451
|
+
* The reduce view retains no independent state. An Effect read samples the source once; Fx
|
|
452
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
453
|
+
*
|
|
185
454
|
* @since 1.18.0
|
|
186
|
-
* @category
|
|
455
|
+
* @category Derived queries
|
|
187
456
|
*/
|
|
188
457
|
export const reduce = dual(3, function reduce(ref, b, f) {
|
|
189
458
|
return RefSubject.map(ref, Trie.reduce(b, f));
|
|
@@ -193,8 +462,19 @@ export const reduce = dual(3, function reduce(ref, b, f) {
|
|
|
193
462
|
// ========================================
|
|
194
463
|
/**
|
|
195
464
|
* Get the value at a key as a Filtered.
|
|
465
|
+
* @remarks
|
|
466
|
+
* ## Why
|
|
467
|
+
*
|
|
468
|
+
* Models the possibly absent result of get as Filtered state, so absence stays explicit while
|
|
469
|
+
* later source versions can make a value available.
|
|
470
|
+
*
|
|
471
|
+
* ## Ownership and lifetime
|
|
472
|
+
*
|
|
473
|
+
* The get view retains no independent value. Its Effect read fails with NoSuchElement
|
|
474
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
475
|
+
*
|
|
196
476
|
* @since 1.18.0
|
|
197
|
-
* @category
|
|
477
|
+
* @category Optional queries
|
|
198
478
|
*/
|
|
199
479
|
export const get = dual(2, function get(ref, key) {
|
|
200
480
|
return RefSubject.filterMap(ref, Trie.get(key));
|