@typed/fx 2.0.0-beta.0 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +58 -21
- package/dist/Fx/Fx.d.ts +371 -19
- package/dist/Fx/Fx.d.ts.map +1 -1
- package/dist/Fx/Fx.js +37 -6
- package/dist/Fx/TypeId.d.ts +52 -6
- package/dist/Fx/TypeId.d.ts.map +1 -1
- package/dist/Fx/TypeId.js +41 -4
- package/dist/Fx/combinators/additive.d.ts +245 -0
- package/dist/Fx/combinators/additive.d.ts.map +1 -0
- package/dist/Fx/combinators/additive.js +243 -0
- package/dist/Fx/combinators/catch.d.ts +246 -12
- package/dist/Fx/combinators/catch.d.ts.map +1 -1
- package/dist/Fx/combinators/catch.js +236 -12
- package/dist/Fx/combinators/causes.d.ts +25 -2
- package/dist/Fx/combinators/causes.d.ts.map +1 -1
- package/dist/Fx/combinators/causes.js +25 -2
- package/dist/Fx/combinators/changesWithEffect.d.ts +40 -0
- package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -0
- package/dist/Fx/combinators/changesWithEffect.js +48 -0
- package/dist/Fx/combinators/compact.d.ts +18 -1
- package/dist/Fx/combinators/compact.d.ts.map +1 -1
- package/dist/Fx/combinators/compact.js +18 -1
- package/dist/Fx/combinators/concatMap.d.ts +86 -0
- package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
- package/dist/Fx/combinators/concatMap.js +86 -0
- package/dist/Fx/combinators/continueWith.d.ts +113 -5
- package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
- package/dist/Fx/combinators/continueWith.js +113 -5
- package/dist/Fx/combinators/debounce.d.ts +34 -0
- package/dist/Fx/combinators/debounce.d.ts.map +1 -0
- package/dist/Fx/combinators/debounce.js +35 -0
- package/dist/Fx/combinators/delay.d.ts +36 -0
- package/dist/Fx/combinators/delay.d.ts.map +1 -0
- package/dist/Fx/combinators/delay.js +33 -0
- package/dist/Fx/combinators/dropUntil.d.ts +71 -0
- package/dist/Fx/combinators/dropUntil.d.ts.map +1 -0
- package/dist/Fx/combinators/dropUntil.js +65 -0
- package/dist/Fx/combinators/during.d.ts +38 -0
- package/dist/Fx/combinators/during.d.ts.map +1 -0
- package/dist/Fx/combinators/during.js +85 -0
- package/dist/Fx/combinators/ensuring.d.ts +34 -4
- package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
- package/dist/Fx/combinators/ensuring.js +34 -4
- package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
- package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
- package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
- package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
- package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMap.js +38 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
- package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
- package/dist/Fx/combinators/exit.d.ts +23 -2
- package/dist/Fx/combinators/exit.d.ts.map +1 -1
- package/dist/Fx/combinators/exit.js +23 -2
- package/dist/Fx/combinators/filter.d.ts +17 -1
- package/dist/Fx/combinators/filter.d.ts.map +1 -1
- package/dist/Fx/combinators/filter.js +17 -1
- package/dist/Fx/combinators/filterEffect.d.ts +22 -1
- package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterEffect.js +22 -1
- package/dist/Fx/combinators/filterMap.d.ts +20 -1
- package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMap.js +20 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
- package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoop.js +20 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
- package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
- package/dist/Fx/combinators/flatMap.d.ts +50 -5
- package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMap.js +36 -3
- package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
- package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrently.js +51 -4
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
- package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
- package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/flatMapEffect.js +32 -2
- package/dist/Fx/combinators/flip.d.ts +34 -2
- package/dist/Fx/combinators/flip.d.ts.map +1 -1
- package/dist/Fx/combinators/flip.js +34 -2
- package/dist/Fx/combinators/gen.d.ts +29 -10
- package/dist/Fx/combinators/gen.d.ts.map +1 -1
- package/dist/Fx/combinators/gen.js +28 -4
- package/dist/Fx/combinators/genScoped.d.ts +33 -10
- package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/genScoped.js +31 -3
- package/dist/Fx/combinators/grouped.d.ts +89 -0
- package/dist/Fx/combinators/grouped.d.ts.map +1 -0
- package/dist/Fx/combinators/grouped.js +146 -0
- package/dist/Fx/combinators/index.d.ts +45 -0
- package/dist/Fx/combinators/index.d.ts.map +1 -1
- package/dist/Fx/combinators/index.js +45 -0
- package/dist/Fx/combinators/keyed.d.ts +124 -10
- package/dist/Fx/combinators/keyed.d.ts.map +1 -1
- package/dist/Fx/combinators/keyed.js +69 -11
- package/dist/Fx/combinators/loop.d.ts +17 -1
- package/dist/Fx/combinators/loop.d.ts.map +1 -1
- package/dist/Fx/combinators/loop.js +17 -1
- package/dist/Fx/combinators/loopCause.d.ts +18 -1
- package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCause.js +18 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
- package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopCauseEffect.js +19 -1
- package/dist/Fx/combinators/loopEffect.d.ts +24 -1
- package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/loopEffect.js +24 -1
- package/dist/Fx/combinators/map.d.ts +46 -1
- package/dist/Fx/combinators/map.d.ts.map +1 -1
- package/dist/Fx/combinators/map.js +43 -1
- package/dist/Fx/combinators/mapBoth.d.ts +40 -0
- package/dist/Fx/combinators/mapBoth.d.ts.map +1 -0
- package/dist/Fx/combinators/mapBoth.js +33 -0
- package/dist/Fx/combinators/mapEffect.d.ts +25 -1
- package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/mapEffect.js +25 -1
- package/dist/Fx/combinators/mapError.d.ts +33 -0
- package/dist/Fx/combinators/mapError.d.ts.map +1 -0
- package/dist/Fx/combinators/mapError.js +32 -0
- package/dist/Fx/combinators/mergeAll.d.ts +35 -1
- package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeAll.js +35 -1
- package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
- package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
- package/dist/Fx/combinators/mergeOrdered.js +68 -14
- package/dist/Fx/combinators/onError.d.ts +34 -4
- package/dist/Fx/combinators/onError.d.ts.map +1 -1
- package/dist/Fx/combinators/onError.js +34 -4
- package/dist/Fx/combinators/onExit.d.ts +29 -3
- package/dist/Fx/combinators/onExit.d.ts.map +1 -1
- package/dist/Fx/combinators/onExit.js +29 -3
- package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
- package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
- package/dist/Fx/combinators/onInterrupt.js +49 -4
- package/dist/Fx/combinators/pairwise.d.ts +28 -0
- package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
- package/dist/Fx/combinators/pairwise.js +31 -0
- package/dist/Fx/combinators/provide.d.ts +162 -8
- package/dist/Fx/combinators/provide.d.ts.map +1 -1
- package/dist/Fx/combinators/provide.js +154 -6
- package/dist/Fx/combinators/race.d.ts +92 -0
- package/dist/Fx/combinators/race.d.ts.map +1 -0
- package/dist/Fx/combinators/race.js +149 -0
- package/dist/Fx/combinators/repeat.d.ts +41 -0
- package/dist/Fx/combinators/repeat.d.ts.map +1 -0
- package/dist/Fx/combinators/repeat.js +57 -0
- package/dist/Fx/combinators/result.d.ts +45 -0
- package/dist/Fx/combinators/result.d.ts.map +1 -0
- package/dist/Fx/combinators/result.js +46 -0
- package/dist/Fx/combinators/retry.d.ts +53 -0
- package/dist/Fx/combinators/retry.d.ts.map +1 -0
- package/dist/Fx/combinators/retry.js +71 -0
- package/dist/Fx/combinators/sample.d.ts +31 -0
- package/dist/Fx/combinators/sample.d.ts.map +1 -0
- package/dist/Fx/combinators/sample.js +42 -0
- package/dist/Fx/combinators/scan.d.ts +72 -0
- package/dist/Fx/combinators/scan.d.ts.map +1 -0
- package/dist/Fx/combinators/scan.js +77 -0
- package/dist/Fx/combinators/since.d.ts +30 -0
- package/dist/Fx/combinators/since.d.ts.map +1 -0
- package/dist/Fx/combinators/since.js +39 -0
- package/dist/Fx/combinators/skip.d.ts +45 -1
- package/dist/Fx/combinators/skip.d.ts.map +1 -1
- package/dist/Fx/combinators/skip.js +43 -1
- package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
- package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeats.js +17 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
- package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
- package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
- package/dist/Fx/combinators/skipWhile.d.ts +117 -0
- package/dist/Fx/combinators/skipWhile.d.ts.map +1 -0
- package/dist/Fx/combinators/skipWhile.js +134 -0
- package/dist/Fx/combinators/slice.d.ts +97 -2
- package/dist/Fx/combinators/slice.d.ts.map +1 -1
- package/dist/Fx/combinators/slice.js +45 -1
- package/dist/Fx/combinators/switchMap.d.ts +39 -1
- package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMap.js +43 -5
- package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
- package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/switchMapEffect.js +38 -1
- package/dist/Fx/combinators/take.d.ts +46 -1
- package/dist/Fx/combinators/take.d.ts.map +1 -1
- package/dist/Fx/combinators/take.js +44 -1
- package/dist/Fx/combinators/takeUntil.d.ts +62 -2
- package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
- package/dist/Fx/combinators/takeUntil.js +62 -2
- package/dist/Fx/combinators/takeWhile.d.ts +60 -0
- package/dist/Fx/combinators/takeWhile.d.ts.map +1 -0
- package/dist/Fx/combinators/takeWhile.js +54 -0
- package/dist/Fx/combinators/tapEffect.d.ts +17 -1
- package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
- package/dist/Fx/combinators/tapEffect.js +17 -1
- package/dist/Fx/combinators/throttle.d.ts +79 -0
- package/dist/Fx/combinators/throttle.d.ts.map +1 -0
- package/dist/Fx/combinators/throttle.js +99 -0
- package/dist/Fx/combinators/timeout.d.ts +76 -0
- package/dist/Fx/combinators/timeout.d.ts.map +1 -0
- package/dist/Fx/combinators/timeout.js +110 -0
- package/dist/Fx/combinators/tuple.d.ts +32 -2
- package/dist/Fx/combinators/tuple.d.ts.map +1 -1
- package/dist/Fx/combinators/tuple.js +36 -5
- package/dist/Fx/combinators/until.d.ts +27 -0
- package/dist/Fx/combinators/until.d.ts.map +1 -0
- package/dist/Fx/combinators/until.js +56 -0
- package/dist/Fx/combinators/unwrap.d.ts +31 -2
- package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrap.js +30 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
- package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
- package/dist/Fx/combinators/unwrapScoped.js +34 -1
- package/dist/Fx/combinators/when.d.ts +37 -2
- package/dist/Fx/combinators/when.d.ts.map +1 -1
- package/dist/Fx/combinators/when.js +38 -3
- package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
- package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
- package/dist/Fx/combinators/withLatestFrom.js +68 -0
- package/dist/Fx/combinators/withSpan.d.ts +35 -1
- package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
- package/dist/Fx/combinators/withSpan.js +34 -3
- package/dist/Fx/combinators/zip.d.ts +135 -0
- package/dist/Fx/combinators/zip.d.ts.map +1 -0
- package/dist/Fx/combinators/zip.js +160 -0
- package/dist/Fx/constructors/at.d.ts +23 -3
- package/dist/Fx/constructors/at.d.ts.map +1 -1
- package/dist/Fx/constructors/at.js +21 -1
- package/dist/Fx/constructors/die.d.ts +22 -1
- package/dist/Fx/constructors/die.d.ts.map +1 -1
- package/dist/Fx/constructors/die.js +22 -1
- package/dist/Fx/constructors/empty.d.ts +19 -1
- package/dist/Fx/constructors/empty.d.ts.map +1 -1
- package/dist/Fx/constructors/empty.js +19 -1
- package/dist/Fx/constructors/fail.d.ts +22 -1
- package/dist/Fx/constructors/fail.d.ts.map +1 -1
- package/dist/Fx/constructors/fail.js +22 -1
- package/dist/Fx/constructors/failCause.d.ts +23 -1
- package/dist/Fx/constructors/failCause.d.ts.map +1 -1
- package/dist/Fx/constructors/failCause.js +23 -1
- package/dist/Fx/constructors/fn.d.ts +116 -16
- package/dist/Fx/constructors/fn.d.ts.map +1 -1
- package/dist/Fx/constructors/fn.js +36 -0
- package/dist/Fx/constructors/fromEffect.d.ts +45 -3
- package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
- package/dist/Fx/constructors/fromEffect.js +45 -3
- package/dist/Fx/constructors/fromFailures.d.ts +25 -1
- package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
- package/dist/Fx/constructors/fromFailures.js +25 -1
- package/dist/Fx/constructors/fromIterable.d.ts +23 -1
- package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
- package/dist/Fx/constructors/fromIterable.js +23 -1
- package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
- package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
- package/dist/Fx/constructors/fromSchedule.js +28 -3
- package/dist/Fx/constructors/index.d.ts +2 -1
- package/dist/Fx/constructors/index.d.ts.map +1 -1
- package/dist/Fx/constructors/index.js +2 -1
- package/dist/Fx/constructors/interrupt.d.ts +22 -2
- package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
- package/dist/Fx/constructors/interrupt.js +22 -2
- package/dist/Fx/constructors/make.d.ts +151 -4
- package/dist/Fx/constructors/make.d.ts.map +1 -1
- package/dist/Fx/constructors/make.js +60 -7
- package/dist/Fx/constructors/periodic.d.ts +31 -2
- package/dist/Fx/constructors/periodic.d.ts.map +1 -1
- package/dist/Fx/constructors/periodic.js +30 -1
- package/dist/Fx/constructors/succeed.d.ts +79 -7
- package/dist/Fx/constructors/succeed.d.ts.map +1 -1
- package/dist/Fx/constructors/succeed.js +79 -7
- package/dist/Fx/constructors/suspend.d.ts +28 -0
- package/dist/Fx/constructors/suspend.d.ts.map +1 -1
- package/dist/Fx/constructors/suspend.js +28 -0
- package/dist/Fx/constructors/sync.d.ts +32 -0
- package/dist/Fx/constructors/sync.d.ts.map +1 -0
- package/dist/Fx/constructors/sync.js +32 -0
- package/dist/Fx/internal/DeferredRef.d.ts +259 -7
- package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
- package/dist/Fx/internal/DeferredRef.js +260 -9
- package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
- package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
- package/dist/Fx/internal/diff.d.ts +586 -0
- package/dist/Fx/internal/diff.d.ts.map +1 -1
- package/dist/Fx/internal/diff.js +120 -9
- package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
- package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
- package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
- package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
- package/dist/Fx/internal/effectableWithOverride.js +46 -0
- package/dist/Fx/internal/equivalence.d.ts +29 -0
- package/dist/Fx/internal/equivalence.d.ts.map +1 -1
- package/dist/Fx/internal/equivalence.js +29 -0
- package/dist/Fx/internal/multicast.d.ts +145 -2
- package/dist/Fx/internal/multicast.d.ts.map +1 -1
- package/dist/Fx/internal/multicast.js +146 -4
- package/dist/Fx/internal/ring-buffer.d.ts +149 -0
- package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
- package/dist/Fx/internal/ring-buffer.js +155 -0
- package/dist/Fx/internal/scope.d.ts +184 -0
- package/dist/Fx/internal/scope.d.ts.map +1 -1
- package/dist/Fx/internal/scope.js +150 -0
- package/dist/Fx/internal/yieldable.d.ts +117 -2
- package/dist/Fx/internal/yieldable.d.ts.map +1 -1
- package/dist/Fx/internal/yieldable.js +86 -3
- package/dist/Fx/run/collect.d.ts +93 -4
- package/dist/Fx/run/collect.d.ts.map +1 -1
- package/dist/Fx/run/collect.js +94 -5
- package/dist/Fx/run/first.d.ts +23 -1
- package/dist/Fx/run/first.d.ts.map +1 -1
- package/dist/Fx/run/first.js +23 -1
- package/dist/Fx/run/fork.d.ts +52 -2
- package/dist/Fx/run/fork.d.ts.map +1 -1
- package/dist/Fx/run/fork.js +52 -2
- package/dist/Fx/run/observe.d.ts +112 -4
- package/dist/Fx/run/observe.d.ts.map +1 -1
- package/dist/Fx/run/observe.js +137 -16
- package/dist/Fx/run/runPromise.d.ts +45 -2
- package/dist/Fx/run/runPromise.d.ts.map +1 -1
- package/dist/Fx/run/runPromise.js +45 -2
- package/dist/Fx/stream.d.ts +92 -0
- package/dist/Fx/stream.d.ts.map +1 -1
- package/dist/Fx/stream.js +60 -1
- package/dist/Push/Push.d.ts +1286 -98
- package/dist/Push/Push.d.ts.map +1 -1
- package/dist/Push/Push.js +1074 -88
- package/dist/RefArray.d.ts +2 -0
- package/dist/RefArray.d.ts.map +1 -0
- package/dist/RefArray.js +1 -0
- package/dist/RefBigDecimal.d.ts +2 -0
- package/dist/RefBigDecimal.d.ts.map +1 -0
- package/dist/RefBigDecimal.js +1 -0
- package/dist/RefBigInt.d.ts +2 -0
- package/dist/RefBigInt.d.ts.map +1 -0
- package/dist/RefBigInt.js +1 -0
- package/dist/RefBoolean.d.ts +2 -0
- package/dist/RefBoolean.d.ts.map +1 -0
- package/dist/RefBoolean.js +1 -0
- package/dist/RefCause.d.ts +2 -0
- package/dist/RefCause.d.ts.map +1 -0
- package/dist/RefCause.js +1 -0
- package/dist/RefChunk.d.ts +2 -0
- package/dist/RefChunk.d.ts.map +1 -0
- package/dist/RefChunk.js +1 -0
- package/dist/RefDateTime.d.ts +2 -0
- package/dist/RefDateTime.d.ts.map +1 -0
- package/dist/RefDateTime.js +1 -0
- package/dist/RefDuration.d.ts +2 -0
- package/dist/RefDuration.d.ts.map +1 -0
- package/dist/RefDuration.js +1 -0
- package/dist/RefGraph.d.ts +2 -0
- package/dist/RefGraph.d.ts.map +1 -0
- package/dist/RefGraph.js +1 -0
- package/dist/RefHashMap.d.ts +2 -0
- package/dist/RefHashMap.d.ts.map +1 -0
- package/dist/RefHashMap.js +1 -0
- package/dist/RefHashRing.d.ts +2 -0
- package/dist/RefHashRing.d.ts.map +1 -0
- package/dist/RefHashRing.js +1 -0
- package/dist/RefHashSet.d.ts +2 -0
- package/dist/RefHashSet.d.ts.map +1 -0
- package/dist/RefHashSet.js +1 -0
- package/dist/RefIterable.d.ts +2 -0
- package/dist/RefIterable.d.ts.map +1 -0
- package/dist/RefIterable.js +1 -0
- package/dist/RefOption.d.ts +2 -0
- package/dist/RefOption.d.ts.map +1 -0
- package/dist/RefOption.js +1 -0
- package/dist/RefRecord.d.ts +2 -0
- package/dist/RefRecord.d.ts.map +1 -0
- package/dist/RefRecord.js +1 -0
- package/dist/RefResult.d.ts +2 -0
- package/dist/RefResult.d.ts.map +1 -0
- package/dist/RefResult.js +1 -0
- package/dist/RefString.d.ts +2 -0
- package/dist/RefString.d.ts.map +1 -0
- package/dist/RefString.js +1 -0
- package/dist/RefStruct.d.ts +2 -0
- package/dist/RefStruct.d.ts.map +1 -0
- package/dist/RefStruct.js +1 -0
- package/dist/RefSubject/Hydration.d.ts +504 -0
- package/dist/RefSubject/Hydration.d.ts.map +1 -0
- package/dist/RefSubject/Hydration.js +300 -0
- package/dist/RefSubject/RefArray.d.ts +382 -35
- package/dist/RefSubject/RefArray.d.ts.map +1 -1
- package/dist/RefSubject/RefArray.js +374 -40
- package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
- package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
- package/dist/RefSubject/RefBigDecimal.js +229 -20
- package/dist/RefSubject/RefBigInt.d.ts +181 -16
- package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
- package/dist/RefSubject/RefBigInt.js +169 -15
- package/dist/RefSubject/RefBoolean.d.ts +181 -16
- package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
- package/dist/RefSubject/RefBoolean.js +169 -15
- package/dist/RefSubject/RefCause.d.ts +133 -12
- package/dist/RefSubject/RefCause.d.ts.map +1 -1
- package/dist/RefSubject/RefCause.js +121 -11
- package/dist/RefSubject/RefChunk.d.ts +481 -76
- package/dist/RefSubject/RefChunk.d.ts.map +1 -1
- package/dist/RefSubject/RefChunk.js +471 -75
- package/dist/RefSubject/RefDateTime.d.ts +137 -16
- package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
- package/dist/RefSubject/RefDateTime.js +122 -12
- package/dist/RefSubject/RefDuration.d.ts +169 -15
- package/dist/RefSubject/RefDuration.d.ts.map +1 -1
- package/dist/RefSubject/RefDuration.js +157 -14
- package/dist/RefSubject/RefGraph.d.ts +349 -35
- package/dist/RefSubject/RefGraph.d.ts.map +1 -1
- package/dist/RefSubject/RefGraph.js +334 -32
- package/dist/RefSubject/RefHashMap.d.ts +323 -28
- package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
- package/dist/RefSubject/RefHashMap.js +317 -29
- package/dist/RefSubject/RefHashRing.d.ts +159 -15
- package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
- package/dist/RefSubject/RefHashRing.js +145 -12
- package/dist/RefSubject/RefHashSet.d.ts +251 -22
- package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
- package/dist/RefSubject/RefHashSet.js +238 -20
- package/dist/RefSubject/RefIterable.d.ts +358 -32
- package/dist/RefSubject/RefIterable.d.ts.map +1 -1
- package/dist/RefSubject/RefIterable.js +350 -30
- package/dist/RefSubject/RefOption.d.ts +157 -14
- package/dist/RefSubject/RefOption.d.ts.map +1 -1
- package/dist/RefSubject/RefOption.js +145 -13
- package/dist/RefSubject/RefRecord.d.ts +402 -64
- package/dist/RefSubject/RefRecord.d.ts.map +1 -1
- package/dist/RefSubject/RefRecord.js +364 -39
- package/dist/RefSubject/RefResult.d.ts +167 -35
- package/dist/RefSubject/RefResult.d.ts.map +1 -1
- package/dist/RefSubject/RefResult.js +133 -12
- package/dist/RefSubject/RefString.d.ts +205 -18
- package/dist/RefSubject/RefString.d.ts.map +1 -1
- package/dist/RefSubject/RefString.js +193 -17
- package/dist/RefSubject/RefStruct.d.ts +169 -14
- package/dist/RefSubject/RefStruct.d.ts.map +1 -1
- package/dist/RefSubject/RefStruct.js +157 -13
- package/dist/RefSubject/RefSubject.d.ts +1242 -43
- package/dist/RefSubject/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject/RefSubject.js +1012 -86
- package/dist/RefSubject/RefTrie.d.ts +323 -37
- package/dist/RefSubject/RefTrie.d.ts.map +1 -1
- package/dist/RefSubject/RefTrie.js +311 -31
- package/dist/RefSubject/RefTuple.d.ts +127 -11
- package/dist/RefSubject/RefTuple.d.ts.map +1 -1
- package/dist/RefSubject/RefTuple.js +114 -9
- package/dist/RefSubject/index.d.ts +1 -0
- package/dist/RefSubject/index.d.ts.map +1 -1
- package/dist/RefSubject/index.js +1 -0
- package/dist/RefSubject.d.ts +2 -1
- package/dist/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject.js +2 -1
- package/dist/RefTrie.d.ts +2 -0
- package/dist/RefTrie.d.ts.map +1 -0
- package/dist/RefTrie.js +1 -0
- package/dist/RefTuple.d.ts +2 -0
- package/dist/RefTuple.d.ts.map +1 -0
- package/dist/RefTuple.js +1 -0
- package/dist/Sink/Sink.d.ts +396 -23
- package/dist/Sink/Sink.d.ts.map +1 -1
- package/dist/Sink/Sink.js +55 -7
- package/dist/Sink/combinators.d.ts +789 -3
- package/dist/Sink/combinators.d.ts.map +1 -1
- package/dist/Sink/combinators.js +812 -7
- package/dist/Subject/Subject.d.ts +1022 -27
- package/dist/Subject/Subject.d.ts.map +1 -1
- package/dist/Subject/Subject.js +909 -43
- package/dist/Versioned/Versioned.d.ts +475 -25
- package/dist/Versioned/Versioned.d.ts.map +1 -1
- package/dist/Versioned/Versioned.js +298 -46
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -3
- package/package.json +125 -11
- package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
- package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
- package/dist/Fx/constructors/fromYieldable.js +0 -12
- package/src/Fx/Fx.ts +0 -164
- package/src/Fx/TypeId.ts +0 -25
- package/src/Fx/combinators/catch.ts +0 -165
- package/src/Fx/combinators/causes.ts +0 -23
- package/src/Fx/combinators/compact.ts +0 -15
- package/src/Fx/combinators/continueWith.ts +0 -78
- package/src/Fx/combinators/ensuring.ts +0 -23
- package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
- package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
- package/src/Fx/combinators/exhaustMap.ts +0 -36
- package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
- package/src/Fx/combinators/exit.ts +0 -15
- package/src/Fx/combinators/filter.ts +0 -22
- package/src/Fx/combinators/filterEffect.ts +0 -31
- package/src/Fx/combinators/filterMap.ts +0 -23
- package/src/Fx/combinators/filterMapEffect.ts +0 -32
- package/src/Fx/combinators/filterMapLoop.ts +0 -35
- package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
- package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
- package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
- package/src/Fx/combinators/flatMap.ts +0 -51
- package/src/Fx/combinators/flatMapConcurrently.ts +0 -36
- package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
- package/src/Fx/combinators/flatMapEffect.ts +0 -42
- package/src/Fx/combinators/flip.ts +0 -14
- package/src/Fx/combinators/gen.ts +0 -24
- package/src/Fx/combinators/genScoped.ts +0 -24
- package/src/Fx/combinators/index.ts +0 -51
- package/src/Fx/combinators/keyed.ts +0 -369
- package/src/Fx/combinators/loop.ts +0 -27
- package/src/Fx/combinators/loopCause.ts +0 -34
- package/src/Fx/combinators/loopCauseEffect.ts +0 -36
- package/src/Fx/combinators/loopEffect.ts +0 -34
- package/src/Fx/combinators/map.ts +0 -22
- package/src/Fx/combinators/mapEffect.ts +0 -32
- package/src/Fx/combinators/mergeAll.ts +0 -22
- package/src/Fx/combinators/mergeOrdered.ts +0 -123
- package/src/Fx/combinators/onError.ts +0 -40
- package/src/Fx/combinators/onExit.ts +0 -82
- package/src/Fx/combinators/onInterrupt.ts +0 -87
- package/src/Fx/combinators/provide.ts +0 -62
- package/src/Fx/combinators/skip.ts +0 -20
- package/src/Fx/combinators/skipRepeats.ts +0 -15
- package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
- package/src/Fx/combinators/slice.ts +0 -32
- package/src/Fx/combinators/switchMap.ts +0 -55
- package/src/Fx/combinators/switchMapEffect.ts +0 -25
- package/src/Fx/combinators/take.ts +0 -17
- package/src/Fx/combinators/takeUntil.ts +0 -50
- package/src/Fx/combinators/tapEffect.ts +0 -39
- package/src/Fx/combinators/tuple.ts +0 -79
- package/src/Fx/combinators/unwrap.ts +0 -21
- package/src/Fx/combinators/unwrapScoped.ts +0 -26
- package/src/Fx/combinators/when.ts +0 -64
- package/src/Fx/combinators/withSpan.ts +0 -24
- package/src/Fx/constructors/at.ts +0 -23
- package/src/Fx/constructors/die.ts +0 -17
- package/src/Fx/constructors/empty.ts +0 -10
- package/src/Fx/constructors/fail.ts +0 -14
- package/src/Fx/constructors/failCause.ts +0 -14
- package/src/Fx/constructors/fn.ts +0 -245
- package/src/Fx/constructors/fromEffect.ts +0 -24
- package/src/Fx/constructors/fromFailures.ts +0 -19
- package/src/Fx/constructors/fromIterable.ts +0 -15
- package/src/Fx/constructors/fromSchedule.ts +0 -18
- package/src/Fx/constructors/fromYieldable.ts +0 -17
- package/src/Fx/constructors/index.ts +0 -15
- package/src/Fx/constructors/interrupt.ts +0 -13
- package/src/Fx/constructors/make.ts +0 -103
- package/src/Fx/constructors/periodic.ts +0 -15
- package/src/Fx/constructors/succeed.ts +0 -37
- package/src/Fx/constructors/suspend.ts +0 -6
- package/src/Fx/index.ts +0 -6
- package/src/Fx/internal/DeferredRef.ts +0 -87
- package/src/Fx/internal/UnionToTuple.ts +0 -12
- package/src/Fx/internal/diff.ts +0 -191
- package/src/Fx/internal/equivalence.ts +0 -12
- package/src/Fx/internal/multicast.ts +0 -51
- package/src/Fx/internal/ring-buffer.ts +0 -60
- package/src/Fx/internal/scope.ts +0 -58
- package/src/Fx/internal/yieldable.ts +0 -31
- package/src/Fx/run/collect.ts +0 -79
- package/src/Fx/run/first.ts +0 -20
- package/src/Fx/run/fork.ts +0 -40
- package/src/Fx/run/index.ts +0 -5
- package/src/Fx/run/observe.ts +0 -114
- package/src/Fx/run/runPromise.ts +0 -32
- package/src/Fx/stream.ts +0 -42
- package/src/Fx.catch.test.ts +0 -61
- package/src/Fx.fn.test.ts +0 -51
- package/src/Fx.lifecycle.test.ts +0 -80
- package/src/Fx.test.ts +0 -71
- package/src/Fx.ts +0 -1
- package/src/Push/Push.ts +0 -903
- package/src/Push/index.ts +0 -1
- package/src/Push.test.ts +0 -26
- package/src/Push.ts +0 -1
- package/src/RefSubject/RefArray.ts +0 -512
- package/src/RefSubject/RefBigDecimal.test.ts +0 -56
- package/src/RefSubject/RefBigDecimal.ts +0 -295
- package/src/RefSubject/RefBigInt.test.ts +0 -56
- package/src/RefSubject/RefBigInt.ts +0 -189
- package/src/RefSubject/RefBoolean.test.ts +0 -57
- package/src/RefSubject/RefBoolean.ts +0 -185
- package/src/RefSubject/RefCause.test.ts +0 -53
- package/src/RefSubject/RefCause.ts +0 -146
- package/src/RefSubject/RefChunk.ts +0 -510
- package/src/RefSubject/RefDateTime.test.ts +0 -43
- package/src/RefSubject/RefDateTime.ts +0 -264
- package/src/RefSubject/RefDuration.test.ts +0 -49
- package/src/RefSubject/RefDuration.ts +0 -188
- package/src/RefSubject/RefGraph.ts +0 -650
- package/src/RefSubject/RefHashMap.ts +0 -465
- package/src/RefSubject/RefHashRing.ts +0 -262
- package/src/RefSubject/RefHashSet.ts +0 -308
- package/src/RefSubject/RefIterable.ts +0 -445
- package/src/RefSubject/RefOption.test.ts +0 -67
- package/src/RefSubject/RefOption.ts +0 -193
- package/src/RefSubject/RefRecord.ts +0 -612
- package/src/RefSubject/RefResult.test.ts +0 -63
- package/src/RefSubject/RefResult.ts +0 -209
- package/src/RefSubject/RefString.test.ts +0 -61
- package/src/RefSubject/RefString.ts +0 -256
- package/src/RefSubject/RefStruct.test.ts +0 -60
- package/src/RefSubject/RefStruct.ts +0 -253
- package/src/RefSubject/RefSubject.ts +0 -2545
- package/src/RefSubject/RefTrie.ts +0 -356
- package/src/RefSubject/RefTuple.test.ts +0 -60
- package/src/RefSubject/RefTuple.ts +0 -231
- package/src/RefSubject/index.ts +0 -21
- package/src/RefSubject.test.ts +0 -65
- package/src/RefSubject.ts +0 -1
- package/src/Sink/Sink.ts +0 -159
- package/src/Sink/combinators.ts +0 -993
- package/src/Sink/index.ts +0 -2
- package/src/Sink.ts +0 -1
- package/src/Subject/Subject.ts +0 -441
- package/src/Subject/index.ts +0 -1
- package/src/Subject.test.ts +0 -47
- package/src/Subject.ts +0 -1
- package/src/Versioned/Versioned.ts +0 -521
- package/src/Versioned/index.ts +0 -1
- package/src/Versioned.test.ts +0 -23
- package/src/Versioned.ts +0 -1
- package/src/index.ts +0 -7
- package/tsconfig.json +0 -6
|
@@ -5,157 +5,377 @@
|
|
|
5
5
|
import * as Chunk from "effect/Chunk";
|
|
6
6
|
import { equals } from "effect/Equal";
|
|
7
7
|
import { dual } from "effect/Function";
|
|
8
|
+
import * as Option from "effect/Option";
|
|
8
9
|
import * as RefSubject from "./RefSubject.js";
|
|
10
|
+
import { Result } from "effect";
|
|
9
11
|
/**
|
|
10
12
|
* Creates a new `RefChunk` from a Chunk, `Effect`, or `Fx`.
|
|
11
|
-
* @
|
|
12
|
-
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* ## Why
|
|
15
|
+
*
|
|
16
|
+
* Creates chunk 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
|
+
*
|
|
24
|
+
* @since 1.18.0
|
|
25
|
+
* @category Constructors
|
|
13
26
|
*/
|
|
14
27
|
export function make(initial, eq = equals) {
|
|
15
28
|
return RefSubject.make(initial, { eq: Chunk.makeEquivalence(eq) });
|
|
16
29
|
}
|
|
17
30
|
/**
|
|
18
31
|
* Prepend a value to the current state of a RefChunk.
|
|
19
|
-
* @
|
|
20
|
-
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* ## Why
|
|
34
|
+
*
|
|
35
|
+
* Expresses prepend as one ordered chunk transition; readers never observe the intermediate
|
|
36
|
+
* collection used to build the result.
|
|
37
|
+
*
|
|
38
|
+
* ## Ownership and lifetime
|
|
39
|
+
*
|
|
40
|
+
* Running prepend performs one serialized chunk transition and resolves with its committed value.
|
|
41
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
42
|
+
*
|
|
43
|
+
* @since 1.18.0
|
|
44
|
+
* @category State updates
|
|
21
45
|
*/
|
|
22
46
|
export const prepend = dual(2, function prepend(ref, value) {
|
|
23
47
|
return RefSubject.update(ref, Chunk.prepend(value));
|
|
24
48
|
});
|
|
25
49
|
/**
|
|
26
50
|
* Prepend an iterable of values to the current state of a RefChunk.
|
|
27
|
-
* @
|
|
28
|
-
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* ## Why
|
|
53
|
+
*
|
|
54
|
+
* Expresses prepend all as one ordered chunk transition; readers never observe the intermediate
|
|
55
|
+
* collection used to build the result.
|
|
56
|
+
*
|
|
57
|
+
* ## Ownership and lifetime
|
|
58
|
+
*
|
|
59
|
+
* Running prepend all performs one serialized chunk transition and resolves with its committed
|
|
60
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
61
|
+
*
|
|
62
|
+
* @since 1.18.0
|
|
63
|
+
* @category State updates
|
|
29
64
|
*/
|
|
30
65
|
export const prependAll = dual(2, function prependAll(ref, value) {
|
|
31
66
|
return RefSubject.update(ref, Chunk.prependAll(Chunk.fromIterable(value)));
|
|
32
67
|
});
|
|
33
68
|
/**
|
|
34
69
|
* Append a value to the current state of a RefChunk.
|
|
35
|
-
* @
|
|
36
|
-
*
|
|
70
|
+
* @remarks
|
|
71
|
+
* ## Why
|
|
72
|
+
*
|
|
73
|
+
* Expresses append as one ordered chunk transition; readers never observe the intermediate
|
|
74
|
+
* collection used to build the result.
|
|
75
|
+
*
|
|
76
|
+
* ## Ownership and lifetime
|
|
77
|
+
*
|
|
78
|
+
* Running append performs one serialized chunk transition and resolves with its committed value.
|
|
79
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
80
|
+
*
|
|
81
|
+
* @since 1.18.0
|
|
82
|
+
* @category State updates
|
|
37
83
|
*/
|
|
38
84
|
export const append = dual(2, function append(ref, value) {
|
|
39
85
|
return RefSubject.update(ref, Chunk.append(value));
|
|
40
86
|
});
|
|
41
87
|
/**
|
|
42
88
|
* Append an iterable of values to the current state of a RefChunk.
|
|
43
|
-
* @
|
|
44
|
-
*
|
|
89
|
+
* @remarks
|
|
90
|
+
* ## Why
|
|
91
|
+
*
|
|
92
|
+
* Expresses append all as one ordered chunk transition; readers never observe the intermediate
|
|
93
|
+
* collection used to build the result.
|
|
94
|
+
*
|
|
95
|
+
* ## Ownership and lifetime
|
|
96
|
+
*
|
|
97
|
+
* Running append all performs one serialized chunk transition and resolves with its committed
|
|
98
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
99
|
+
*
|
|
100
|
+
* @since 1.18.0
|
|
101
|
+
* @category State updates
|
|
45
102
|
*/
|
|
46
103
|
export const appendAll = dual(2, function appendAll(ref, value) {
|
|
47
104
|
return RefSubject.update(ref, Chunk.appendAll(Chunk.fromIterable(value)));
|
|
48
105
|
});
|
|
49
106
|
/**
|
|
50
107
|
* Drop the first `n` values from a RefChunk.
|
|
51
|
-
* @
|
|
52
|
-
*
|
|
108
|
+
* @remarks
|
|
109
|
+
* ## Why
|
|
110
|
+
*
|
|
111
|
+
* Applies drop to the committed chunk value and publishes only the result, preserving its element
|
|
112
|
+
* order and equality rules.
|
|
113
|
+
*
|
|
114
|
+
* ## Ownership and lifetime
|
|
115
|
+
*
|
|
116
|
+
* Running drop performs one serialized chunk transition and resolves with its committed value. It
|
|
117
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
118
|
+
*
|
|
119
|
+
* @since 1.18.0
|
|
120
|
+
* @category State updates
|
|
53
121
|
*/
|
|
54
122
|
export const drop = dual(2, function drop(ref, n) {
|
|
55
123
|
return RefSubject.update(ref, Chunk.drop(n));
|
|
56
124
|
});
|
|
57
125
|
/**
|
|
58
126
|
* Drop the last `n` values from a RefChunk.
|
|
59
|
-
* @
|
|
60
|
-
*
|
|
127
|
+
* @remarks
|
|
128
|
+
* ## Why
|
|
129
|
+
*
|
|
130
|
+
* Applies drop right to the committed chunk value and publishes only the result, preserving its
|
|
131
|
+
* element order and equality rules.
|
|
132
|
+
*
|
|
133
|
+
* ## Ownership and lifetime
|
|
134
|
+
*
|
|
135
|
+
* Running drop right performs one serialized chunk transition and resolves with its committed
|
|
136
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
137
|
+
*
|
|
138
|
+
* @since 1.18.0
|
|
139
|
+
* @category State updates
|
|
61
140
|
*/
|
|
62
141
|
export const dropRight = dual(2, function dropRight(ref, n) {
|
|
63
142
|
return RefSubject.update(ref, Chunk.dropRight(n));
|
|
64
143
|
});
|
|
65
144
|
/**
|
|
66
145
|
* Drop values from a RefChunk while a predicate is true.
|
|
67
|
-
* @
|
|
68
|
-
*
|
|
146
|
+
* @remarks
|
|
147
|
+
* ## Why
|
|
148
|
+
*
|
|
149
|
+
* Applies drop while to the committed chunk value and publishes only the result, preserving its
|
|
150
|
+
* element order and equality rules.
|
|
151
|
+
*
|
|
152
|
+
* ## Ownership and lifetime
|
|
153
|
+
*
|
|
154
|
+
* Running drop while performs one serialized chunk transition and resolves with its committed
|
|
155
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
156
|
+
*
|
|
157
|
+
* @since 1.18.0
|
|
158
|
+
* @category State updates
|
|
69
159
|
*/
|
|
70
160
|
export const dropWhile = dual(2, function dropWhile(ref, predicate) {
|
|
71
161
|
return RefSubject.update(ref, Chunk.dropWhile(predicate));
|
|
72
162
|
});
|
|
73
163
|
/**
|
|
74
164
|
* Take the first `n` values from a RefChunk.
|
|
75
|
-
* @
|
|
76
|
-
*
|
|
165
|
+
* @remarks
|
|
166
|
+
* ## Why
|
|
167
|
+
*
|
|
168
|
+
* Applies take to the committed chunk value and publishes only the result, preserving its element
|
|
169
|
+
* order and equality rules.
|
|
170
|
+
*
|
|
171
|
+
* ## Ownership and lifetime
|
|
172
|
+
*
|
|
173
|
+
* Running take performs one serialized chunk transition and resolves with its committed value. It
|
|
174
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
175
|
+
*
|
|
176
|
+
* @since 1.18.0
|
|
177
|
+
* @category State updates
|
|
77
178
|
*/
|
|
78
179
|
export const take = dual(2, function take(ref, n) {
|
|
79
180
|
return RefSubject.update(ref, Chunk.take(n));
|
|
80
181
|
});
|
|
81
182
|
/**
|
|
82
183
|
* Take the last `n` values from a RefChunk.
|
|
83
|
-
* @
|
|
84
|
-
*
|
|
184
|
+
* @remarks
|
|
185
|
+
* ## Why
|
|
186
|
+
*
|
|
187
|
+
* Applies take right to the committed chunk value and publishes only the result, preserving its
|
|
188
|
+
* element order and equality rules.
|
|
189
|
+
*
|
|
190
|
+
* ## Ownership and lifetime
|
|
191
|
+
*
|
|
192
|
+
* Running take right performs one serialized chunk transition and resolves with its committed
|
|
193
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
194
|
+
*
|
|
195
|
+
* @since 1.18.0
|
|
196
|
+
* @category State updates
|
|
85
197
|
*/
|
|
86
198
|
export const takeRight = dual(2, function takeRight(ref, n) {
|
|
87
199
|
return RefSubject.update(ref, Chunk.takeRight(n));
|
|
88
200
|
});
|
|
89
201
|
/**
|
|
90
202
|
* Take values from a RefChunk while a predicate is true.
|
|
91
|
-
* @
|
|
92
|
-
*
|
|
203
|
+
* @remarks
|
|
204
|
+
* ## Why
|
|
205
|
+
*
|
|
206
|
+
* Applies take while to the committed chunk value and publishes only the result, preserving its
|
|
207
|
+
* element order and equality rules.
|
|
208
|
+
*
|
|
209
|
+
* ## Ownership and lifetime
|
|
210
|
+
*
|
|
211
|
+
* Running take while performs one serialized chunk transition and resolves with its committed
|
|
212
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
213
|
+
*
|
|
214
|
+
* @since 1.18.0
|
|
215
|
+
* @category State updates
|
|
93
216
|
*/
|
|
94
217
|
export const takeWhile = dual(2, function takeWhile(ref, predicate) {
|
|
95
218
|
return RefSubject.update(ref, Chunk.takeWhile(predicate));
|
|
96
219
|
});
|
|
97
220
|
/**
|
|
98
221
|
* Modify the value at a particular index of a RefChunk.
|
|
99
|
-
* @
|
|
100
|
-
*
|
|
222
|
+
* @remarks
|
|
223
|
+
* ## Why
|
|
224
|
+
*
|
|
225
|
+
* Keeps modify at atomic with respect to competing RefSubject writes instead of splitting the read
|
|
226
|
+
* and replacement into separate effects.
|
|
227
|
+
*
|
|
228
|
+
* ## Ownership and lifetime
|
|
229
|
+
*
|
|
230
|
+
* Running modify at performs one serialized chunk transition and resolves with its committed
|
|
231
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
232
|
+
*
|
|
233
|
+
* @since 1.18.0
|
|
234
|
+
* @category State updates
|
|
101
235
|
*/
|
|
102
236
|
export const modifyAt = dual(3, function modifyAt(ref, index, f) {
|
|
103
|
-
return RefSubject.update(ref, (chunk) => Chunk.modify(chunk, index, f)
|
|
237
|
+
return RefSubject.update(ref, (chunk) => Option.getOrElse(Chunk.modify(chunk, index, f), () => chunk));
|
|
104
238
|
});
|
|
105
239
|
/**
|
|
106
240
|
* Replace a value at a particular index of a RefChunk.
|
|
107
|
-
* @
|
|
108
|
-
*
|
|
241
|
+
* @remarks
|
|
242
|
+
* ## Why
|
|
243
|
+
*
|
|
244
|
+
* Keeps replace at atomic with respect to competing RefSubject writes instead of splitting the
|
|
245
|
+
* read and replacement into separate effects.
|
|
246
|
+
*
|
|
247
|
+
* ## Ownership and lifetime
|
|
248
|
+
*
|
|
249
|
+
* Running replace at performs one serialized chunk transition and resolves with its committed
|
|
250
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
251
|
+
*
|
|
252
|
+
* @since 1.18.0
|
|
253
|
+
* @category State updates
|
|
109
254
|
*/
|
|
110
255
|
export const replaceAt = dual(3, function replaceAt(ref, index, a) {
|
|
111
|
-
return RefSubject.update(ref, (chunk) => Chunk.replace(chunk, index, a)
|
|
256
|
+
return RefSubject.update(ref, (chunk) => Option.getOrElse(Chunk.replace(chunk, index, a), () => chunk));
|
|
112
257
|
});
|
|
113
258
|
/**
|
|
114
259
|
* Remove a value at a particular index of a RefChunk.
|
|
115
|
-
* @
|
|
116
|
-
*
|
|
260
|
+
* @remarks
|
|
261
|
+
* ## Why
|
|
262
|
+
*
|
|
263
|
+
* Applies remove to the committed chunk value and publishes only the result, preserving its
|
|
264
|
+
* element order and equality rules.
|
|
265
|
+
*
|
|
266
|
+
* ## Ownership and lifetime
|
|
267
|
+
*
|
|
268
|
+
* Running remove performs one serialized chunk transition and resolves with its committed value.
|
|
269
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
270
|
+
*
|
|
271
|
+
* @since 1.18.0
|
|
272
|
+
* @category State updates
|
|
117
273
|
*/
|
|
118
274
|
export const remove = dual(2, function remove(ref, index) {
|
|
119
275
|
return RefSubject.update(ref, Chunk.remove(index));
|
|
120
276
|
});
|
|
121
277
|
/**
|
|
122
278
|
* Filter the values of a RefChunk (mutating).
|
|
123
|
-
* @
|
|
124
|
-
*
|
|
279
|
+
* @remarks
|
|
280
|
+
* ## Why
|
|
281
|
+
*
|
|
282
|
+
* Applies filter to the committed chunk through `RefSubject.update` and publishes one coherent
|
|
283
|
+
* replacement; this is a mutation, not a read-only Computed projection.
|
|
284
|
+
*
|
|
285
|
+
* ## Ownership and lifetime
|
|
286
|
+
*
|
|
287
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
288
|
+
* acquires no resource. It returns the committed chunk and retains the ref's E and R channels.
|
|
289
|
+
* @since 1.18.0
|
|
290
|
+
* @category State updates
|
|
125
291
|
*/
|
|
126
292
|
export const filter = dual(2, function filter(ref, predicate) {
|
|
127
293
|
return RefSubject.update(ref, Chunk.filter(predicate));
|
|
128
294
|
});
|
|
129
295
|
/**
|
|
130
296
|
* Map (Endomorphic) the values of a RefChunk.
|
|
131
|
-
* @
|
|
132
|
-
*
|
|
297
|
+
* @remarks
|
|
298
|
+
* ## Why
|
|
299
|
+
*
|
|
300
|
+
* Applies map to the committed chunk through `RefSubject.update` and publishes one coherent
|
|
301
|
+
* replacement; this is a mutation, not a read-only Computed projection.
|
|
302
|
+
*
|
|
303
|
+
* ## Ownership and lifetime
|
|
304
|
+
*
|
|
305
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
306
|
+
* acquires no resource. It returns the committed chunk and retains the ref's E and R channels.
|
|
307
|
+
* @since 1.18.0
|
|
308
|
+
* @category State updates
|
|
133
309
|
*/
|
|
134
310
|
export const map = dual(2, function map(ref, f) {
|
|
135
311
|
return RefSubject.update(ref, Chunk.map(f));
|
|
136
312
|
});
|
|
137
313
|
/**
|
|
138
314
|
* Remove duplicate values from a RefChunk.
|
|
139
|
-
* @
|
|
140
|
-
*
|
|
315
|
+
* @remarks
|
|
316
|
+
* ## Why
|
|
317
|
+
*
|
|
318
|
+
* Derives the reordered chunk through its Effect collection operation while retaining RefSubject
|
|
319
|
+
* equality and version tracking.
|
|
320
|
+
*
|
|
321
|
+
* ## Ownership and lifetime
|
|
322
|
+
*
|
|
323
|
+
* Running dedupe performs one serialized chunk transition and resolves with its committed value.
|
|
324
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
325
|
+
*
|
|
326
|
+
* @since 1.18.0
|
|
327
|
+
* @category State updates
|
|
141
328
|
*/
|
|
142
329
|
export const dedupe = (ref) => RefSubject.update(ref, Chunk.dedupe);
|
|
143
330
|
/**
|
|
144
331
|
* Remove adjacent duplicate values from a RefChunk.
|
|
145
|
-
* @
|
|
146
|
-
*
|
|
332
|
+
* @remarks
|
|
333
|
+
* ## Why
|
|
334
|
+
*
|
|
335
|
+
* Derives the reordered chunk through its Effect collection operation while retaining RefSubject
|
|
336
|
+
* equality and version tracking.
|
|
337
|
+
*
|
|
338
|
+
* ## Ownership and lifetime
|
|
339
|
+
*
|
|
340
|
+
* Running dedupe adjacent performs one serialized chunk transition and resolves with its committed
|
|
341
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
342
|
+
*
|
|
343
|
+
* @since 1.18.0
|
|
344
|
+
* @category State updates
|
|
147
345
|
*/
|
|
148
346
|
export const dedupeAdjacent = (ref) => RefSubject.update(ref, Chunk.dedupeAdjacent);
|
|
149
347
|
/**
|
|
150
348
|
* Reverse the values of a RefChunk.
|
|
151
|
-
* @
|
|
152
|
-
*
|
|
349
|
+
* @remarks
|
|
350
|
+
* ## Why
|
|
351
|
+
*
|
|
352
|
+
* Derives the reordered chunk through its Effect collection operation while retaining RefSubject
|
|
353
|
+
* equality and version tracking.
|
|
354
|
+
*
|
|
355
|
+
* ## Ownership and lifetime
|
|
356
|
+
*
|
|
357
|
+
* Running reverse performs one serialized chunk transition and resolves with its committed value.
|
|
358
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
359
|
+
*
|
|
360
|
+
* @since 1.18.0
|
|
361
|
+
* @category State updates
|
|
153
362
|
*/
|
|
154
363
|
export const reverse = (ref) => RefSubject.update(ref, Chunk.reverse);
|
|
155
364
|
/**
|
|
156
365
|
* Sort the values of a RefChunk using a provided Order.
|
|
157
|
-
* @
|
|
158
|
-
*
|
|
366
|
+
* @remarks
|
|
367
|
+
* ## Why
|
|
368
|
+
*
|
|
369
|
+
* Derives the reordered chunk through its Effect collection operation while retaining RefSubject
|
|
370
|
+
* equality and version tracking.
|
|
371
|
+
*
|
|
372
|
+
* ## Ownership and lifetime
|
|
373
|
+
*
|
|
374
|
+
* Running sort performs one serialized chunk transition and resolves with its committed value. It
|
|
375
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
376
|
+
*
|
|
377
|
+
* @since 1.18.0
|
|
378
|
+
* @category State updates
|
|
159
379
|
*/
|
|
160
380
|
export const sort = dual(2, function sort(ref, order) {
|
|
161
381
|
return RefSubject.update(ref, Chunk.sort(order));
|
|
@@ -165,82 +385,203 @@ export const sort = dual(2, function sort(ref, order) {
|
|
|
165
385
|
// ========================================
|
|
166
386
|
/**
|
|
167
387
|
* Check if a RefChunk is empty.
|
|
168
|
-
* @
|
|
169
|
-
*
|
|
388
|
+
* @remarks
|
|
389
|
+
* ## Why
|
|
390
|
+
*
|
|
391
|
+
* Makes is empty a live projection of the chunk; consumers can sample it now or observe it without
|
|
392
|
+
* copying the source state.
|
|
393
|
+
*
|
|
394
|
+
* ## Ownership and lifetime
|
|
395
|
+
*
|
|
396
|
+
* The is empty view retains no independent state. An Effect read samples the source once; Fx
|
|
397
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
398
|
+
*
|
|
399
|
+
* @since 1.18.0
|
|
400
|
+
* @category State predicates
|
|
170
401
|
*/
|
|
171
402
|
export const isEmpty = (ref) => RefSubject.map(ref, Chunk.isEmpty);
|
|
172
403
|
/**
|
|
173
404
|
* Check if a RefChunk is non-empty.
|
|
174
|
-
* @
|
|
175
|
-
*
|
|
405
|
+
* @remarks
|
|
406
|
+
* ## Why
|
|
407
|
+
*
|
|
408
|
+
* Makes is non empty a live projection of the chunk; consumers can sample it now or observe it
|
|
409
|
+
* without copying the source state.
|
|
410
|
+
*
|
|
411
|
+
* ## Ownership and lifetime
|
|
412
|
+
*
|
|
413
|
+
* The is non empty view retains no independent state. An Effect read samples the source once; Fx
|
|
414
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
415
|
+
*
|
|
416
|
+
* @since 1.18.0
|
|
417
|
+
* @category State predicates
|
|
176
418
|
*/
|
|
177
419
|
export const isNonEmpty = (ref) => RefSubject.map(ref, Chunk.isNonEmpty);
|
|
178
420
|
/**
|
|
179
421
|
* Get the current size of a RefChunk.
|
|
180
|
-
* @
|
|
181
|
-
*
|
|
422
|
+
* @remarks
|
|
423
|
+
* ## Why
|
|
424
|
+
*
|
|
425
|
+
* Makes size a live projection of the chunk; consumers can sample it now or observe it without
|
|
426
|
+
* copying the source state.
|
|
427
|
+
*
|
|
428
|
+
* ## Ownership and lifetime
|
|
429
|
+
*
|
|
430
|
+
* The size view retains no independent state. An Effect read samples the source once; Fx
|
|
431
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
432
|
+
*
|
|
433
|
+
* @since 1.18.0
|
|
434
|
+
* @category Derived queries
|
|
182
435
|
*/
|
|
183
436
|
export const size = (ref) => RefSubject.map(ref, Chunk.size);
|
|
184
437
|
/**
|
|
185
438
|
* Map the values of a RefChunk to a different type.
|
|
186
|
-
* @
|
|
187
|
-
*
|
|
439
|
+
* @remarks
|
|
440
|
+
* ## Why
|
|
441
|
+
*
|
|
442
|
+
* Projects chunk state with map values for both current reads and future pushes, avoiding a second
|
|
443
|
+
* mutable cache of the derived value.
|
|
444
|
+
*
|
|
445
|
+
* ## Ownership and lifetime
|
|
446
|
+
*
|
|
447
|
+
* The map values view retains no independent state. An Effect read samples the source once; Fx
|
|
448
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
449
|
+
*
|
|
450
|
+
* @since 1.18.0
|
|
451
|
+
* @category Derived queries
|
|
188
452
|
*/
|
|
189
453
|
export const mapValues = dual(2, function mapValues(ref, f) {
|
|
190
454
|
return RefSubject.map(ref, Chunk.map(f));
|
|
191
455
|
});
|
|
192
456
|
/**
|
|
193
457
|
* Filter the values of a RefChunk creating a Computed value.
|
|
194
|
-
* @
|
|
195
|
-
*
|
|
458
|
+
* @remarks
|
|
459
|
+
* ## Why
|
|
460
|
+
*
|
|
461
|
+
* Projects chunk state with filter values for both current reads and future pushes, avoiding a
|
|
462
|
+
* second mutable cache of the derived value.
|
|
463
|
+
*
|
|
464
|
+
* ## Ownership and lifetime
|
|
465
|
+
*
|
|
466
|
+
* The filter values view retains no independent state. An Effect read samples the source once; Fx
|
|
467
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
468
|
+
*
|
|
469
|
+
* @since 1.18.0
|
|
470
|
+
* @category Derived queries
|
|
196
471
|
*/
|
|
197
472
|
export const filterValues = dual(2, function filterValues(ref, predicate) {
|
|
198
473
|
return RefSubject.map(ref, Chunk.filter(predicate));
|
|
199
474
|
});
|
|
200
475
|
/**
|
|
201
476
|
* Partition the values of a RefChunk using a predicate.
|
|
202
|
-
* @
|
|
203
|
-
*
|
|
477
|
+
* @remarks
|
|
478
|
+
* ## Why
|
|
479
|
+
*
|
|
480
|
+
* Partition the values of a RefChunk using a predicate. The operation remains attached to the
|
|
481
|
+
* RefSubject's versioned state boundary.
|
|
482
|
+
*
|
|
483
|
+
* ## Ownership and lifetime
|
|
484
|
+
*
|
|
485
|
+
* The partition view retains no independent state. An Effect read samples the source once; Fx
|
|
486
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
487
|
+
*
|
|
488
|
+
* @since 1.18.0
|
|
489
|
+
* @category Derived queries
|
|
204
490
|
*/
|
|
205
491
|
export const partition = dual(2, function partition(ref, predicate) {
|
|
206
|
-
return RefSubject.map(ref, Chunk.partition(predicate));
|
|
492
|
+
return RefSubject.map(ref, Chunk.partition(Result.liftPredicate(predicate, Result.fail)));
|
|
207
493
|
});
|
|
208
494
|
/**
|
|
209
495
|
* Reduce the values of a RefChunk to a single value.
|
|
210
|
-
* @
|
|
211
|
-
*
|
|
496
|
+
* @remarks
|
|
497
|
+
* ## Why
|
|
498
|
+
*
|
|
499
|
+
* Makes reduce a live projection of the chunk; consumers can sample it now or observe it without
|
|
500
|
+
* copying the source state.
|
|
501
|
+
*
|
|
502
|
+
* ## Ownership and lifetime
|
|
503
|
+
*
|
|
504
|
+
* The reduce view retains no independent state. An Effect read samples the source once; Fx
|
|
505
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
506
|
+
*
|
|
507
|
+
* @since 1.18.0
|
|
508
|
+
* @category Derived queries
|
|
212
509
|
*/
|
|
213
510
|
export const reduce = dual(3, function reduce(ref, b, f) {
|
|
214
511
|
return RefSubject.map(ref, Chunk.reduce(b, f));
|
|
215
512
|
});
|
|
216
513
|
/**
|
|
217
514
|
* Reduce the values of a RefChunk in reverse order.
|
|
218
|
-
* @
|
|
219
|
-
*
|
|
515
|
+
* @remarks
|
|
516
|
+
* ## Why
|
|
517
|
+
*
|
|
518
|
+
* Makes reduce right a live projection of the chunk; consumers can sample it now or observe it
|
|
519
|
+
* without copying the source state.
|
|
520
|
+
*
|
|
521
|
+
* ## Ownership and lifetime
|
|
522
|
+
*
|
|
523
|
+
* The reduce right view retains no independent state. An Effect read samples the source once; Fx
|
|
524
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
525
|
+
*
|
|
526
|
+
* @since 1.18.0
|
|
527
|
+
* @category Derived queries
|
|
220
528
|
*/
|
|
221
529
|
export const reduceRight = dual(3, function reduceRight(ref, b, f) {
|
|
222
530
|
return RefSubject.map(ref, Chunk.reduceRight(b, f));
|
|
223
531
|
});
|
|
224
532
|
/**
|
|
225
533
|
* Check if any value satisfies a predicate.
|
|
226
|
-
* @
|
|
227
|
-
*
|
|
534
|
+
* @remarks
|
|
535
|
+
* ## Why
|
|
536
|
+
*
|
|
537
|
+
* Makes some a live projection of the chunk; consumers can sample it now or observe it without
|
|
538
|
+
* copying the source state.
|
|
539
|
+
*
|
|
540
|
+
* ## Ownership and lifetime
|
|
541
|
+
*
|
|
542
|
+
* The some view retains no independent state. An Effect read samples the source once; Fx
|
|
543
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
544
|
+
*
|
|
545
|
+
* @since 1.18.0
|
|
546
|
+
* @category State predicates
|
|
228
547
|
*/
|
|
229
548
|
export const some = dual(2, function some(ref, predicate) {
|
|
230
549
|
return RefSubject.map(ref, Chunk.some(predicate));
|
|
231
550
|
});
|
|
232
551
|
/**
|
|
233
552
|
* Check if all values satisfy a predicate.
|
|
234
|
-
* @
|
|
235
|
-
*
|
|
553
|
+
* @remarks
|
|
554
|
+
* ## Why
|
|
555
|
+
*
|
|
556
|
+
* Makes every a live projection of the chunk; consumers can sample it now or observe it without
|
|
557
|
+
* copying the source state.
|
|
558
|
+
*
|
|
559
|
+
* ## Ownership and lifetime
|
|
560
|
+
*
|
|
561
|
+
* The every view retains no independent state. An Effect read samples the source once; Fx
|
|
562
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
563
|
+
*
|
|
564
|
+
* @since 1.18.0
|
|
565
|
+
* @category State predicates
|
|
236
566
|
*/
|
|
237
567
|
export const every = dual(2, function every(ref, predicate) {
|
|
238
568
|
return RefSubject.map(ref, Chunk.every(predicate));
|
|
239
569
|
});
|
|
240
570
|
/**
|
|
241
571
|
* Check if a RefChunk contains a value.
|
|
242
|
-
* @
|
|
243
|
-
*
|
|
572
|
+
* @remarks
|
|
573
|
+
* ## Why
|
|
574
|
+
*
|
|
575
|
+
* Makes contains a live projection of the chunk; consumers can sample it now or observe it without
|
|
576
|
+
* copying the source state.
|
|
577
|
+
*
|
|
578
|
+
* ## Ownership and lifetime
|
|
579
|
+
*
|
|
580
|
+
* The contains view retains no independent state. An Effect read samples the source once; Fx
|
|
581
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
582
|
+
*
|
|
583
|
+
* @since 1.18.0
|
|
584
|
+
* @category State predicates
|
|
244
585
|
*/
|
|
245
586
|
export const contains = dual(2, function contains(ref, value) {
|
|
246
587
|
return RefSubject.map(ref, Chunk.contains(value));
|
|
@@ -250,36 +591,91 @@ export const contains = dual(2, function contains(ref, value) {
|
|
|
250
591
|
// ========================================
|
|
251
592
|
/**
|
|
252
593
|
* Get a value at a particular index of a RefChunk.
|
|
253
|
-
* @
|
|
254
|
-
*
|
|
594
|
+
* @remarks
|
|
595
|
+
* ## Why
|
|
596
|
+
*
|
|
597
|
+
* Models the possibly absent result of get index as Filtered state, so absence stays explicit
|
|
598
|
+
* while later source versions can make a value available.
|
|
599
|
+
*
|
|
600
|
+
* ## Ownership and lifetime
|
|
601
|
+
*
|
|
602
|
+
* The get index view retains no independent value. Its Effect read fails with NoSuchElement
|
|
603
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
604
|
+
*
|
|
605
|
+
* @since 1.18.0
|
|
606
|
+
* @category Optional queries
|
|
255
607
|
*/
|
|
256
608
|
export const getIndex = dual(2, function getIndex(ref, index) {
|
|
257
609
|
return RefSubject.filterMap(ref, Chunk.get(index));
|
|
258
610
|
});
|
|
259
611
|
/**
|
|
260
612
|
* Get the first element of a RefChunk as a Filtered.
|
|
261
|
-
* @
|
|
262
|
-
*
|
|
613
|
+
* @remarks
|
|
614
|
+
* ## Why
|
|
615
|
+
*
|
|
616
|
+
* Models the possibly absent result of head as Filtered state, so absence stays explicit while
|
|
617
|
+
* later source versions can make a value available.
|
|
618
|
+
*
|
|
619
|
+
* ## Ownership and lifetime
|
|
620
|
+
*
|
|
621
|
+
* The head view retains no independent value. Its Effect read fails with NoSuchElement
|
|
622
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
623
|
+
*
|
|
624
|
+
* @since 1.18.0
|
|
625
|
+
* @category Optional queries
|
|
263
626
|
*/
|
|
264
627
|
export const head = (ref) => RefSubject.filterMap(ref, Chunk.head);
|
|
265
628
|
/**
|
|
266
629
|
* Get the last element of a RefChunk as a Filtered.
|
|
267
|
-
* @
|
|
268
|
-
*
|
|
630
|
+
* @remarks
|
|
631
|
+
* ## Why
|
|
632
|
+
*
|
|
633
|
+
* Models the possibly absent result of last as Filtered state, so absence stays explicit while
|
|
634
|
+
* later source versions can make a value available.
|
|
635
|
+
*
|
|
636
|
+
* ## Ownership and lifetime
|
|
637
|
+
*
|
|
638
|
+
* The last view retains no independent value. Its Effect read fails with NoSuchElement
|
|
639
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
640
|
+
*
|
|
641
|
+
* @since 1.18.0
|
|
642
|
+
* @category Optional queries
|
|
269
643
|
*/
|
|
270
644
|
export const last = (ref) => RefSubject.filterMap(ref, Chunk.last);
|
|
271
645
|
/**
|
|
272
646
|
* Find the first value satisfying a predicate.
|
|
273
|
-
* @
|
|
274
|
-
*
|
|
647
|
+
* @remarks
|
|
648
|
+
* ## Why
|
|
649
|
+
*
|
|
650
|
+
* Models the possibly absent result of find first as Filtered state, so absence stays explicit
|
|
651
|
+
* while later source versions can make a value available.
|
|
652
|
+
*
|
|
653
|
+
* ## Ownership and lifetime
|
|
654
|
+
*
|
|
655
|
+
* The find first view retains no independent value. Its Effect read fails with NoSuchElement
|
|
656
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
657
|
+
*
|
|
658
|
+
* @since 1.18.0
|
|
659
|
+
* @category Optional queries
|
|
275
660
|
*/
|
|
276
661
|
export const findFirst = dual(2, function findFirst(ref, predicate) {
|
|
277
662
|
return RefSubject.filterMap(ref, Chunk.findFirst(predicate));
|
|
278
663
|
});
|
|
279
664
|
/**
|
|
280
665
|
* Find the last value satisfying a predicate.
|
|
281
|
-
* @
|
|
282
|
-
*
|
|
666
|
+
* @remarks
|
|
667
|
+
* ## Why
|
|
668
|
+
*
|
|
669
|
+
* Models the possibly absent result of find last as Filtered state, so absence stays explicit
|
|
670
|
+
* while later source versions can make a value available.
|
|
671
|
+
*
|
|
672
|
+
* ## Ownership and lifetime
|
|
673
|
+
*
|
|
674
|
+
* The find last view retains no independent value. Its Effect read fails with NoSuchElement
|
|
675
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
676
|
+
*
|
|
677
|
+
* @since 1.18.0
|
|
678
|
+
* @category Optional queries
|
|
283
679
|
*/
|
|
284
680
|
export const findLast = dual(2, function findLast(ref, predicate) {
|
|
285
681
|
return RefSubject.filterMap(ref, Chunk.findLast(predicate));
|