@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
|
@@ -10,18 +10,40 @@ import type * as Fx from "../Fx/index.js";
|
|
|
10
10
|
import * as RefSubject from "./RefSubject.js";
|
|
11
11
|
/**
|
|
12
12
|
* A RefOption is a RefSubject specialized over an Option value.
|
|
13
|
+
* @remarks
|
|
14
|
+
* ## Why
|
|
15
|
+
*
|
|
16
|
+
* Defines option state with the same current-read, pushed-update, and synchronized-write contract
|
|
17
|
+
* as RefSubject.
|
|
18
|
+
*
|
|
19
|
+
* ## Ownership and lifetime
|
|
20
|
+
*
|
|
21
|
+
* RefOption is a contract and performs no acquisition. Implementations retain the errors,
|
|
22
|
+
* services, interruption, and Scope requirements expressed by its members.
|
|
23
|
+
*
|
|
13
24
|
* @since 1.18.0
|
|
14
|
-
* @category models
|
|
25
|
+
* @category State models
|
|
15
26
|
*/
|
|
16
27
|
export interface RefOption<in out A, in out E = never, out R = never> extends RefSubject.RefSubject<Option.Option<A>, E, R> {
|
|
17
28
|
}
|
|
18
29
|
/**
|
|
19
30
|
* Creates a new `RefOption` from an Option, `Effect`, or `Fx`.
|
|
20
31
|
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* ## Why
|
|
34
|
+
*
|
|
35
|
+
* Creates option state with equality suited to that Effect data type, so unchanged values do not
|
|
36
|
+
* produce redundant pushed updates.
|
|
37
|
+
*
|
|
38
|
+
* ## Ownership and lifetime
|
|
39
|
+
*
|
|
40
|
+
* The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
|
|
41
|
+
* and cleanup; source failures and services stay on reads and pushes.
|
|
42
|
+
*
|
|
21
43
|
* @example
|
|
22
44
|
* ```ts
|
|
23
45
|
* import { Effect, Option } from "effect"
|
|
24
|
-
* import * as RefOption from "
|
|
46
|
+
* import * as RefOption from "@typed/fx/RefOption"
|
|
25
47
|
*
|
|
26
48
|
* const program = Effect.gen(function* () {
|
|
27
49
|
* const value = yield* RefOption.make(Option.some(42))
|
|
@@ -31,13 +53,24 @@ export interface RefOption<in out A, in out E = never, out R = never> extends Re
|
|
|
31
53
|
* ```
|
|
32
54
|
*
|
|
33
55
|
* @since 1.18.0
|
|
34
|
-
* @category
|
|
56
|
+
* @category Constructors
|
|
35
57
|
*/
|
|
36
58
|
export declare function make<A, E = never, R = never>(initial: Option.Option<A> | Effect.Effect<Option.Option<A>, E, R> | Fx.Fx<Option.Option<A>, E, R>, eq?: Equivalence<A>): Effect.Effect<RefOption<A, E>, never, R | Scope.Scope>;
|
|
37
59
|
/**
|
|
38
60
|
* Set the current state of a RefOption to Some(value).
|
|
61
|
+
* @remarks
|
|
62
|
+
* ## Why
|
|
63
|
+
*
|
|
64
|
+
* Keeps set some atomic with respect to competing RefSubject writes instead of splitting the read
|
|
65
|
+
* and replacement into separate effects.
|
|
66
|
+
*
|
|
67
|
+
* ## Ownership and lifetime
|
|
68
|
+
*
|
|
69
|
+
* Running set some performs one serialized option transition and resolves with its committed
|
|
70
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
71
|
+
*
|
|
39
72
|
* @since 1.18.0
|
|
40
|
-
* @category
|
|
73
|
+
* @category State updates
|
|
41
74
|
*/
|
|
42
75
|
export declare const setSome: {
|
|
43
76
|
<A>(value: A): <E, R>(ref: RefOption<A, E, R>) => Effect.Effect<Option.Option<A>, E, R>;
|
|
@@ -45,14 +78,36 @@ export declare const setSome: {
|
|
|
45
78
|
};
|
|
46
79
|
/**
|
|
47
80
|
* Set the current state of a RefOption to None.
|
|
81
|
+
* @remarks
|
|
82
|
+
* ## Why
|
|
83
|
+
*
|
|
84
|
+
* Keeps set none atomic with respect to competing RefSubject writes instead of splitting the read
|
|
85
|
+
* and replacement into separate effects.
|
|
86
|
+
*
|
|
87
|
+
* ## Ownership and lifetime
|
|
88
|
+
*
|
|
89
|
+
* Running set none performs one serialized option transition and resolves with its committed
|
|
90
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
91
|
+
*
|
|
48
92
|
* @since 1.18.0
|
|
49
|
-
* @category
|
|
93
|
+
* @category State updates
|
|
50
94
|
*/
|
|
51
95
|
export declare const setNone: <A, E, R>(ref: RefOption<A, E, R>) => Effect.Effect<Option.Option<A>, E, R>;
|
|
52
96
|
/**
|
|
53
97
|
* Map the value inside the Option of a RefOption.
|
|
98
|
+
* @remarks
|
|
99
|
+
* ## Why
|
|
100
|
+
*
|
|
101
|
+
* Projects option state with map for both current reads and future pushes, avoiding a second
|
|
102
|
+
* mutable cache of the derived value.
|
|
103
|
+
*
|
|
104
|
+
* ## Ownership and lifetime
|
|
105
|
+
*
|
|
106
|
+
* The map view retains no independent state. An Effect read samples the source once; Fx
|
|
107
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
108
|
+
*
|
|
54
109
|
* @since 1.18.0
|
|
55
|
-
* @category
|
|
110
|
+
* @category Derived queries
|
|
56
111
|
*/
|
|
57
112
|
export declare const map: {
|
|
58
113
|
<A, B>(f: (a: A) => B): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<Option.Option<B>, E, R>;
|
|
@@ -60,8 +115,19 @@ export declare const map: {
|
|
|
60
115
|
};
|
|
61
116
|
/**
|
|
62
117
|
* FlatMap the value inside the Option of a RefOption.
|
|
118
|
+
* @remarks
|
|
119
|
+
* ## Why
|
|
120
|
+
*
|
|
121
|
+
* Projects the optional value with `Option.flatMap` for both a current read and later source
|
|
122
|
+
* pushes; it never changes the RefOption itself.
|
|
123
|
+
*
|
|
124
|
+
* ## Ownership and lifetime
|
|
125
|
+
*
|
|
126
|
+
* The flat map view retains no independent state. An Effect read samples the source once; Fx
|
|
127
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
128
|
+
*
|
|
63
129
|
* @since 1.18.0
|
|
64
|
-
* @category
|
|
130
|
+
* @category Derived queries
|
|
65
131
|
*/
|
|
66
132
|
export declare const flatMap: {
|
|
67
133
|
<A, B>(f: (a: A) => Option.Option<B>): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<Option.Option<B>, E, R>;
|
|
@@ -69,8 +135,19 @@ export declare const flatMap: {
|
|
|
69
135
|
};
|
|
70
136
|
/**
|
|
71
137
|
* Filter the value inside the Option of a RefOption.
|
|
138
|
+
* @remarks
|
|
139
|
+
* ## Why
|
|
140
|
+
*
|
|
141
|
+
* Projects option state with filter for both current reads and future pushes, avoiding a second
|
|
142
|
+
* mutable cache of the derived value.
|
|
143
|
+
*
|
|
144
|
+
* ## Ownership and lifetime
|
|
145
|
+
*
|
|
146
|
+
* The filter view retains no independent state. An Effect read samples the source once; Fx
|
|
147
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
148
|
+
*
|
|
72
149
|
* @since 1.18.0
|
|
73
|
-
* @category
|
|
150
|
+
* @category Derived queries
|
|
74
151
|
*/
|
|
75
152
|
export declare const filter: {
|
|
76
153
|
<A>(predicate: (a: A) => boolean): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<Option.Option<A>, E, R>;
|
|
@@ -78,8 +155,19 @@ export declare const filter: {
|
|
|
78
155
|
};
|
|
79
156
|
/**
|
|
80
157
|
* Get the value from the Option or use a fallback value.
|
|
158
|
+
* @remarks
|
|
159
|
+
* ## Why
|
|
160
|
+
*
|
|
161
|
+
* Resolves `None` with the supplied fallback for both current reads and later pushes. The result is
|
|
162
|
+
* Computed, never absent, and does not add `NoSuchElementError`.
|
|
163
|
+
*
|
|
164
|
+
* ## Ownership and lifetime
|
|
165
|
+
*
|
|
166
|
+
* The get or else view retains no independent state. An Effect read samples the source once; Fx
|
|
167
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
168
|
+
*
|
|
81
169
|
* @since 1.18.0
|
|
82
|
-
* @category
|
|
170
|
+
* @category Derived queries
|
|
83
171
|
*/
|
|
84
172
|
export declare const getOrElse: {
|
|
85
173
|
<A>(fallback: () => A): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<A, E, R>;
|
|
@@ -87,20 +175,53 @@ export declare const getOrElse: {
|
|
|
87
175
|
};
|
|
88
176
|
/**
|
|
89
177
|
* Check if the current state of a RefOption is Some.
|
|
178
|
+
* @remarks
|
|
179
|
+
* ## Why
|
|
180
|
+
*
|
|
181
|
+
* Exposes whether the current Option is Some as Computed state, keeping the boolean synchronized
|
|
182
|
+
* with every later source version.
|
|
183
|
+
*
|
|
184
|
+
* ## Ownership and lifetime
|
|
185
|
+
*
|
|
186
|
+
* The is some view retains no independent state. An Effect read samples the source once; Fx
|
|
187
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
188
|
+
*
|
|
90
189
|
* @since 1.18.0
|
|
91
|
-
* @category
|
|
190
|
+
* @category State predicates
|
|
92
191
|
*/
|
|
93
192
|
export declare const isSome: <A, E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<boolean, E, R>;
|
|
94
193
|
/**
|
|
95
194
|
* Check if the current state of a RefOption is None.
|
|
195
|
+
* @remarks
|
|
196
|
+
* ## Why
|
|
197
|
+
*
|
|
198
|
+
* Exposes whether the current Option is None as Computed state, without caching a second boolean
|
|
199
|
+
* beside the source Option.
|
|
200
|
+
*
|
|
201
|
+
* ## Ownership and lifetime
|
|
202
|
+
*
|
|
203
|
+
* The is none view retains no independent state. An Effect read samples the source once; Fx
|
|
204
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
205
|
+
*
|
|
96
206
|
* @since 1.18.0
|
|
97
|
-
* @category
|
|
207
|
+
* @category State predicates
|
|
98
208
|
*/
|
|
99
209
|
export declare const isNone: <A, E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<boolean, E, R>;
|
|
100
210
|
/**
|
|
101
211
|
* Check if the current state of a RefOption contains a value.
|
|
212
|
+
* @remarks
|
|
213
|
+
* ## Why
|
|
214
|
+
*
|
|
215
|
+
* Makes contains a live projection of the option; consumers can sample it now or observe it
|
|
216
|
+
* without copying the source state.
|
|
217
|
+
*
|
|
218
|
+
* ## Ownership and lifetime
|
|
219
|
+
*
|
|
220
|
+
* The contains view retains no independent state. An Effect read samples the source once; Fx
|
|
221
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
222
|
+
*
|
|
102
223
|
* @since 1.18.0
|
|
103
|
-
* @category
|
|
224
|
+
* @category State predicates
|
|
104
225
|
*/
|
|
105
226
|
export declare const contains: {
|
|
106
227
|
<A>(value: A): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<boolean, E, R>;
|
|
@@ -108,8 +229,19 @@ export declare const contains: {
|
|
|
108
229
|
};
|
|
109
230
|
/**
|
|
110
231
|
* Check if the value inside the Option satisfies a predicate.
|
|
232
|
+
* @remarks
|
|
233
|
+
* ## Why
|
|
234
|
+
*
|
|
235
|
+
* Makes exists a live projection of the option; consumers can sample it now or observe it without
|
|
236
|
+
* copying the source state.
|
|
237
|
+
*
|
|
238
|
+
* ## Ownership and lifetime
|
|
239
|
+
*
|
|
240
|
+
* The exists view retains no independent state. An Effect read samples the source once; Fx
|
|
241
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
242
|
+
*
|
|
111
243
|
* @since 1.18.0
|
|
112
|
-
* @category
|
|
244
|
+
* @category State predicates
|
|
113
245
|
*/
|
|
114
246
|
export declare const exists: {
|
|
115
247
|
<A>(predicate: (a: A) => boolean): <E, R>(ref: RefOption<A, E, R>) => RefSubject.Computed<boolean, E, R>;
|
|
@@ -117,8 +249,19 @@ export declare const exists: {
|
|
|
117
249
|
};
|
|
118
250
|
/**
|
|
119
251
|
* Get the value from the Option as a Filtered (fails if None).
|
|
252
|
+
* @remarks
|
|
253
|
+
* ## Why
|
|
254
|
+
*
|
|
255
|
+
* Models the possibly absent result of get value as Filtered state, so absence stays explicit
|
|
256
|
+
* while later source versions can make a value available.
|
|
257
|
+
*
|
|
258
|
+
* ## Ownership and lifetime
|
|
259
|
+
*
|
|
260
|
+
* The get value view retains no independent value. Its Effect read fails with NoSuchElement
|
|
261
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
262
|
+
*
|
|
120
263
|
* @since 1.18.0
|
|
121
|
-
* @category
|
|
264
|
+
* @category Optional queries
|
|
122
265
|
*/
|
|
123
266
|
export declare const getValue: <A, E, R>(ref: RefOption<A, E, R>) => RefSubject.Filtered<A, E, R>;
|
|
124
267
|
//# sourceMappingURL=RefOption.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefOption.d.ts","sourceRoot":"","sources":["../../src/RefSubject/RefOption.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"RefOption.d.ts","sourceRoot":"","sources":["../../src/RefSubject/RefOption.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,21 @@ import * as RefSubject from "./RefSubject.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* Creates a new `RefOption` from an Option, `Effect`, or `Fx`.
|
|
11
11
|
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* ## Why
|
|
14
|
+
*
|
|
15
|
+
* Creates option state with equality suited to that Effect data type, so unchanged values do not
|
|
16
|
+
* produce redundant pushed updates.
|
|
17
|
+
*
|
|
18
|
+
* ## Ownership and lifetime
|
|
19
|
+
*
|
|
20
|
+
* The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
|
|
21
|
+
* and cleanup; source failures and services stay on reads and pushes.
|
|
22
|
+
*
|
|
12
23
|
* @example
|
|
13
24
|
* ```ts
|
|
14
25
|
* import { Effect, Option } from "effect"
|
|
15
|
-
* import * as RefOption from "
|
|
26
|
+
* import * as RefOption from "@typed/fx/RefOption"
|
|
16
27
|
*
|
|
17
28
|
* const program = Effect.gen(function* () {
|
|
18
29
|
* const value = yield* RefOption.make(Option.some(42))
|
|
@@ -22,23 +33,45 @@ import * as RefSubject from "./RefSubject.js";
|
|
|
22
33
|
* ```
|
|
23
34
|
*
|
|
24
35
|
* @since 1.18.0
|
|
25
|
-
* @category
|
|
36
|
+
* @category Constructors
|
|
26
37
|
*/
|
|
27
38
|
export function make(initial, eq = Equivalence_.strictEqual()) {
|
|
28
39
|
return RefSubject.make(initial, { eq: Option.makeEquivalence(eq) });
|
|
29
40
|
}
|
|
30
41
|
/**
|
|
31
42
|
* Set the current state of a RefOption to Some(value).
|
|
43
|
+
* @remarks
|
|
44
|
+
* ## Why
|
|
45
|
+
*
|
|
46
|
+
* Keeps set some atomic with respect to competing RefSubject writes instead of splitting the read
|
|
47
|
+
* and replacement into separate effects.
|
|
48
|
+
*
|
|
49
|
+
* ## Ownership and lifetime
|
|
50
|
+
*
|
|
51
|
+
* Running set some performs one serialized option transition and resolves with its committed
|
|
52
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
53
|
+
*
|
|
32
54
|
* @since 1.18.0
|
|
33
|
-
* @category
|
|
55
|
+
* @category State updates
|
|
34
56
|
*/
|
|
35
57
|
export const setSome = dual(2, function setSome(ref, value) {
|
|
36
58
|
return RefSubject.set(ref, Option.some(value));
|
|
37
59
|
});
|
|
38
60
|
/**
|
|
39
61
|
* Set the current state of a RefOption to None.
|
|
62
|
+
* @remarks
|
|
63
|
+
* ## Why
|
|
64
|
+
*
|
|
65
|
+
* Keeps set none atomic with respect to competing RefSubject writes instead of splitting the read
|
|
66
|
+
* and replacement into separate effects.
|
|
67
|
+
*
|
|
68
|
+
* ## Ownership and lifetime
|
|
69
|
+
*
|
|
70
|
+
* Running set none performs one serialized option transition and resolves with its committed
|
|
71
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
72
|
+
*
|
|
40
73
|
* @since 1.18.0
|
|
41
|
-
* @category
|
|
74
|
+
* @category State updates
|
|
42
75
|
*/
|
|
43
76
|
export const setNone = (ref) => RefSubject.set(ref, Option.none());
|
|
44
77
|
// ========================================
|
|
@@ -46,60 +79,148 @@ export const setNone = (ref) => RefSubject.set(ref, Option.none());
|
|
|
46
79
|
// ========================================
|
|
47
80
|
/**
|
|
48
81
|
* Map the value inside the Option of a RefOption.
|
|
82
|
+
* @remarks
|
|
83
|
+
* ## Why
|
|
84
|
+
*
|
|
85
|
+
* Projects option state with map for both current reads and future pushes, avoiding a second
|
|
86
|
+
* mutable cache of the derived value.
|
|
87
|
+
*
|
|
88
|
+
* ## Ownership and lifetime
|
|
89
|
+
*
|
|
90
|
+
* The map view retains no independent state. An Effect read samples the source once; Fx
|
|
91
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
92
|
+
*
|
|
49
93
|
* @since 1.18.0
|
|
50
|
-
* @category
|
|
94
|
+
* @category Derived queries
|
|
51
95
|
*/
|
|
52
96
|
export const map = dual(2, function map(ref, f) {
|
|
53
97
|
return RefSubject.map(ref, (self) => Option.map(self, f));
|
|
54
98
|
});
|
|
55
99
|
/**
|
|
56
100
|
* FlatMap the value inside the Option of a RefOption.
|
|
101
|
+
* @remarks
|
|
102
|
+
* ## Why
|
|
103
|
+
*
|
|
104
|
+
* Projects the optional value with `Option.flatMap` for both a current read and later source
|
|
105
|
+
* pushes; it never changes the RefOption itself.
|
|
106
|
+
*
|
|
107
|
+
* ## Ownership and lifetime
|
|
108
|
+
*
|
|
109
|
+
* The flat map view retains no independent state. An Effect read samples the source once; Fx
|
|
110
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
111
|
+
*
|
|
57
112
|
* @since 1.18.0
|
|
58
|
-
* @category
|
|
113
|
+
* @category Derived queries
|
|
59
114
|
*/
|
|
60
115
|
export const flatMap = dual(2, function flatMap(ref, f) {
|
|
61
116
|
return RefSubject.map(ref, (self) => Option.flatMap(self, f));
|
|
62
117
|
});
|
|
63
118
|
/**
|
|
64
119
|
* Filter the value inside the Option of a RefOption.
|
|
120
|
+
* @remarks
|
|
121
|
+
* ## Why
|
|
122
|
+
*
|
|
123
|
+
* Projects option state with filter 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 filter 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 const filter = dual(2, function filter(ref, predicate) {
|
|
69
135
|
return RefSubject.map(ref, (self) => Option.filter(self, predicate));
|
|
70
136
|
});
|
|
71
137
|
/**
|
|
72
138
|
* Get the value from the Option or use a fallback value.
|
|
139
|
+
* @remarks
|
|
140
|
+
* ## Why
|
|
141
|
+
*
|
|
142
|
+
* Resolves `None` with the supplied fallback for both current reads and later pushes. The result is
|
|
143
|
+
* Computed, never absent, and does not add `NoSuchElementError`.
|
|
144
|
+
*
|
|
145
|
+
* ## Ownership and lifetime
|
|
146
|
+
*
|
|
147
|
+
* The get or else view retains no independent state. An Effect read samples the source once; Fx
|
|
148
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
149
|
+
*
|
|
73
150
|
* @since 1.18.0
|
|
74
|
-
* @category
|
|
151
|
+
* @category Derived queries
|
|
75
152
|
*/
|
|
76
153
|
export const getOrElse = dual(2, function getOrElse(ref, fallback) {
|
|
77
154
|
return RefSubject.map(ref, (self) => Option.getOrElse(self, fallback));
|
|
78
155
|
});
|
|
79
156
|
/**
|
|
80
157
|
* Check if the current state of a RefOption is Some.
|
|
158
|
+
* @remarks
|
|
159
|
+
* ## Why
|
|
160
|
+
*
|
|
161
|
+
* Exposes whether the current Option is Some as Computed state, keeping the boolean synchronized
|
|
162
|
+
* with every later source version.
|
|
163
|
+
*
|
|
164
|
+
* ## Ownership and lifetime
|
|
165
|
+
*
|
|
166
|
+
* The is some view retains no independent state. An Effect read samples the source once; Fx
|
|
167
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
168
|
+
*
|
|
81
169
|
* @since 1.18.0
|
|
82
|
-
* @category
|
|
170
|
+
* @category State predicates
|
|
83
171
|
*/
|
|
84
172
|
export const isSome = (ref) => RefSubject.map(ref, Option.isSome);
|
|
85
173
|
/**
|
|
86
174
|
* Check if the current state of a RefOption is None.
|
|
175
|
+
* @remarks
|
|
176
|
+
* ## Why
|
|
177
|
+
*
|
|
178
|
+
* Exposes whether the current Option is None as Computed state, without caching a second boolean
|
|
179
|
+
* beside the source Option.
|
|
180
|
+
*
|
|
181
|
+
* ## Ownership and lifetime
|
|
182
|
+
*
|
|
183
|
+
* The is none view retains no independent state. An Effect read samples the source once; Fx
|
|
184
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
185
|
+
*
|
|
87
186
|
* @since 1.18.0
|
|
88
|
-
* @category
|
|
187
|
+
* @category State predicates
|
|
89
188
|
*/
|
|
90
189
|
export const isNone = (ref) => RefSubject.map(ref, Option.isNone);
|
|
91
190
|
/**
|
|
92
191
|
* Check if the current state of a RefOption contains a value.
|
|
192
|
+
* @remarks
|
|
193
|
+
* ## Why
|
|
194
|
+
*
|
|
195
|
+
* Makes contains a live projection of the option; consumers can sample it now or observe it
|
|
196
|
+
* without copying the source state.
|
|
197
|
+
*
|
|
198
|
+
* ## Ownership and lifetime
|
|
199
|
+
*
|
|
200
|
+
* The contains 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
|
+
*
|
|
93
203
|
* @since 1.18.0
|
|
94
|
-
* @category
|
|
204
|
+
* @category State predicates
|
|
95
205
|
*/
|
|
96
206
|
export const contains = dual(2, function contains(ref, value) {
|
|
97
207
|
return RefSubject.map(ref, (self) => Option.contains(self, value));
|
|
98
208
|
});
|
|
99
209
|
/**
|
|
100
210
|
* Check if the value inside the Option satisfies a predicate.
|
|
211
|
+
* @remarks
|
|
212
|
+
* ## Why
|
|
213
|
+
*
|
|
214
|
+
* Makes exists a live projection of the option; consumers can sample it now or observe it without
|
|
215
|
+
* copying the source state.
|
|
216
|
+
*
|
|
217
|
+
* ## Ownership and lifetime
|
|
218
|
+
*
|
|
219
|
+
* The exists view retains no independent state. An Effect read samples the source once; Fx
|
|
220
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
221
|
+
*
|
|
101
222
|
* @since 1.18.0
|
|
102
|
-
* @category
|
|
223
|
+
* @category State predicates
|
|
103
224
|
*/
|
|
104
225
|
export const exists = dual(2, function exists(ref, predicate) {
|
|
105
226
|
return RefSubject.map(ref, (self) => Option.exists(self, predicate));
|
|
@@ -109,7 +230,18 @@ export const exists = dual(2, function exists(ref, predicate) {
|
|
|
109
230
|
// ========================================
|
|
110
231
|
/**
|
|
111
232
|
* Get the value from the Option as a Filtered (fails if None).
|
|
233
|
+
* @remarks
|
|
234
|
+
* ## Why
|
|
235
|
+
*
|
|
236
|
+
* Models the possibly absent result of get value as Filtered state, so absence stays explicit
|
|
237
|
+
* while later source versions can make a value available.
|
|
238
|
+
*
|
|
239
|
+
* ## Ownership and lifetime
|
|
240
|
+
*
|
|
241
|
+
* The get value view retains no independent value. Its Effect read fails with NoSuchElement
|
|
242
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
243
|
+
*
|
|
112
244
|
* @since 1.18.0
|
|
113
|
-
* @category
|
|
245
|
+
* @category Optional queries
|
|
114
246
|
*/
|
|
115
247
|
export const getValue = (ref) => RefSubject.compact(ref);
|