@typed/fx 2.0.0-beta.1 → 2.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +35 -21
- package/dist/Fx/Fx.d.ts +371 -19
- package/dist/Fx/Fx.d.ts.map +1 -1
- package/dist/Fx/Fx.js +37 -6
- package/dist/Fx/TypeId.d.ts +52 -6
- package/dist/Fx/TypeId.d.ts.map +1 -1
- package/dist/Fx/TypeId.js +41 -4
- package/dist/Fx/combinators/additive.d.ts +162 -11
- package/dist/Fx/combinators/additive.d.ts.map +1 -1
- package/dist/Fx/combinators/additive.js +162 -11
- package/dist/Fx/combinators/catch.d.ts +202 -29
- package/dist/Fx/combinators/catch.d.ts.map +1 -1
- package/dist/Fx/combinators/catch.js +193 -23
- package/dist/Fx/combinators/causes.d.ts +25 -2
- package/dist/Fx/combinators/causes.d.ts.map +1 -1
- package/dist/Fx/combinators/causes.js +25 -2
- package/dist/Fx/combinators/changesWithEffect.d.ts +21 -1
- package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/changesWithEffect.js +21 -1
- package/dist/Fx/combinators/compact.d.ts +18 -1
- package/dist/Fx/combinators/compact.d.ts.map +1 -1
- package/dist/Fx/combinators/compact.js +18 -1
- package/dist/Fx/combinators/concatMap.d.ts +86 -0
- package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
- package/dist/Fx/combinators/concatMap.js +86 -0
- package/dist/Fx/combinators/continueWith.d.ts +113 -5
- package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
- package/dist/Fx/combinators/continueWith.js +113 -5
- package/dist/Fx/combinators/debounce.d.ts +34 -0
- package/dist/Fx/combinators/debounce.d.ts.map +1 -0
- package/dist/Fx/combinators/debounce.js +35 -0
- package/dist/Fx/combinators/delay.d.ts +36 -0
- package/dist/Fx/combinators/delay.d.ts.map +1 -0
- package/dist/Fx/combinators/delay.js +33 -0
- package/dist/Fx/combinators/dropUntil.d.ts +44 -2
- package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/dropUntil.js +44 -2
- package/dist/Fx/combinators/during.d.ts +38 -0
- package/dist/Fx/combinators/during.d.ts.map +1 -0
- package/dist/Fx/combinators/during.js +85 -0
- package/dist/Fx/combinators/ensuring.d.ts +34 -4
- package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
- package/dist/Fx/combinators/ensuring.js +34 -4
- package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
- package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
- package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
- package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMap.js +38 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
- package/dist/Fx/combinators/exit.d.ts +23 -2
- package/dist/Fx/combinators/exit.d.ts.map +1 -1
- package/dist/Fx/combinators/exit.js +23 -2
- package/dist/Fx/combinators/filter.d.ts +17 -1
- package/dist/Fx/combinators/filter.d.ts.map +1 -1
- package/dist/Fx/combinators/filter.js +17 -1
- package/dist/Fx/combinators/filterEffect.d.ts +22 -1
- package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterEffect.js +22 -1
- package/dist/Fx/combinators/filterMap.d.ts +20 -1
- package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMap.js +20 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoop.js +20 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
- package/dist/Fx/combinators/flatMap.d.ts +50 -5
- package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMap.js +36 -3
- package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
- package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrently.js +48 -2
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
- package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
- package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapEffect.js +32 -2
- package/dist/Fx/combinators/flip.d.ts +34 -2
- package/dist/Fx/combinators/flip.d.ts.map +1 -1
- package/dist/Fx/combinators/flip.js +34 -2
- package/dist/Fx/combinators/gen.d.ts +29 -10
- package/dist/Fx/combinators/gen.d.ts.map +1 -1
- package/dist/Fx/combinators/gen.js +28 -4
- package/dist/Fx/combinators/genScoped.d.ts +33 -10
- package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/genScoped.js +31 -3
- package/dist/Fx/combinators/grouped.d.ts +89 -0
- package/dist/Fx/combinators/grouped.d.ts.map +1 -0
- package/dist/Fx/combinators/grouped.js +146 -0
- package/dist/Fx/combinators/index.d.ts +35 -0
- package/dist/Fx/combinators/index.d.ts.map +1 -1
- package/dist/Fx/combinators/index.js +35 -0
- package/dist/Fx/combinators/keyed.d.ts +123 -9
- package/dist/Fx/combinators/keyed.d.ts.map +1 -1
- package/dist/Fx/combinators/keyed.js +69 -11
- package/dist/Fx/combinators/loop.d.ts +17 -1
- package/dist/Fx/combinators/loop.d.ts.map +1 -1
- package/dist/Fx/combinators/loop.js +17 -1
- package/dist/Fx/combinators/loopCause.d.ts +18 -1
- package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCause.js +18 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCauseEffect.js +19 -1
- package/dist/Fx/combinators/loopEffect.d.ts +24 -1
- package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopEffect.js +24 -1
- package/dist/Fx/combinators/map.d.ts +46 -1
- package/dist/Fx/combinators/map.d.ts.map +1 -1
- package/dist/Fx/combinators/map.js +43 -1
- package/dist/Fx/combinators/mapBoth.d.ts +20 -1
- package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
- package/dist/Fx/combinators/mapBoth.js +20 -1
- package/dist/Fx/combinators/mapEffect.d.ts +25 -1
- package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/mapEffect.js +25 -1
- package/dist/Fx/combinators/mapError.d.ts +21 -5
- package/dist/Fx/combinators/mapError.d.ts.map +1 -1
- package/dist/Fx/combinators/mapError.js +21 -5
- package/dist/Fx/combinators/mergeAll.d.ts +35 -1
- package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeAll.js +35 -1
- package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
- package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeOrdered.js +68 -14
- package/dist/Fx/combinators/onError.d.ts +34 -4
- package/dist/Fx/combinators/onError.d.ts.map +1 -1
- package/dist/Fx/combinators/onError.js +34 -4
- package/dist/Fx/combinators/onExit.d.ts +29 -3
- package/dist/Fx/combinators/onExit.d.ts.map +1 -1
- package/dist/Fx/combinators/onExit.js +29 -3
- package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
- package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
- package/dist/Fx/combinators/onInterrupt.js +49 -4
- package/dist/Fx/combinators/pairwise.d.ts +28 -0
- package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
- package/dist/Fx/combinators/pairwise.js +31 -0
- package/dist/Fx/combinators/provide.d.ts +141 -20
- package/dist/Fx/combinators/provide.d.ts.map +1 -1
- package/dist/Fx/combinators/provide.js +137 -16
- package/dist/Fx/combinators/race.d.ts +92 -0
- package/dist/Fx/combinators/race.d.ts.map +1 -0
- package/dist/Fx/combinators/race.js +149 -0
- package/dist/Fx/combinators/repeat.d.ts +41 -0
- package/dist/Fx/combinators/repeat.d.ts.map +1 -0
- package/dist/Fx/combinators/repeat.js +57 -0
- package/dist/Fx/combinators/result.d.ts +23 -1
- package/dist/Fx/combinators/result.d.ts.map +1 -1
- package/dist/Fx/combinators/result.js +27 -13
- package/dist/Fx/combinators/retry.d.ts +53 -0
- package/dist/Fx/combinators/retry.d.ts.map +1 -0
- package/dist/Fx/combinators/retry.js +71 -0
- package/dist/Fx/combinators/sample.d.ts +31 -0
- package/dist/Fx/combinators/sample.d.ts.map +1 -0
- package/dist/Fx/combinators/sample.js +42 -0
- package/dist/Fx/combinators/scan.d.ts +41 -2
- package/dist/Fx/combinators/scan.d.ts.map +1 -1
- package/dist/Fx/combinators/scan.js +43 -4
- package/dist/Fx/combinators/since.d.ts +30 -0
- package/dist/Fx/combinators/since.d.ts.map +1 -0
- package/dist/Fx/combinators/since.js +39 -0
- package/dist/Fx/combinators/skip.d.ts +33 -2
- package/dist/Fx/combinators/skip.d.ts.map +1 -1
- package/dist/Fx/combinators/skip.js +33 -2
- package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
- package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeats.js +17 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
- package/dist/Fx/combinators/skipWhile.d.ts +72 -4
- package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
- package/dist/Fx/combinators/skipWhile.js +72 -4
- package/dist/Fx/combinators/slice.d.ts +85 -3
- package/dist/Fx/combinators/slice.d.ts.map +1 -1
- package/dist/Fx/combinators/slice.js +35 -2
- package/dist/Fx/combinators/switchMap.d.ts +39 -1
- package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMap.js +43 -5
- package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
- package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMapEffect.js +38 -1
- package/dist/Fx/combinators/take.d.ts +34 -2
- package/dist/Fx/combinators/take.d.ts.map +1 -1
- package/dist/Fx/combinators/take.js +34 -2
- package/dist/Fx/combinators/takeUntil.d.ts +49 -3
- package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/takeUntil.js +49 -3
- package/dist/Fx/combinators/takeWhile.d.ts +33 -2
- package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
- package/dist/Fx/combinators/takeWhile.js +33 -2
- package/dist/Fx/combinators/tapEffect.d.ts +17 -1
- package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/tapEffect.js +17 -1
- package/dist/Fx/combinators/throttle.d.ts +79 -0
- package/dist/Fx/combinators/throttle.d.ts.map +1 -0
- package/dist/Fx/combinators/throttle.js +99 -0
- package/dist/Fx/combinators/timeout.d.ts +76 -0
- package/dist/Fx/combinators/timeout.d.ts.map +1 -0
- package/dist/Fx/combinators/timeout.js +110 -0
- package/dist/Fx/combinators/tuple.d.ts +32 -2
- package/dist/Fx/combinators/tuple.d.ts.map +1 -1
- package/dist/Fx/combinators/tuple.js +36 -5
- package/dist/Fx/combinators/until.d.ts +27 -0
- package/dist/Fx/combinators/until.d.ts.map +1 -0
- package/dist/Fx/combinators/until.js +56 -0
- package/dist/Fx/combinators/unwrap.d.ts +31 -2
- package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrap.js +30 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrapScoped.js +34 -1
- package/dist/Fx/combinators/when.d.ts +37 -2
- package/dist/Fx/combinators/when.d.ts.map +1 -1
- package/dist/Fx/combinators/when.js +38 -3
- package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
- package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
- package/dist/Fx/combinators/withLatestFrom.js +68 -0
- package/dist/Fx/combinators/withSpan.d.ts +35 -1
- package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
- package/dist/Fx/combinators/withSpan.js +34 -3
- package/dist/Fx/combinators/zip.d.ts +64 -4
- package/dist/Fx/combinators/zip.d.ts.map +1 -1
- package/dist/Fx/combinators/zip.js +64 -4
- package/dist/Fx/constructors/at.d.ts +21 -1
- package/dist/Fx/constructors/at.d.ts.map +1 -1
- package/dist/Fx/constructors/at.js +21 -1
- package/dist/Fx/constructors/die.d.ts +22 -1
- package/dist/Fx/constructors/die.d.ts.map +1 -1
- package/dist/Fx/constructors/die.js +22 -1
- package/dist/Fx/constructors/empty.d.ts +19 -1
- package/dist/Fx/constructors/empty.d.ts.map +1 -1
- package/dist/Fx/constructors/empty.js +19 -1
- package/dist/Fx/constructors/fail.d.ts +22 -1
- package/dist/Fx/constructors/fail.d.ts.map +1 -1
- package/dist/Fx/constructors/fail.js +22 -1
- package/dist/Fx/constructors/failCause.d.ts +23 -1
- package/dist/Fx/constructors/failCause.d.ts.map +1 -1
- package/dist/Fx/constructors/failCause.js +23 -1
- package/dist/Fx/constructors/fn.d.ts +116 -16
- package/dist/Fx/constructors/fn.d.ts.map +1 -1
- package/dist/Fx/constructors/fn.js +36 -0
- package/dist/Fx/constructors/fromEffect.d.ts +45 -3
- package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
- package/dist/Fx/constructors/fromEffect.js +45 -3
- package/dist/Fx/constructors/fromFailures.d.ts +25 -1
- package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
- package/dist/Fx/constructors/fromFailures.js +25 -1
- package/dist/Fx/constructors/fromIterable.d.ts +23 -1
- package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
- package/dist/Fx/constructors/fromIterable.js +23 -1
- package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
- package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
- package/dist/Fx/constructors/fromSchedule.js +28 -3
- package/dist/Fx/constructors/index.d.ts +2 -1
- package/dist/Fx/constructors/index.d.ts.map +1 -1
- package/dist/Fx/constructors/index.js +2 -1
- package/dist/Fx/constructors/interrupt.d.ts +22 -2
- package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
- package/dist/Fx/constructors/interrupt.js +22 -2
- package/dist/Fx/constructors/make.d.ts +151 -4
- package/dist/Fx/constructors/make.d.ts.map +1 -1
- package/dist/Fx/constructors/make.js +60 -7
- package/dist/Fx/constructors/periodic.d.ts +30 -1
- package/dist/Fx/constructors/periodic.d.ts.map +1 -1
- package/dist/Fx/constructors/periodic.js +30 -1
- package/dist/Fx/constructors/succeed.d.ts +79 -7
- package/dist/Fx/constructors/succeed.d.ts.map +1 -1
- package/dist/Fx/constructors/succeed.js +79 -7
- package/dist/Fx/constructors/suspend.d.ts +28 -0
- package/dist/Fx/constructors/suspend.d.ts.map +1 -1
- package/dist/Fx/constructors/suspend.js +28 -0
- package/dist/Fx/constructors/sync.d.ts +32 -0
- package/dist/Fx/constructors/sync.d.ts.map +1 -0
- package/dist/Fx/constructors/sync.js +32 -0
- package/dist/Fx/internal/DeferredRef.d.ts +259 -7
- package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
- package/dist/Fx/internal/DeferredRef.js +260 -9
- package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
- package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
- package/dist/Fx/internal/diff.d.ts +586 -0
- package/dist/Fx/internal/diff.d.ts.map +1 -1
- package/dist/Fx/internal/diff.js +120 -9
- package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
- package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
- package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts +70 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
- package/dist/Fx/internal/effectableWithOverride.js +54 -0
- package/dist/Fx/internal/equivalence.d.ts +29 -0
- package/dist/Fx/internal/equivalence.d.ts.map +1 -1
- package/dist/Fx/internal/equivalence.js +29 -0
- package/dist/Fx/internal/multicast.d.ts +145 -2
- package/dist/Fx/internal/multicast.d.ts.map +1 -1
- package/dist/Fx/internal/multicast.js +146 -4
- package/dist/Fx/internal/ring-buffer.d.ts +149 -0
- package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
- package/dist/Fx/internal/ring-buffer.js +155 -0
- package/dist/Fx/internal/scope.d.ts +184 -0
- package/dist/Fx/internal/scope.d.ts.map +1 -1
- package/dist/Fx/internal/scope.js +150 -0
- package/dist/Fx/internal/yieldable.d.ts +117 -2
- package/dist/Fx/internal/yieldable.d.ts.map +1 -1
- package/dist/Fx/internal/yieldable.js +86 -3
- package/dist/Fx/run/collect.d.ts +93 -4
- package/dist/Fx/run/collect.d.ts.map +1 -1
- package/dist/Fx/run/collect.js +94 -5
- package/dist/Fx/run/first.d.ts +23 -1
- package/dist/Fx/run/first.d.ts.map +1 -1
- package/dist/Fx/run/first.js +23 -1
- package/dist/Fx/run/fork.d.ts +52 -2
- package/dist/Fx/run/fork.d.ts.map +1 -1
- package/dist/Fx/run/fork.js +52 -2
- package/dist/Fx/run/observe.d.ts +112 -4
- package/dist/Fx/run/observe.d.ts.map +1 -1
- package/dist/Fx/run/observe.js +137 -16
- package/dist/Fx/run/runPromise.d.ts +45 -2
- package/dist/Fx/run/runPromise.d.ts.map +1 -1
- package/dist/Fx/run/runPromise.js +45 -2
- package/dist/Fx/stream.d.ts +92 -0
- package/dist/Fx/stream.d.ts.map +1 -1
- package/dist/Fx/stream.js +60 -1
- package/dist/Push/Push.d.ts +1229 -104
- package/dist/Push/Push.d.ts.map +1 -1
- package/dist/Push/Push.js +1024 -95
- package/dist/RefArray.d.ts +2 -0
- package/dist/RefArray.d.ts.map +1 -0
- package/dist/RefArray.js +1 -0
- package/dist/RefBigDecimal.d.ts +2 -0
- package/dist/RefBigDecimal.d.ts.map +1 -0
- package/dist/RefBigDecimal.js +1 -0
- package/dist/RefBigInt.d.ts +2 -0
- package/dist/RefBigInt.d.ts.map +1 -0
- package/dist/RefBigInt.js +1 -0
- package/dist/RefBoolean.d.ts +2 -0
- package/dist/RefBoolean.d.ts.map +1 -0
- package/dist/RefBoolean.js +1 -0
- package/dist/RefCause.d.ts +2 -0
- package/dist/RefCause.d.ts.map +1 -0
- package/dist/RefCause.js +1 -0
- package/dist/RefChunk.d.ts +2 -0
- package/dist/RefChunk.d.ts.map +1 -0
- package/dist/RefChunk.js +1 -0
- package/dist/RefDateTime.d.ts +2 -0
- package/dist/RefDateTime.d.ts.map +1 -0
- package/dist/RefDateTime.js +1 -0
- package/dist/RefDuration.d.ts +2 -0
- package/dist/RefDuration.d.ts.map +1 -0
- package/dist/RefDuration.js +1 -0
- package/dist/RefGraph.d.ts +2 -0
- package/dist/RefGraph.d.ts.map +1 -0
- package/dist/RefGraph.js +1 -0
- package/dist/RefHashMap.d.ts +2 -0
- package/dist/RefHashMap.d.ts.map +1 -0
- package/dist/RefHashMap.js +1 -0
- package/dist/RefHashRing.d.ts +2 -0
- package/dist/RefHashRing.d.ts.map +1 -0
- package/dist/RefHashRing.js +1 -0
- package/dist/RefHashSet.d.ts +2 -0
- package/dist/RefHashSet.d.ts.map +1 -0
- package/dist/RefHashSet.js +1 -0
- package/dist/RefIterable.d.ts +2 -0
- package/dist/RefIterable.d.ts.map +1 -0
- package/dist/RefIterable.js +1 -0
- package/dist/RefOption.d.ts +2 -0
- package/dist/RefOption.d.ts.map +1 -0
- package/dist/RefOption.js +1 -0
- package/dist/RefRecord.d.ts +2 -0
- package/dist/RefRecord.d.ts.map +1 -0
- package/dist/RefRecord.js +1 -0
- package/dist/RefResult.d.ts +2 -0
- package/dist/RefResult.d.ts.map +1 -0
- package/dist/RefResult.js +1 -0
- package/dist/RefString.d.ts +2 -0
- package/dist/RefString.d.ts.map +1 -0
- package/dist/RefString.js +1 -0
- package/dist/RefStruct.d.ts +2 -0
- package/dist/RefStruct.d.ts.map +1 -0
- package/dist/RefStruct.js +1 -0
- package/dist/RefSubject/Hydration.d.ts +504 -0
- package/dist/RefSubject/Hydration.d.ts.map +1 -0
- package/dist/RefSubject/Hydration.js +300 -0
- package/dist/RefSubject/RefArray.d.ts +382 -35
- package/dist/RefSubject/RefArray.d.ts.map +1 -1
- package/dist/RefSubject/RefArray.js +374 -40
- package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
- package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
- package/dist/RefSubject/RefBigDecimal.js +229 -20
- package/dist/RefSubject/RefBigInt.d.ts +181 -16
- package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
- package/dist/RefSubject/RefBigInt.js +169 -15
- package/dist/RefSubject/RefBoolean.d.ts +181 -16
- package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
- package/dist/RefSubject/RefBoolean.js +169 -15
- package/dist/RefSubject/RefCause.d.ts +133 -12
- package/dist/RefSubject/RefCause.d.ts.map +1 -1
- package/dist/RefSubject/RefCause.js +121 -11
- package/dist/RefSubject/RefChunk.d.ts +481 -76
- package/dist/RefSubject/RefChunk.d.ts.map +1 -1
- package/dist/RefSubject/RefChunk.js +471 -75
- package/dist/RefSubject/RefDateTime.d.ts +133 -12
- package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
- package/dist/RefSubject/RefDateTime.js +122 -12
- package/dist/RefSubject/RefDuration.d.ts +169 -15
- package/dist/RefSubject/RefDuration.d.ts.map +1 -1
- package/dist/RefSubject/RefDuration.js +157 -14
- package/dist/RefSubject/RefGraph.d.ts +349 -35
- package/dist/RefSubject/RefGraph.d.ts.map +1 -1
- package/dist/RefSubject/RefGraph.js +334 -32
- package/dist/RefSubject/RefHashMap.d.ts +323 -28
- package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
- package/dist/RefSubject/RefHashMap.js +317 -29
- package/dist/RefSubject/RefHashRing.d.ts +159 -15
- package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
- package/dist/RefSubject/RefHashRing.js +145 -12
- package/dist/RefSubject/RefHashSet.d.ts +251 -22
- package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
- package/dist/RefSubject/RefHashSet.js +238 -20
- package/dist/RefSubject/RefIterable.d.ts +358 -32
- package/dist/RefSubject/RefIterable.d.ts.map +1 -1
- package/dist/RefSubject/RefIterable.js +350 -30
- package/dist/RefSubject/RefOption.d.ts +157 -14
- package/dist/RefSubject/RefOption.d.ts.map +1 -1
- package/dist/RefSubject/RefOption.js +145 -13
- package/dist/RefSubject/RefRecord.d.ts +402 -64
- package/dist/RefSubject/RefRecord.d.ts.map +1 -1
- package/dist/RefSubject/RefRecord.js +364 -39
- package/dist/RefSubject/RefResult.d.ts +167 -35
- package/dist/RefSubject/RefResult.d.ts.map +1 -1
- package/dist/RefSubject/RefResult.js +133 -12
- package/dist/RefSubject/RefString.d.ts +205 -18
- package/dist/RefSubject/RefString.d.ts.map +1 -1
- package/dist/RefSubject/RefString.js +193 -17
- package/dist/RefSubject/RefStruct.d.ts +169 -14
- package/dist/RefSubject/RefStruct.d.ts.map +1 -1
- package/dist/RefSubject/RefStruct.js +157 -13
- package/dist/RefSubject/RefSubject.d.ts +1197 -45
- package/dist/RefSubject/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject/RefSubject.js +935 -88
- package/dist/RefSubject/RefTrie.d.ts +323 -37
- package/dist/RefSubject/RefTrie.d.ts.map +1 -1
- package/dist/RefSubject/RefTrie.js +311 -31
- package/dist/RefSubject/RefTuple.d.ts +127 -11
- package/dist/RefSubject/RefTuple.d.ts.map +1 -1
- package/dist/RefSubject/RefTuple.js +114 -9
- package/dist/RefSubject/index.d.ts +1 -0
- package/dist/RefSubject/index.d.ts.map +1 -1
- package/dist/RefSubject/index.js +1 -0
- package/dist/RefSubject.d.ts +2 -1
- package/dist/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject.js +2 -1
- package/dist/RefTrie.d.ts +2 -0
- package/dist/RefTrie.d.ts.map +1 -0
- package/dist/RefTrie.js +1 -0
- package/dist/RefTuple.d.ts +2 -0
- package/dist/RefTuple.d.ts.map +1 -0
- package/dist/RefTuple.js +1 -0
- package/dist/Sink/Sink.d.ts +396 -23
- package/dist/Sink/Sink.d.ts.map +1 -1
- package/dist/Sink/Sink.js +55 -7
- package/dist/Sink/combinators.d.ts +740 -11
- package/dist/Sink/combinators.d.ts.map +1 -1
- package/dist/Sink/combinators.js +716 -14
- package/dist/Subject/Subject.d.ts +1022 -27
- package/dist/Subject/Subject.d.ts.map +1 -1
- package/dist/Subject/Subject.js +909 -43
- package/dist/Versioned/Versioned.d.ts +447 -27
- package/dist/Versioned/Versioned.d.ts.map +1 -1
- package/dist/Versioned/Versioned.js +282 -48
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- package/package.json +126 -16
- package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
- package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
- package/dist/Fx/constructors/fromYieldable.js +0 -12
- package/src/Fx/Fx.ts +0 -164
- package/src/Fx/TypeId.ts +0 -25
- package/src/Fx/combinators/additive.ts +0 -142
- package/src/Fx/combinators/catch.ts +0 -421
- package/src/Fx/combinators/causes.ts +0 -23
- package/src/Fx/combinators/changesWithEffect.ts +0 -66
- package/src/Fx/combinators/compact.ts +0 -15
- package/src/Fx/combinators/continueWith.ts +0 -78
- package/src/Fx/combinators/dropUntil.ts +0 -47
- package/src/Fx/combinators/ensuring.ts +0 -23
- package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
- package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
- package/src/Fx/combinators/exhaustMap.ts +0 -36
- package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
- package/src/Fx/combinators/exit.ts +0 -15
- package/src/Fx/combinators/filter.ts +0 -22
- package/src/Fx/combinators/filterEffect.ts +0 -31
- package/src/Fx/combinators/filterMap.ts +0 -23
- package/src/Fx/combinators/filterMapEffect.ts +0 -32
- package/src/Fx/combinators/filterMapLoop.ts +0 -35
- package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
- package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
- package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
- package/src/Fx/combinators/flatMap.ts +0 -51
- package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
- package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
- package/src/Fx/combinators/flatMapEffect.ts +0 -42
- package/src/Fx/combinators/flip.ts +0 -14
- package/src/Fx/combinators/gen.ts +0 -24
- package/src/Fx/combinators/genScoped.ts +0 -24
- package/src/Fx/combinators/index.ts +0 -61
- package/src/Fx/combinators/keyed.ts +0 -369
- package/src/Fx/combinators/loop.ts +0 -27
- package/src/Fx/combinators/loopCause.ts +0 -34
- package/src/Fx/combinators/loopCauseEffect.ts +0 -36
- package/src/Fx/combinators/loopEffect.ts +0 -34
- package/src/Fx/combinators/map.ts +0 -22
- package/src/Fx/combinators/mapBoth.ts +0 -40
- package/src/Fx/combinators/mapEffect.ts +0 -32
- package/src/Fx/combinators/mapError.ts +0 -28
- package/src/Fx/combinators/mergeAll.ts +0 -22
- package/src/Fx/combinators/mergeOrdered.ts +0 -123
- package/src/Fx/combinators/onError.ts +0 -40
- package/src/Fx/combinators/onExit.ts +0 -82
- package/src/Fx/combinators/onInterrupt.ts +0 -87
- package/src/Fx/combinators/provide.ts +0 -124
- package/src/Fx/combinators/result.ts +0 -39
- package/src/Fx/combinators/scan.ts +0 -82
- package/src/Fx/combinators/skip.ts +0 -41
- package/src/Fx/combinators/skipRepeats.ts +0 -15
- package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
- package/src/Fx/combinators/skipWhile.ts +0 -100
- package/src/Fx/combinators/slice.ts +0 -55
- package/src/Fx/combinators/switchMap.ts +0 -55
- package/src/Fx/combinators/switchMapEffect.ts +0 -25
- package/src/Fx/combinators/take.ts +0 -38
- package/src/Fx/combinators/takeUntil.ts +0 -88
- package/src/Fx/combinators/takeWhile.ts +0 -47
- package/src/Fx/combinators/tapEffect.ts +0 -39
- package/src/Fx/combinators/tuple.ts +0 -79
- package/src/Fx/combinators/unwrap.ts +0 -21
- package/src/Fx/combinators/unwrapScoped.ts +0 -26
- package/src/Fx/combinators/when.ts +0 -64
- package/src/Fx/combinators/withSpan.ts +0 -24
- package/src/Fx/combinators/zip.ts +0 -175
- package/src/Fx/constructors/at.ts +0 -23
- package/src/Fx/constructors/die.ts +0 -17
- package/src/Fx/constructors/empty.ts +0 -10
- package/src/Fx/constructors/fail.ts +0 -14
- package/src/Fx/constructors/failCause.ts +0 -14
- package/src/Fx/constructors/fn.ts +0 -245
- package/src/Fx/constructors/fromEffect.ts +0 -24
- package/src/Fx/constructors/fromFailures.ts +0 -19
- package/src/Fx/constructors/fromIterable.ts +0 -15
- package/src/Fx/constructors/fromSchedule.ts +0 -18
- package/src/Fx/constructors/fromYieldable.ts +0 -17
- package/src/Fx/constructors/index.ts +0 -15
- package/src/Fx/constructors/interrupt.ts +0 -13
- package/src/Fx/constructors/make.ts +0 -103
- package/src/Fx/constructors/periodic.ts +0 -15
- package/src/Fx/constructors/succeed.ts +0 -37
- package/src/Fx/constructors/suspend.ts +0 -6
- package/src/Fx/index.ts +0 -6
- package/src/Fx/internal/DeferredRef.ts +0 -87
- package/src/Fx/internal/UnionToTuple.ts +0 -12
- package/src/Fx/internal/diff.ts +0 -191
- package/src/Fx/internal/equivalence.ts +0 -12
- package/src/Fx/internal/multicast.ts +0 -51
- package/src/Fx/internal/ring-buffer.ts +0 -60
- package/src/Fx/internal/scope.ts +0 -58
- package/src/Fx/internal/yieldable.ts +0 -31
- package/src/Fx/run/collect.ts +0 -79
- package/src/Fx/run/first.ts +0 -20
- package/src/Fx/run/fork.ts +0 -40
- package/src/Fx/run/index.ts +0 -5
- package/src/Fx/run/observe.ts +0 -114
- package/src/Fx/run/runPromise.ts +0 -32
- package/src/Fx/stream.ts +0 -42
- package/src/Fx.additive-combinators.test.ts +0 -126
- package/src/Fx.catch-additive.test.ts +0 -206
- package/src/Fx.catch.test.ts +0 -60
- package/src/Fx.dropUntil.test.ts +0 -61
- package/src/Fx.fn.test.ts +0 -51
- package/src/Fx.lifecycle.test.ts +0 -79
- package/src/Fx.mapError-mapBoth.test.ts +0 -101
- package/src/Fx.provide-combinators.test.ts +0 -94
- package/src/Fx.result-changesWithEffect.test.ts +0 -112
- package/src/Fx.scan.test.ts +0 -73
- package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
- package/src/Fx.test.ts +0 -71
- package/src/Fx.ts +0 -1
- package/src/Fx.zip-merge-additive.test.ts +0 -171
- package/src/Fx.zip.test.ts +0 -133
- package/src/Push/Push.ts +0 -1072
- package/src/Push/index.ts +0 -1
- package/src/Push.additive.test.ts +0 -256
- package/src/Push.test.ts +0 -26
- package/src/Push.ts +0 -1
- package/src/RefSubject/RefArray.ts +0 -512
- package/src/RefSubject/RefBigDecimal.test.ts +0 -56
- package/src/RefSubject/RefBigDecimal.ts +0 -295
- package/src/RefSubject/RefBigInt.test.ts +0 -56
- package/src/RefSubject/RefBigInt.ts +0 -189
- package/src/RefSubject/RefBoolean.test.ts +0 -57
- package/src/RefSubject/RefBoolean.ts +0 -185
- package/src/RefSubject/RefCause.test.ts +0 -53
- package/src/RefSubject/RefCause.ts +0 -146
- package/src/RefSubject/RefChunk.ts +0 -510
- package/src/RefSubject/RefDateTime.test.ts +0 -43
- package/src/RefSubject/RefDateTime.ts +0 -264
- package/src/RefSubject/RefDuration.test.ts +0 -49
- package/src/RefSubject/RefDuration.ts +0 -188
- package/src/RefSubject/RefGraph.ts +0 -650
- package/src/RefSubject/RefHashMap.ts +0 -465
- package/src/RefSubject/RefHashRing.ts +0 -262
- package/src/RefSubject/RefHashSet.ts +0 -308
- package/src/RefSubject/RefIterable.ts +0 -445
- package/src/RefSubject/RefOption.test.ts +0 -67
- package/src/RefSubject/RefOption.ts +0 -193
- package/src/RefSubject/RefRecord.ts +0 -612
- package/src/RefSubject/RefResult.test.ts +0 -63
- package/src/RefSubject/RefResult.ts +0 -209
- package/src/RefSubject/RefString.test.ts +0 -61
- package/src/RefSubject/RefString.ts +0 -256
- package/src/RefSubject/RefStruct.test.ts +0 -60
- package/src/RefSubject/RefStruct.ts +0 -253
- package/src/RefSubject/RefSubject.ts +0 -2646
- package/src/RefSubject/RefTrie.ts +0 -356
- package/src/RefSubject/RefTuple.test.ts +0 -60
- package/src/RefSubject/RefTuple.ts +0 -231
- package/src/RefSubject/index.ts +0 -21
- package/src/RefSubject.additive-parity.test.ts +0 -101
- package/src/RefSubject.test.ts +0 -65
- package/src/RefSubject.ts +0 -1
- package/src/Sink/Sink.ts +0 -159
- package/src/Sink/combinators.ts +0 -1115
- package/src/Sink/index.ts +0 -2
- package/src/Sink.combinators.test.ts +0 -88
- package/src/Sink.reduce-collect-head-last.test.ts +0 -107
- package/src/Sink.ts +0 -1
- package/src/Subject/Subject.ts +0 -441
- package/src/Subject/index.ts +0 -1
- package/src/Subject.test.ts +0 -47
- package/src/Subject.ts +0 -1
- package/src/Versioned/Versioned.ts +0 -597
- package/src/Versioned/index.ts +0 -1
- package/src/Versioned.filterMap.test.ts +0 -91
- package/src/Versioned.test.ts +0 -23
- package/src/Versioned.ts +0 -1
- package/src/index.ts +0 -7
|
@@ -9,18 +9,40 @@ import type * as Fx from "../Fx/index.js";
|
|
|
9
9
|
import * as RefSubject from "./RefSubject.js";
|
|
10
10
|
/**
|
|
11
11
|
* A RefStruct is a RefSubject specialized over a struct value.
|
|
12
|
+
* @remarks
|
|
13
|
+
* ## Why
|
|
14
|
+
*
|
|
15
|
+
* Defines struct state with the same current-read, pushed-update, and synchronized-write contract
|
|
16
|
+
* as RefSubject.
|
|
17
|
+
*
|
|
18
|
+
* ## Ownership and lifetime
|
|
19
|
+
*
|
|
20
|
+
* RefStruct is a contract and performs no acquisition. Implementations retain the errors,
|
|
21
|
+
* services, interruption, and Scope requirements expressed by its members.
|
|
22
|
+
*
|
|
12
23
|
* @since 1.18.0
|
|
13
|
-
* @category models
|
|
24
|
+
* @category State models
|
|
14
25
|
*/
|
|
15
26
|
export interface RefStruct<in out S extends object, in out E = never, out R = never> extends RefSubject.RefSubject<S, E, R> {
|
|
16
27
|
}
|
|
17
28
|
/**
|
|
18
29
|
* Creates a new `RefStruct` from a struct, `Effect`, or `Fx`.
|
|
19
30
|
*
|
|
31
|
+
* @remarks
|
|
32
|
+
* ## Why
|
|
33
|
+
*
|
|
34
|
+
* Creates struct state with equality suited to that Effect data type, so unchanged values do not
|
|
35
|
+
* produce redundant pushed updates.
|
|
36
|
+
*
|
|
37
|
+
* ## Ownership and lifetime
|
|
38
|
+
*
|
|
39
|
+
* The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
|
|
40
|
+
* and cleanup; source failures and services stay on reads and pushes.
|
|
41
|
+
*
|
|
20
42
|
* @example
|
|
21
43
|
* ```ts
|
|
22
44
|
* import { Effect } from "effect"
|
|
23
|
-
* import * as RefStruct from "
|
|
45
|
+
* import * as RefStruct from "@typed/fx/RefStruct"
|
|
24
46
|
*
|
|
25
47
|
* const program = Effect.gen(function* () {
|
|
26
48
|
* const value = yield* RefStruct.make({ name: "John", age: 30 })
|
|
@@ -30,13 +52,24 @@ export interface RefStruct<in out S extends object, in out E = never, out R = ne
|
|
|
30
52
|
* ```
|
|
31
53
|
*
|
|
32
54
|
* @since 1.18.0
|
|
33
|
-
* @category
|
|
55
|
+
* @category Constructors
|
|
34
56
|
*/
|
|
35
57
|
export declare function make<S extends object, E = never, R = never>(initial: S | Effect.Effect<S, E, R> | Fx.Fx<S, E, R>, eq?: Equivalence<S>): Effect.Effect<RefStruct<S, E>, never, R | Scope.Scope>;
|
|
36
58
|
/**
|
|
37
59
|
* Set a property value in the current state of a RefStruct.
|
|
60
|
+
* @remarks
|
|
61
|
+
* ## Why
|
|
62
|
+
*
|
|
63
|
+
* Keeps set atomic with respect to competing RefSubject writes instead of splitting the read and
|
|
64
|
+
* replacement into separate effects.
|
|
65
|
+
*
|
|
66
|
+
* ## Ownership and lifetime
|
|
67
|
+
*
|
|
68
|
+
* Running set performs one serialized struct transition and resolves with its committed value. It
|
|
69
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
70
|
+
*
|
|
38
71
|
* @since 1.18.0
|
|
39
|
-
* @category
|
|
72
|
+
* @category State updates
|
|
40
73
|
*/
|
|
41
74
|
export declare const set: {
|
|
42
75
|
<S extends object, K extends keyof S>(key: K, value: S[K]): <E, R>(ref: RefStruct<S, E, R>) => Effect.Effect<S, E, R>;
|
|
@@ -44,8 +77,19 @@ export declare const set: {
|
|
|
44
77
|
};
|
|
45
78
|
/**
|
|
46
79
|
* Update a property value in the current state of a RefStruct using a function.
|
|
80
|
+
* @remarks
|
|
81
|
+
* ## Why
|
|
82
|
+
*
|
|
83
|
+
* Keeps update atomic with respect to competing RefSubject writes instead of splitting the read
|
|
84
|
+
* and replacement into separate effects.
|
|
85
|
+
*
|
|
86
|
+
* ## Ownership and lifetime
|
|
87
|
+
*
|
|
88
|
+
* Running update performs one serialized struct transition and resolves with its committed value.
|
|
89
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
90
|
+
*
|
|
47
91
|
* @since 1.18.0
|
|
48
|
-
* @category
|
|
92
|
+
* @category State updates
|
|
49
93
|
*/
|
|
50
94
|
export declare const update: {
|
|
51
95
|
<S extends object, K extends keyof S>(key: K, f: (value: S[K]) => S[K]): <E, R>(ref: RefStruct<S, E, R>) => Effect.Effect<S, E, R>;
|
|
@@ -53,8 +97,19 @@ export declare const update: {
|
|
|
53
97
|
};
|
|
54
98
|
/**
|
|
55
99
|
* Merge another struct into the current state of a RefStruct.
|
|
100
|
+
* @remarks
|
|
101
|
+
* ## Why
|
|
102
|
+
*
|
|
103
|
+
* Combines bulk struct changes in one committed value, giving subscribers one coherent update
|
|
104
|
+
* rather than a partially applied sequence.
|
|
105
|
+
*
|
|
106
|
+
* ## Ownership and lifetime
|
|
107
|
+
*
|
|
108
|
+
* Running merge performs one serialized struct transition and resolves with its committed value.
|
|
109
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
110
|
+
*
|
|
56
111
|
* @since 1.18.0
|
|
57
|
-
* @category
|
|
112
|
+
* @category State updates
|
|
58
113
|
*/
|
|
59
114
|
export declare const merge: {
|
|
60
115
|
<O extends object>(that: O): <S extends object, E, R>(ref: RefStruct<S, E, R>) => Effect.Effect<S, E, R>;
|
|
@@ -62,8 +117,19 @@ export declare const merge: {
|
|
|
62
117
|
};
|
|
63
118
|
/**
|
|
64
119
|
* Pick properties from the current state of a RefStruct.
|
|
120
|
+
* @remarks
|
|
121
|
+
* ## Why
|
|
122
|
+
*
|
|
123
|
+
* Projects struct state with pick for both current reads and future pushes, avoiding a second
|
|
124
|
+
* mutable cache of the derived value.
|
|
125
|
+
*
|
|
126
|
+
* ## Ownership and lifetime
|
|
127
|
+
*
|
|
128
|
+
* The pick view retains no independent state. An Effect read samples the source once; Fx
|
|
129
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
130
|
+
*
|
|
65
131
|
* @since 1.18.0
|
|
66
|
-
* @category
|
|
132
|
+
* @category Derived queries
|
|
67
133
|
*/
|
|
68
134
|
export declare const pick: {
|
|
69
135
|
<S extends object, const Keys extends ReadonlyArray<keyof S>>(keys: Keys): <E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<Pick<S, Keys[number]>, E, R>;
|
|
@@ -71,8 +137,19 @@ export declare const pick: {
|
|
|
71
137
|
};
|
|
72
138
|
/**
|
|
73
139
|
* Omit properties from the current state of a RefStruct.
|
|
140
|
+
* @remarks
|
|
141
|
+
* ## Why
|
|
142
|
+
*
|
|
143
|
+
* Projects struct state with omit for both current reads and future pushes, avoiding a second
|
|
144
|
+
* mutable cache of the derived value.
|
|
145
|
+
*
|
|
146
|
+
* ## Ownership and lifetime
|
|
147
|
+
*
|
|
148
|
+
* The omit view retains no independent state. An Effect read samples the source once; Fx
|
|
149
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
150
|
+
*
|
|
74
151
|
* @since 1.18.0
|
|
75
|
-
* @category
|
|
152
|
+
* @category Derived queries
|
|
76
153
|
*/
|
|
77
154
|
export declare const omit: {
|
|
78
155
|
<S extends object, const Keys extends ReadonlyArray<keyof S>>(keys: Keys): <E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<Omit<S, Keys[number]>, E, R>;
|
|
@@ -80,8 +157,31 @@ export declare const omit: {
|
|
|
80
157
|
};
|
|
81
158
|
/**
|
|
82
159
|
* Get a property value from the current state of a RefStruct.
|
|
160
|
+
* @remarks
|
|
161
|
+
* ## Why
|
|
162
|
+
*
|
|
163
|
+
* Projects a known property as Computed state, so current reads and future pushes stay linked to
|
|
164
|
+
* the struct without copying that field into a second store.
|
|
165
|
+
*
|
|
166
|
+
* ## Ownership and lifetime
|
|
167
|
+
*
|
|
168
|
+
* The get view retains no independent state. An Effect read samples the source once; Fx
|
|
169
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```ts
|
|
173
|
+
* import { Effect } from "effect"
|
|
174
|
+
* import * as RefStruct from "@typed/fx/RefStruct"
|
|
175
|
+
*
|
|
176
|
+
* const program = Effect.scoped(Effect.gen(function* () {
|
|
177
|
+
* const account = yield* RefStruct.make({ name: "Ada", active: true })
|
|
178
|
+
* const name = RefStruct.get(account, "name")
|
|
179
|
+
* return yield* name
|
|
180
|
+
* }))
|
|
181
|
+
* ```
|
|
182
|
+
*
|
|
83
183
|
* @since 1.18.0
|
|
84
|
-
* @category
|
|
184
|
+
* @category Derived queries
|
|
85
185
|
*/
|
|
86
186
|
export declare const get: {
|
|
87
187
|
<S extends object, const K extends keyof S>(key: K): <E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<S[K], E, R>;
|
|
@@ -89,26 +189,70 @@ export declare const get: {
|
|
|
89
189
|
};
|
|
90
190
|
/**
|
|
91
191
|
* Get the keys of the current state of a RefStruct.
|
|
192
|
+
* @remarks
|
|
193
|
+
* ## Why
|
|
194
|
+
*
|
|
195
|
+
* Projects struct state with keys for both current reads and future pushes, avoiding a second
|
|
196
|
+
* mutable cache of the derived value.
|
|
197
|
+
*
|
|
198
|
+
* ## Ownership and lifetime
|
|
199
|
+
*
|
|
200
|
+
* The keys view retains no independent state. An Effect read samples the source once; Fx
|
|
201
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
202
|
+
*
|
|
92
203
|
* @since 1.18.0
|
|
93
|
-
* @category
|
|
204
|
+
* @category Derived queries
|
|
94
205
|
*/
|
|
95
206
|
export declare const keys: <S extends object, E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<Array<keyof S & string>, E, R>;
|
|
96
207
|
/**
|
|
97
208
|
* Get the values of the current state of a RefStruct.
|
|
209
|
+
* @remarks
|
|
210
|
+
* ## Why
|
|
211
|
+
*
|
|
212
|
+
* Projects struct state with values for both current reads and future pushes, avoiding a second
|
|
213
|
+
* mutable cache of the derived value.
|
|
214
|
+
*
|
|
215
|
+
* ## Ownership and lifetime
|
|
216
|
+
*
|
|
217
|
+
* The values view retains no independent state. An Effect read samples the source once; Fx
|
|
218
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
219
|
+
*
|
|
98
220
|
* @since 1.18.0
|
|
99
|
-
* @category
|
|
221
|
+
* @category Derived queries
|
|
100
222
|
*/
|
|
101
223
|
export declare const values: <S extends object, E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<Array<S[keyof S]>, E, R>;
|
|
102
224
|
/**
|
|
103
225
|
* Get the entries of the current state of a RefStruct.
|
|
226
|
+
* @remarks
|
|
227
|
+
* ## Why
|
|
228
|
+
*
|
|
229
|
+
* Projects struct state with entries for both current reads and future pushes, avoiding a second
|
|
230
|
+
* mutable cache of the derived value.
|
|
231
|
+
*
|
|
232
|
+
* ## Ownership and lifetime
|
|
233
|
+
*
|
|
234
|
+
* The entries view retains no independent state. An Effect read samples the source once; Fx
|
|
235
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
236
|
+
*
|
|
104
237
|
* @since 1.18.0
|
|
105
|
-
* @category
|
|
238
|
+
* @category Derived queries
|
|
106
239
|
*/
|
|
107
240
|
export declare const entries: <S extends object, E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<Array<[keyof S, S[keyof S]]>, E, R>;
|
|
108
241
|
/**
|
|
109
242
|
* Check if the current state of a RefStruct has a property.
|
|
243
|
+
* @remarks
|
|
244
|
+
* ## Why
|
|
245
|
+
*
|
|
246
|
+
* Makes has a live projection of the struct; consumers can sample it now or observe it without
|
|
247
|
+
* copying the source state.
|
|
248
|
+
*
|
|
249
|
+
* ## Ownership and lifetime
|
|
250
|
+
*
|
|
251
|
+
* The has view retains no independent state. An Effect read samples the source once; Fx
|
|
252
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
253
|
+
*
|
|
110
254
|
* @since 1.18.0
|
|
111
|
-
* @category
|
|
255
|
+
* @category State predicates
|
|
112
256
|
*/
|
|
113
257
|
export declare const has: {
|
|
114
258
|
<S extends object, const K extends keyof S>(key: K): <E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<boolean, E, R>;
|
|
@@ -116,8 +260,19 @@ export declare const has: {
|
|
|
116
260
|
};
|
|
117
261
|
/**
|
|
118
262
|
* Get the size (number of properties) of the current state of a RefStruct.
|
|
263
|
+
* @remarks
|
|
264
|
+
* ## Why
|
|
265
|
+
*
|
|
266
|
+
* Makes size a live projection of the struct; consumers can sample it now or observe it without
|
|
267
|
+
* copying the source state.
|
|
268
|
+
*
|
|
269
|
+
* ## Ownership and lifetime
|
|
270
|
+
*
|
|
271
|
+
* The size view retains no independent state. An Effect read samples the source once; Fx
|
|
272
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
273
|
+
*
|
|
119
274
|
* @since 1.18.0
|
|
120
|
-
* @category
|
|
275
|
+
* @category Derived queries
|
|
121
276
|
*/
|
|
122
277
|
export declare const size: <S extends object, E, R>(ref: RefStruct<S, E, R>) => RefSubject.Computed<number, E, R>;
|
|
123
278
|
//# sourceMappingURL=RefStruct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefStruct.d.ts","sourceRoot":"","sources":["../../src/RefSubject/RefStruct.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"RefStruct.d.ts","sourceRoot":"","sources":["../../src/RefSubject/RefStruct.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,21 @@ import * as RefSubject from "./RefSubject.js";
|
|
|
10
10
|
/**
|
|
11
11
|
* Creates a new `RefStruct` from a struct, `Effect`, or `Fx`.
|
|
12
12
|
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* ## Why
|
|
15
|
+
*
|
|
16
|
+
* Creates struct 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
|
+
*
|
|
13
24
|
* @example
|
|
14
25
|
* ```ts
|
|
15
26
|
* import { Effect } from "effect"
|
|
16
|
-
* import * as RefStruct from "
|
|
27
|
+
* import * as RefStruct from "@typed/fx/RefStruct"
|
|
17
28
|
*
|
|
18
29
|
* const program = Effect.gen(function* () {
|
|
19
30
|
* const value = yield* RefStruct.make({ name: "John", age: 30 })
|
|
@@ -23,31 +34,64 @@ import * as RefSubject from "./RefSubject.js";
|
|
|
23
34
|
* ```
|
|
24
35
|
*
|
|
25
36
|
* @since 1.18.0
|
|
26
|
-
* @category
|
|
37
|
+
* @category Constructors
|
|
27
38
|
*/
|
|
28
39
|
export function make(initial, eq = Equivalence_.make((a, b) => equals(a, b))) {
|
|
29
40
|
return RefSubject.make(initial, { eq });
|
|
30
41
|
}
|
|
31
42
|
/**
|
|
32
43
|
* Set a property value in the current state of a RefStruct.
|
|
44
|
+
* @remarks
|
|
45
|
+
* ## Why
|
|
46
|
+
*
|
|
47
|
+
* Keeps set atomic with respect to competing RefSubject writes instead of splitting the read and
|
|
48
|
+
* replacement into separate effects.
|
|
49
|
+
*
|
|
50
|
+
* ## Ownership and lifetime
|
|
51
|
+
*
|
|
52
|
+
* Running set performs one serialized struct transition and resolves with its committed value. It
|
|
53
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
54
|
+
*
|
|
33
55
|
* @since 1.18.0
|
|
34
|
-
* @category
|
|
56
|
+
* @category State updates
|
|
35
57
|
*/
|
|
36
58
|
export const set = dual(3, function set(ref, key, value) {
|
|
37
59
|
return RefSubject.update(ref, (self) => Struct.assign(self, { [key]: value }));
|
|
38
60
|
});
|
|
39
61
|
/**
|
|
40
62
|
* Update a property value in the current state of a RefStruct using a function.
|
|
63
|
+
* @remarks
|
|
64
|
+
* ## Why
|
|
65
|
+
*
|
|
66
|
+
* Keeps update atomic with respect to competing RefSubject writes instead of splitting the read
|
|
67
|
+
* and replacement into separate effects.
|
|
68
|
+
*
|
|
69
|
+
* ## Ownership and lifetime
|
|
70
|
+
*
|
|
71
|
+
* Running update performs one serialized struct transition and resolves with its committed value.
|
|
72
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
73
|
+
*
|
|
41
74
|
* @since 1.18.0
|
|
42
|
-
* @category
|
|
75
|
+
* @category State updates
|
|
43
76
|
*/
|
|
44
77
|
export const update = dual(3, function update(ref, key, f) {
|
|
45
78
|
return RefSubject.update(ref, (self) => Struct.evolve(self, { [key]: f }));
|
|
46
79
|
});
|
|
47
80
|
/**
|
|
48
81
|
* Merge another struct into the current state of a RefStruct.
|
|
82
|
+
* @remarks
|
|
83
|
+
* ## Why
|
|
84
|
+
*
|
|
85
|
+
* Combines bulk struct changes in one committed value, giving subscribers one coherent update
|
|
86
|
+
* rather than a partially applied sequence.
|
|
87
|
+
*
|
|
88
|
+
* ## Ownership and lifetime
|
|
89
|
+
*
|
|
90
|
+
* Running merge performs one serialized struct transition and resolves with its committed value.
|
|
91
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
92
|
+
*
|
|
49
93
|
* @since 1.18.0
|
|
50
|
-
* @category
|
|
94
|
+
* @category State updates
|
|
51
95
|
*/
|
|
52
96
|
export const merge = dual(2, function merge(ref, that) {
|
|
53
97
|
return RefSubject.update(ref, (self) => Struct.assign(self, that));
|
|
@@ -57,57 +101,157 @@ export const merge = dual(2, function merge(ref, that) {
|
|
|
57
101
|
// ========================================
|
|
58
102
|
/**
|
|
59
103
|
* Pick properties from the current state of a RefStruct.
|
|
104
|
+
* @remarks
|
|
105
|
+
* ## Why
|
|
106
|
+
*
|
|
107
|
+
* Projects struct state with pick for both current reads and future pushes, avoiding a second
|
|
108
|
+
* mutable cache of the derived value.
|
|
109
|
+
*
|
|
110
|
+
* ## Ownership and lifetime
|
|
111
|
+
*
|
|
112
|
+
* The pick view retains no independent state. An Effect read samples the source once; Fx
|
|
113
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
114
|
+
*
|
|
60
115
|
* @since 1.18.0
|
|
61
|
-
* @category
|
|
116
|
+
* @category Derived queries
|
|
62
117
|
*/
|
|
63
118
|
export const pick = dual(2, function pick(ref, keys) {
|
|
64
119
|
return RefSubject.map(ref, (self) => Struct.pick(self, keys));
|
|
65
120
|
});
|
|
66
121
|
/**
|
|
67
122
|
* Omit properties from the current state of a RefStruct.
|
|
123
|
+
* @remarks
|
|
124
|
+
* ## Why
|
|
125
|
+
*
|
|
126
|
+
* Projects struct state with omit for both current reads and future pushes, avoiding a second
|
|
127
|
+
* mutable cache of the derived value.
|
|
128
|
+
*
|
|
129
|
+
* ## Ownership and lifetime
|
|
130
|
+
*
|
|
131
|
+
* The omit view retains no independent state. An Effect read samples the source once; Fx
|
|
132
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
133
|
+
*
|
|
68
134
|
* @since 1.18.0
|
|
69
|
-
* @category
|
|
135
|
+
* @category Derived queries
|
|
70
136
|
*/
|
|
71
137
|
export const omit = dual(2, function omit(ref, keys) {
|
|
72
138
|
return RefSubject.map(ref, (self) => Struct.omit(self, keys));
|
|
73
139
|
});
|
|
74
140
|
/**
|
|
75
141
|
* Get a property value from the current state of a RefStruct.
|
|
142
|
+
* @remarks
|
|
143
|
+
* ## Why
|
|
144
|
+
*
|
|
145
|
+
* Projects a known property as Computed state, so current reads and future pushes stay linked to
|
|
146
|
+
* the struct without copying that field into a second store.
|
|
147
|
+
*
|
|
148
|
+
* ## Ownership and lifetime
|
|
149
|
+
*
|
|
150
|
+
* The get view retains no independent state. An Effect read samples the source once; Fx
|
|
151
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```ts
|
|
155
|
+
* import { Effect } from "effect"
|
|
156
|
+
* import * as RefStruct from "@typed/fx/RefStruct"
|
|
157
|
+
*
|
|
158
|
+
* const program = Effect.scoped(Effect.gen(function* () {
|
|
159
|
+
* const account = yield* RefStruct.make({ name: "Ada", active: true })
|
|
160
|
+
* const name = RefStruct.get(account, "name")
|
|
161
|
+
* return yield* name
|
|
162
|
+
* }))
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
76
165
|
* @since 1.18.0
|
|
77
|
-
* @category
|
|
166
|
+
* @category Derived queries
|
|
78
167
|
*/
|
|
79
168
|
export const get = dual(2, function get(ref, key) {
|
|
80
169
|
return RefSubject.map(ref, (self) => Struct.get(self, key));
|
|
81
170
|
});
|
|
82
171
|
/**
|
|
83
172
|
* Get the keys of the current state of a RefStruct.
|
|
173
|
+
* @remarks
|
|
174
|
+
* ## Why
|
|
175
|
+
*
|
|
176
|
+
* Projects struct state with keys for both current reads and future pushes, avoiding a second
|
|
177
|
+
* mutable cache of the derived value.
|
|
178
|
+
*
|
|
179
|
+
* ## Ownership and lifetime
|
|
180
|
+
*
|
|
181
|
+
* The keys view retains no independent state. An Effect read samples the source once; Fx
|
|
182
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
183
|
+
*
|
|
84
184
|
* @since 1.18.0
|
|
85
|
-
* @category
|
|
185
|
+
* @category Derived queries
|
|
86
186
|
*/
|
|
87
187
|
export const keys = (ref) => RefSubject.map(ref, Struct.keys);
|
|
88
188
|
/**
|
|
89
189
|
* Get the values of the current state of a RefStruct.
|
|
190
|
+
* @remarks
|
|
191
|
+
* ## Why
|
|
192
|
+
*
|
|
193
|
+
* Projects struct state with values for both current reads and future pushes, avoiding a second
|
|
194
|
+
* mutable cache of the derived value.
|
|
195
|
+
*
|
|
196
|
+
* ## Ownership and lifetime
|
|
197
|
+
*
|
|
198
|
+
* The values view retains no independent state. An Effect read samples the source once; Fx
|
|
199
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
200
|
+
*
|
|
90
201
|
* @since 1.18.0
|
|
91
|
-
* @category
|
|
202
|
+
* @category Derived queries
|
|
92
203
|
*/
|
|
93
204
|
export const values = (ref) => RefSubject.map(ref, (self) => Object.values(self));
|
|
94
205
|
/**
|
|
95
206
|
* Get the entries of the current state of a RefStruct.
|
|
207
|
+
* @remarks
|
|
208
|
+
* ## Why
|
|
209
|
+
*
|
|
210
|
+
* Projects struct state with entries for both current reads and future pushes, avoiding a second
|
|
211
|
+
* mutable cache of the derived value.
|
|
212
|
+
*
|
|
213
|
+
* ## Ownership and lifetime
|
|
214
|
+
*
|
|
215
|
+
* The entries view retains no independent state. An Effect read samples the source once; Fx
|
|
216
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
217
|
+
*
|
|
96
218
|
* @since 1.18.0
|
|
97
|
-
* @category
|
|
219
|
+
* @category Derived queries
|
|
98
220
|
*/
|
|
99
221
|
export const entries = (ref) => RefSubject.map(ref, (self) => Object.entries(self));
|
|
100
222
|
/**
|
|
101
223
|
* Check if the current state of a RefStruct has a property.
|
|
224
|
+
* @remarks
|
|
225
|
+
* ## Why
|
|
226
|
+
*
|
|
227
|
+
* Makes has a live projection of the struct; consumers can sample it now or observe it without
|
|
228
|
+
* copying the source state.
|
|
229
|
+
*
|
|
230
|
+
* ## Ownership and lifetime
|
|
231
|
+
*
|
|
232
|
+
* The has 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
|
+
*
|
|
102
235
|
* @since 1.18.0
|
|
103
|
-
* @category
|
|
236
|
+
* @category State predicates
|
|
104
237
|
*/
|
|
105
238
|
export const has = dual(2, function has(ref, key) {
|
|
106
239
|
return RefSubject.map(ref, (self) => key in self);
|
|
107
240
|
});
|
|
108
241
|
/**
|
|
109
242
|
* Get the size (number of properties) of the current state of a RefStruct.
|
|
243
|
+
* @remarks
|
|
244
|
+
* ## Why
|
|
245
|
+
*
|
|
246
|
+
* Makes size a live projection of the struct; consumers can sample it now or observe it without
|
|
247
|
+
* copying the source state.
|
|
248
|
+
*
|
|
249
|
+
* ## Ownership and lifetime
|
|
250
|
+
*
|
|
251
|
+
* The size view retains no independent state. An Effect read samples the source once; Fx
|
|
252
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
253
|
+
*
|
|
110
254
|
* @since 1.18.0
|
|
111
|
-
* @category
|
|
255
|
+
* @category Derived queries
|
|
112
256
|
*/
|
|
113
257
|
export const size = (ref) => RefSubject.map(ref, (self) => Object.keys(self).length);
|