@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
|
@@ -3,14 +3,26 @@
|
|
|
3
3
|
* @since 1.18.0
|
|
4
4
|
*/
|
|
5
5
|
import { equals } from "effect/Equal";
|
|
6
|
-
import { dual
|
|
6
|
+
import { dual } from "effect/Function";
|
|
7
7
|
import * as HashMap from "effect/HashMap";
|
|
8
8
|
import * as Option from "effect/Option";
|
|
9
9
|
import * as RefSubject from "./RefSubject.js";
|
|
10
|
+
import { Result } from "effect";
|
|
10
11
|
/**
|
|
11
12
|
* Creates a new `RefHashMap` from a HashMap, `Effect`, or `Fx`.
|
|
13
|
+
* @remarks
|
|
14
|
+
* ## Why
|
|
15
|
+
*
|
|
16
|
+
* Creates hash map 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
|
+
*
|
|
12
24
|
* @since 1.18.0
|
|
13
|
-
* @category
|
|
25
|
+
* @category Constructors
|
|
14
26
|
*/
|
|
15
27
|
export function make(initial) {
|
|
16
28
|
return RefSubject.make(initial, { eq: equals });
|
|
@@ -20,78 +32,186 @@ export function make(initial) {
|
|
|
20
32
|
// ========================================
|
|
21
33
|
/**
|
|
22
34
|
* Set a key-value pair in the RefHashMap.
|
|
35
|
+
* @remarks
|
|
36
|
+
* ## Why
|
|
37
|
+
*
|
|
38
|
+
* Keeps set atomic with respect to competing RefSubject writes instead of splitting the read and
|
|
39
|
+
* replacement into separate effects.
|
|
40
|
+
*
|
|
41
|
+
* ## Ownership and lifetime
|
|
42
|
+
*
|
|
43
|
+
* Running set performs one serialized hash map transition and resolves with its committed value.
|
|
44
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
45
|
+
*
|
|
23
46
|
* @since 1.18.0
|
|
24
|
-
* @category
|
|
47
|
+
* @category State updates
|
|
25
48
|
*/
|
|
26
49
|
export const set = dual(3, function set(ref, key, value) {
|
|
27
50
|
return RefSubject.update(ref, HashMap.set(key, value));
|
|
28
51
|
});
|
|
29
52
|
/**
|
|
30
53
|
* Remove a key from the RefHashMap.
|
|
54
|
+
* @remarks
|
|
55
|
+
* ## Why
|
|
56
|
+
*
|
|
57
|
+
* Applies remove to the committed hash map value and publishes only the result, preserving its
|
|
58
|
+
* element order and equality rules.
|
|
59
|
+
*
|
|
60
|
+
* ## Ownership and lifetime
|
|
61
|
+
*
|
|
62
|
+
* Running remove performs one serialized hash map transition and resolves with its committed
|
|
63
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
64
|
+
*
|
|
31
65
|
* @since 1.18.0
|
|
32
|
-
* @category
|
|
66
|
+
* @category State updates
|
|
33
67
|
*/
|
|
34
68
|
export const remove = dual(2, function remove(ref, key) {
|
|
35
69
|
return RefSubject.update(ref, HashMap.remove(key));
|
|
36
70
|
});
|
|
37
71
|
/**
|
|
38
72
|
* Modify the value at a key if it exists.
|
|
73
|
+
* @remarks
|
|
74
|
+
* ## Why
|
|
75
|
+
*
|
|
76
|
+
* Keeps modify atomic with respect to competing RefSubject writes instead of splitting the read
|
|
77
|
+
* and replacement into separate effects.
|
|
78
|
+
*
|
|
79
|
+
* ## Ownership and lifetime
|
|
80
|
+
*
|
|
81
|
+
* Running modify performs one serialized hash map transition and resolves with its committed
|
|
82
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
83
|
+
*
|
|
39
84
|
* @since 1.18.0
|
|
40
|
-
* @category
|
|
85
|
+
* @category State updates
|
|
41
86
|
*/
|
|
42
87
|
export const modify = dual(3, function modify(ref, key, f) {
|
|
43
88
|
return RefSubject.update(ref, HashMap.modify(key, f));
|
|
44
89
|
});
|
|
45
90
|
/**
|
|
46
91
|
* Modify the value at a key using an Option-based update function.
|
|
92
|
+
* @remarks
|
|
93
|
+
* ## Why
|
|
94
|
+
*
|
|
95
|
+
* Keeps modify at atomic with respect to competing RefSubject writes instead of splitting the read
|
|
96
|
+
* and replacement into separate effects.
|
|
97
|
+
*
|
|
98
|
+
* ## Ownership and lifetime
|
|
99
|
+
*
|
|
100
|
+
* Running modify at performs one serialized hash map transition and resolves with its committed
|
|
101
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
102
|
+
*
|
|
47
103
|
* @since 1.18.0
|
|
48
|
-
* @category
|
|
104
|
+
* @category State updates
|
|
49
105
|
*/
|
|
50
106
|
export const modifyAt = dual(3, function modifyAt(ref, key, f) {
|
|
51
107
|
return RefSubject.update(ref, HashMap.modifyAt(key, f));
|
|
52
108
|
});
|
|
53
109
|
/**
|
|
54
110
|
* Set multiple key-value pairs in the RefHashMap.
|
|
111
|
+
* @remarks
|
|
112
|
+
* ## Why
|
|
113
|
+
*
|
|
114
|
+
* Keeps set many 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 set many performs one serialized hash map transition and resolves with its committed
|
|
120
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
121
|
+
*
|
|
55
122
|
* @since 1.18.0
|
|
56
|
-
* @category
|
|
123
|
+
* @category State updates
|
|
57
124
|
*/
|
|
58
125
|
export const setMany = dual(2, function setMany(ref, entries) {
|
|
59
126
|
return RefSubject.update(ref, HashMap.setMany(entries));
|
|
60
127
|
});
|
|
61
128
|
/**
|
|
62
129
|
* Remove multiple keys from the RefHashMap.
|
|
130
|
+
* @remarks
|
|
131
|
+
* ## Why
|
|
132
|
+
*
|
|
133
|
+
* Applies remove many to the committed hash map value and publishes only the result, preserving
|
|
134
|
+
* its element order and equality rules.
|
|
135
|
+
*
|
|
136
|
+
* ## Ownership and lifetime
|
|
137
|
+
*
|
|
138
|
+
* Running remove many performs one serialized hash map transition and resolves with its committed
|
|
139
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
140
|
+
*
|
|
63
141
|
* @since 1.18.0
|
|
64
|
-
* @category
|
|
142
|
+
* @category State updates
|
|
65
143
|
*/
|
|
66
144
|
export const removeMany = dual(2, function removeMany(ref, keys) {
|
|
67
145
|
return RefSubject.update(ref, HashMap.removeMany(keys));
|
|
68
146
|
});
|
|
69
147
|
/**
|
|
70
148
|
* Clear all entries from the RefHashMap.
|
|
149
|
+
* @remarks
|
|
150
|
+
* ## Why
|
|
151
|
+
*
|
|
152
|
+
* Applies clear to the committed hash map value and publishes only the result, preserving its
|
|
153
|
+
* element order and equality rules.
|
|
154
|
+
*
|
|
155
|
+
* ## Ownership and lifetime
|
|
156
|
+
*
|
|
157
|
+
* Running clear performs one serialized hash map transition and resolves with its committed value.
|
|
158
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
159
|
+
*
|
|
71
160
|
* @since 1.18.0
|
|
72
|
-
* @category
|
|
161
|
+
* @category State updates
|
|
73
162
|
*/
|
|
74
163
|
export const clear = (ref) => RefSubject.update(ref, () => HashMap.empty());
|
|
75
164
|
/**
|
|
76
165
|
* Merge another HashMap into this one.
|
|
166
|
+
* @remarks
|
|
167
|
+
* ## Why
|
|
168
|
+
*
|
|
169
|
+
* Combines bulk hash map changes in one committed value, giving subscribers one coherent update
|
|
170
|
+
* rather than a partially applied sequence.
|
|
171
|
+
*
|
|
172
|
+
* ## Ownership and lifetime
|
|
173
|
+
*
|
|
174
|
+
* Running union performs one serialized hash map transition and resolves with its committed value.
|
|
175
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
176
|
+
*
|
|
77
177
|
* @since 1.18.0
|
|
78
|
-
* @category
|
|
178
|
+
* @category State updates
|
|
79
179
|
*/
|
|
80
180
|
export const union = dual(2, function union(ref, that) {
|
|
81
181
|
return RefSubject.update(ref, HashMap.union(that));
|
|
82
182
|
});
|
|
83
183
|
/**
|
|
84
184
|
* Filter entries in place.
|
|
185
|
+
* @remarks
|
|
186
|
+
* ## Why
|
|
187
|
+
*
|
|
188
|
+
* Applies filter to the committed HashMap through `RefSubject.update` and publishes one coherent
|
|
189
|
+
* replacement; this is a mutation, not a read-only Computed projection.
|
|
190
|
+
*
|
|
191
|
+
* ## Ownership and lifetime
|
|
192
|
+
*
|
|
193
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
194
|
+
* acquires no resource. It returns the committed HashMap and retains the ref's E and R channels.
|
|
85
195
|
* @since 1.18.0
|
|
86
|
-
* @category
|
|
196
|
+
* @category State updates
|
|
87
197
|
*/
|
|
88
198
|
export const filter = dual(2, function filter(ref, predicate) {
|
|
89
199
|
return RefSubject.update(ref, HashMap.filter(predicate));
|
|
90
200
|
});
|
|
91
201
|
/**
|
|
92
202
|
* Map values in place (endomorphic).
|
|
203
|
+
* @remarks
|
|
204
|
+
* ## Why
|
|
205
|
+
*
|
|
206
|
+
* Applies map to the committed HashMap through `RefSubject.update` and publishes one coherent
|
|
207
|
+
* replacement; this is a mutation, not a read-only Computed projection.
|
|
208
|
+
*
|
|
209
|
+
* ## Ownership and lifetime
|
|
210
|
+
*
|
|
211
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
212
|
+
* acquires no resource. It returns the committed HashMap and retains the ref's E and R channels.
|
|
93
213
|
* @since 1.18.0
|
|
94
|
-
* @category
|
|
214
|
+
* @category State updates
|
|
95
215
|
*/
|
|
96
216
|
export const map = dual(2, function map(ref, f) {
|
|
97
217
|
return RefSubject.update(ref, HashMap.map(f));
|
|
@@ -101,92 +221,238 @@ export const map = dual(2, function map(ref, f) {
|
|
|
101
221
|
// ========================================
|
|
102
222
|
/**
|
|
103
223
|
* Get the current size of the RefHashMap.
|
|
224
|
+
* @remarks
|
|
225
|
+
* ## Why
|
|
226
|
+
*
|
|
227
|
+
* Makes size a live projection of the hash map; consumers can sample it now or observe it without
|
|
228
|
+
* copying the source state.
|
|
229
|
+
*
|
|
230
|
+
* ## Ownership and lifetime
|
|
231
|
+
*
|
|
232
|
+
* The size view retains no independent state. An Effect read samples the source once; Fx
|
|
233
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
234
|
+
*
|
|
104
235
|
* @since 1.18.0
|
|
105
|
-
* @category
|
|
236
|
+
* @category Derived queries
|
|
106
237
|
*/
|
|
107
238
|
export const size = (ref) => RefSubject.map(ref, HashMap.size);
|
|
108
239
|
/**
|
|
109
240
|
* Check if the RefHashMap is empty.
|
|
241
|
+
* @remarks
|
|
242
|
+
* ## Why
|
|
243
|
+
*
|
|
244
|
+
* Makes is empty a live projection of the hash map; consumers can sample it now or observe it
|
|
245
|
+
* without copying the source state.
|
|
246
|
+
*
|
|
247
|
+
* ## Ownership and lifetime
|
|
248
|
+
*
|
|
249
|
+
* The is empty view retains no independent state. An Effect read samples the source once; Fx
|
|
250
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
251
|
+
*
|
|
110
252
|
* @since 1.18.0
|
|
111
|
-
* @category
|
|
253
|
+
* @category State predicates
|
|
112
254
|
*/
|
|
113
255
|
export const isEmpty = (ref) => RefSubject.map(ref, HashMap.isEmpty);
|
|
114
256
|
/**
|
|
115
257
|
* Check if the RefHashMap is non-empty.
|
|
258
|
+
* @remarks
|
|
259
|
+
* ## Why
|
|
260
|
+
*
|
|
261
|
+
* Makes is non empty a live projection of the hash map; consumers can sample it now or observe it
|
|
262
|
+
* without copying the source state.
|
|
263
|
+
*
|
|
264
|
+
* ## Ownership and lifetime
|
|
265
|
+
*
|
|
266
|
+
* The is non empty view retains no independent state. An Effect read samples the source once; Fx
|
|
267
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
268
|
+
*
|
|
116
269
|
* @since 1.18.0
|
|
117
|
-
* @category
|
|
270
|
+
* @category State predicates
|
|
118
271
|
*/
|
|
119
272
|
export const isNonEmpty = (ref) => RefSubject.map(ref, (m) => !HashMap.isEmpty(m));
|
|
120
273
|
/**
|
|
121
274
|
* Get all keys from the RefHashMap.
|
|
275
|
+
* @remarks
|
|
276
|
+
* ## Why
|
|
277
|
+
*
|
|
278
|
+
* Projects hash map state with keys for both current reads and future pushes, avoiding a second
|
|
279
|
+
* mutable cache of the derived value.
|
|
280
|
+
*
|
|
281
|
+
* ## Ownership and lifetime
|
|
282
|
+
*
|
|
283
|
+
* The keys view retains no independent state. An Effect read samples the source once; Fx
|
|
284
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
285
|
+
*
|
|
122
286
|
* @since 1.18.0
|
|
123
|
-
* @category
|
|
287
|
+
* @category Derived queries
|
|
124
288
|
*/
|
|
125
289
|
export const keys = (ref) => RefSubject.map(ref, (m) => Array.from(HashMap.keys(m)));
|
|
126
290
|
/**
|
|
127
291
|
* Get all values from the RefHashMap.
|
|
292
|
+
* @remarks
|
|
293
|
+
* ## Why
|
|
294
|
+
*
|
|
295
|
+
* Projects hash map state with values for both current reads and future pushes, avoiding a second
|
|
296
|
+
* mutable cache of the derived value.
|
|
297
|
+
*
|
|
298
|
+
* ## Ownership and lifetime
|
|
299
|
+
*
|
|
300
|
+
* The values view retains no independent state. An Effect read samples the source once; Fx
|
|
301
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
302
|
+
*
|
|
128
303
|
* @since 1.18.0
|
|
129
|
-
* @category
|
|
304
|
+
* @category Derived queries
|
|
130
305
|
*/
|
|
131
306
|
export const values = (ref) => RefSubject.map(ref, HashMap.toValues);
|
|
132
307
|
/**
|
|
133
308
|
* Get all entries from the RefHashMap.
|
|
309
|
+
* @remarks
|
|
310
|
+
* ## Why
|
|
311
|
+
*
|
|
312
|
+
* Projects hash map state with entries for both current reads and future pushes, avoiding a second
|
|
313
|
+
* mutable cache of the derived value.
|
|
314
|
+
*
|
|
315
|
+
* ## Ownership and lifetime
|
|
316
|
+
*
|
|
317
|
+
* The entries view retains no independent state. An Effect read samples the source once; Fx
|
|
318
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
319
|
+
*
|
|
134
320
|
* @since 1.18.0
|
|
135
|
-
* @category
|
|
321
|
+
* @category Derived queries
|
|
136
322
|
*/
|
|
137
323
|
export const entries = (ref) => RefSubject.map(ref, HashMap.toEntries);
|
|
138
324
|
/**
|
|
139
325
|
* Check if a key exists in the RefHashMap.
|
|
326
|
+
* @remarks
|
|
327
|
+
* ## Why
|
|
328
|
+
*
|
|
329
|
+
* Makes has a live projection of the hash map; consumers can sample it now or observe it without
|
|
330
|
+
* copying the source state.
|
|
331
|
+
*
|
|
332
|
+
* ## Ownership and lifetime
|
|
333
|
+
*
|
|
334
|
+
* The has view retains no independent state. An Effect read samples the source once; Fx
|
|
335
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
336
|
+
*
|
|
140
337
|
* @since 1.18.0
|
|
141
|
-
* @category
|
|
338
|
+
* @category State predicates
|
|
142
339
|
*/
|
|
143
340
|
export const has = dual(2, function has(ref, key) {
|
|
144
341
|
return RefSubject.map(ref, HashMap.has(key));
|
|
145
342
|
});
|
|
146
343
|
/**
|
|
147
344
|
* Map values to a different type.
|
|
345
|
+
* @remarks
|
|
346
|
+
* ## Why
|
|
347
|
+
*
|
|
348
|
+
* Projects hash map state with map values for both current reads and future pushes, avoiding a
|
|
349
|
+
* second mutable cache of the derived value.
|
|
350
|
+
*
|
|
351
|
+
* ## Ownership and lifetime
|
|
352
|
+
*
|
|
353
|
+
* The map values view retains no independent state. An Effect read samples the source once; Fx
|
|
354
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
355
|
+
*
|
|
148
356
|
* @since 1.18.0
|
|
149
|
-
* @category
|
|
357
|
+
* @category Derived queries
|
|
150
358
|
*/
|
|
151
359
|
export const mapValues = dual(2, function mapValues(ref, f) {
|
|
152
360
|
return RefSubject.map(ref, HashMap.map(f));
|
|
153
361
|
});
|
|
154
362
|
/**
|
|
155
363
|
* Filter entries creating a Computed value.
|
|
364
|
+
* @remarks
|
|
365
|
+
* ## Why
|
|
366
|
+
*
|
|
367
|
+
* Projects hash map state with filter values for both current reads and future pushes, avoiding a
|
|
368
|
+
* second mutable cache of the derived value.
|
|
369
|
+
*
|
|
370
|
+
* ## Ownership and lifetime
|
|
371
|
+
*
|
|
372
|
+
* The filter values view retains no independent state. An Effect read samples the source once; Fx
|
|
373
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
374
|
+
*
|
|
156
375
|
* @since 1.18.0
|
|
157
|
-
* @category
|
|
376
|
+
* @category Derived queries
|
|
158
377
|
*/
|
|
159
378
|
export const filterValues = dual(2, function filterValues(ref, predicate) {
|
|
160
379
|
return RefSubject.map(ref, HashMap.filter(predicate));
|
|
161
380
|
});
|
|
162
381
|
/**
|
|
163
382
|
* Filter and map values.
|
|
383
|
+
* @remarks
|
|
384
|
+
* ## Why
|
|
385
|
+
*
|
|
386
|
+
* Projects hash map state with filter map values for both current reads and future pushes,
|
|
387
|
+
* avoiding a second mutable cache of the derived value.
|
|
388
|
+
*
|
|
389
|
+
* ## Ownership and lifetime
|
|
390
|
+
*
|
|
391
|
+
* The filter map values view retains no independent state. An Effect read samples the source once;
|
|
392
|
+
* Fx observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
393
|
+
*
|
|
164
394
|
* @since 1.18.0
|
|
165
|
-
* @category
|
|
395
|
+
* @category Derived queries
|
|
166
396
|
*/
|
|
167
397
|
export const filterMapValues = dual(2, function filterMapValues(ref, f) {
|
|
168
|
-
return RefSubject.map(ref, HashMap.filterMap(f)
|
|
398
|
+
return RefSubject.map(ref, HashMap.filterMap((value, key) => Option.match(f(value, key), {
|
|
399
|
+
onNone: () => Result.failVoid,
|
|
400
|
+
onSome: (b) => Result.succeed(b),
|
|
401
|
+
})));
|
|
169
402
|
});
|
|
170
403
|
/**
|
|
171
404
|
* Reduce the entries to a single value.
|
|
405
|
+
* @remarks
|
|
406
|
+
* ## Why
|
|
407
|
+
*
|
|
408
|
+
* Makes reduce a live projection of the hash map; consumers can sample it now or observe it
|
|
409
|
+
* without copying the source state.
|
|
410
|
+
*
|
|
411
|
+
* ## Ownership and lifetime
|
|
412
|
+
*
|
|
413
|
+
* The reduce view retains no independent state. An Effect read samples the source once; Fx
|
|
414
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
415
|
+
*
|
|
172
416
|
* @since 1.18.0
|
|
173
|
-
* @category
|
|
417
|
+
* @category Derived queries
|
|
174
418
|
*/
|
|
175
419
|
export const reduce = dual(3, function reduce(ref, b, f) {
|
|
176
420
|
return RefSubject.map(ref, HashMap.reduce(b, f));
|
|
177
421
|
});
|
|
178
422
|
/**
|
|
179
423
|
* Check if any entry satisfies a predicate.
|
|
424
|
+
* @remarks
|
|
425
|
+
* ## Why
|
|
426
|
+
*
|
|
427
|
+
* Makes some a live projection of the hash map; consumers can sample it now or observe it without
|
|
428
|
+
* copying the source state.
|
|
429
|
+
*
|
|
430
|
+
* ## Ownership and lifetime
|
|
431
|
+
*
|
|
432
|
+
* The some 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
|
+
*
|
|
180
435
|
* @since 1.18.0
|
|
181
|
-
* @category
|
|
436
|
+
* @category State predicates
|
|
182
437
|
*/
|
|
183
438
|
export const some = dual(2, function some(ref, predicate) {
|
|
184
439
|
return RefSubject.map(ref, HashMap.some(predicate));
|
|
185
440
|
});
|
|
186
441
|
/**
|
|
187
442
|
* Check if all entries satisfy a predicate.
|
|
443
|
+
* @remarks
|
|
444
|
+
* ## Why
|
|
445
|
+
*
|
|
446
|
+
* Makes every a live projection of the hash map; consumers can sample it now or observe it without
|
|
447
|
+
* copying the source state.
|
|
448
|
+
*
|
|
449
|
+
* ## Ownership and lifetime
|
|
450
|
+
*
|
|
451
|
+
* The every 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
|
+
*
|
|
188
454
|
* @since 1.18.0
|
|
189
|
-
* @category
|
|
455
|
+
* @category State predicates
|
|
190
456
|
*/
|
|
191
457
|
export const every = dual(2, function every(ref, predicate) {
|
|
192
458
|
return RefSubject.map(ref, HashMap.every(predicate));
|
|
@@ -196,17 +462,39 @@ export const every = dual(2, function every(ref, predicate) {
|
|
|
196
462
|
// ========================================
|
|
197
463
|
/**
|
|
198
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
|
+
*
|
|
199
476
|
* @since 1.18.0
|
|
200
|
-
* @category
|
|
477
|
+
* @category Optional queries
|
|
201
478
|
*/
|
|
202
479
|
export const get = dual(2, function get(ref, key) {
|
|
203
480
|
return RefSubject.filterMap(ref, HashMap.get(key));
|
|
204
481
|
});
|
|
205
482
|
/**
|
|
206
483
|
* Find the first entry satisfying a predicate.
|
|
484
|
+
* @remarks
|
|
485
|
+
* ## Why
|
|
486
|
+
*
|
|
487
|
+
* Models the possibly absent result of find first as Filtered state, so absence stays explicit
|
|
488
|
+
* while later source versions can make a value available.
|
|
489
|
+
*
|
|
490
|
+
* ## Ownership and lifetime
|
|
491
|
+
*
|
|
492
|
+
* The find first view retains no independent value. Its Effect read fails with NoSuchElement
|
|
493
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
494
|
+
*
|
|
207
495
|
* @since 1.18.0
|
|
208
|
-
* @category
|
|
496
|
+
* @category Optional queries
|
|
209
497
|
*/
|
|
210
498
|
export const findFirst = dual(2, function findFirst(ref, predicate) {
|
|
211
|
-
return RefSubject.filterMap(ref,
|
|
499
|
+
return RefSubject.filterMap(ref, (g) => HashMap.findFirst(g, predicate));
|
|
212
500
|
});
|