@typed/fx 2.0.0-beta.1 → 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 +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 +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 +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
|
@@ -2,14 +2,27 @@
|
|
|
2
2
|
* Extensions to RefSubject for working with Iterable values
|
|
3
3
|
* @since 1.18.0
|
|
4
4
|
*/
|
|
5
|
+
import { Result } from "effect";
|
|
5
6
|
import { equals } from "effect/Equal";
|
|
6
7
|
import { dual } from "effect/Function";
|
|
7
8
|
import * as Iterable from "effect/Iterable";
|
|
9
|
+
import * as Option from "effect/Option";
|
|
8
10
|
import * as RefSubject from "./RefSubject.js";
|
|
9
11
|
/**
|
|
10
12
|
* Creates a new `RefIterable` from an Iterable, `Effect`, or `Fx`.
|
|
13
|
+
* @remarks
|
|
14
|
+
* ## Why
|
|
15
|
+
*
|
|
16
|
+
* Creates iterable state with equality suited to that Effect data type, so unchanged values do not
|
|
17
|
+
* produce redundant pushed updates.
|
|
18
|
+
*
|
|
19
|
+
* ## Ownership and lifetime
|
|
20
|
+
*
|
|
21
|
+
* The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
|
|
22
|
+
* and cleanup; source failures and services stay on reads and pushes.
|
|
23
|
+
*
|
|
11
24
|
* @since 1.18.0
|
|
12
|
-
* @category
|
|
25
|
+
* @category Constructors
|
|
13
26
|
*/
|
|
14
27
|
export function make(initial) {
|
|
15
28
|
return RefSubject.make(initial, { eq: equals });
|
|
@@ -19,118 +32,282 @@ export function make(initial) {
|
|
|
19
32
|
// ========================================
|
|
20
33
|
/**
|
|
21
34
|
* Prepend a value to the current state of a RefIterable.
|
|
35
|
+
* @remarks
|
|
36
|
+
* ## Why
|
|
37
|
+
*
|
|
38
|
+
* Expresses prepend as one ordered iterable transition; readers never observe the intermediate
|
|
39
|
+
* collection used to build the result.
|
|
40
|
+
*
|
|
41
|
+
* ## Ownership and lifetime
|
|
42
|
+
*
|
|
43
|
+
* Running prepend performs one serialized iterable transition and resolves with its committed
|
|
44
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
45
|
+
*
|
|
22
46
|
* @since 1.18.0
|
|
23
|
-
* @category
|
|
47
|
+
* @category State updates
|
|
24
48
|
*/
|
|
25
49
|
export const prepend = dual(2, function prepend(ref, value) {
|
|
26
50
|
return RefSubject.update(ref, Iterable.prepend(value));
|
|
27
51
|
});
|
|
28
52
|
/**
|
|
29
53
|
* Prepend an iterable of values to the current state of a RefIterable.
|
|
54
|
+
* @remarks
|
|
55
|
+
* ## Why
|
|
56
|
+
*
|
|
57
|
+
* Expresses prepend all as one ordered iterable transition; readers never observe the intermediate
|
|
58
|
+
* collection used to build the result.
|
|
59
|
+
*
|
|
60
|
+
* ## Ownership and lifetime
|
|
61
|
+
*
|
|
62
|
+
* Running prepend all performs one serialized iterable transition and resolves with its committed
|
|
63
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
64
|
+
*
|
|
30
65
|
* @since 1.18.0
|
|
31
|
-
* @category
|
|
66
|
+
* @category State updates
|
|
32
67
|
*/
|
|
33
68
|
export const prependAll = dual(2, function prependAll(ref, value) {
|
|
34
69
|
return RefSubject.update(ref, Iterable.prependAll(value));
|
|
35
70
|
});
|
|
36
71
|
/**
|
|
37
72
|
* Append a value to the current state of a RefIterable.
|
|
73
|
+
* @remarks
|
|
74
|
+
* ## Why
|
|
75
|
+
*
|
|
76
|
+
* Expresses append as one ordered iterable transition; readers never observe the intermediate
|
|
77
|
+
* collection used to build the result.
|
|
78
|
+
*
|
|
79
|
+
* ## Ownership and lifetime
|
|
80
|
+
*
|
|
81
|
+
* Running append performs one serialized iterable transition and resolves with its committed
|
|
82
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
83
|
+
*
|
|
38
84
|
* @since 1.18.0
|
|
39
|
-
* @category
|
|
85
|
+
* @category State updates
|
|
40
86
|
*/
|
|
41
87
|
export const append = dual(2, function append(ref, value) {
|
|
42
88
|
return RefSubject.update(ref, Iterable.append(value));
|
|
43
89
|
});
|
|
44
90
|
/**
|
|
45
91
|
* Append an iterable of values to the current state of a RefIterable.
|
|
92
|
+
* @remarks
|
|
93
|
+
* ## Why
|
|
94
|
+
*
|
|
95
|
+
* Expresses append all as one ordered iterable transition; readers never observe the intermediate
|
|
96
|
+
* collection used to build the result.
|
|
97
|
+
*
|
|
98
|
+
* ## Ownership and lifetime
|
|
99
|
+
*
|
|
100
|
+
* Running append all performs one serialized iterable transition and resolves with its committed
|
|
101
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
102
|
+
*
|
|
46
103
|
* @since 1.18.0
|
|
47
|
-
* @category
|
|
104
|
+
* @category State updates
|
|
48
105
|
*/
|
|
49
106
|
export const appendAll = dual(2, function appendAll(ref, value) {
|
|
50
107
|
return RefSubject.update(ref, Iterable.appendAll(value));
|
|
51
108
|
});
|
|
52
109
|
/**
|
|
53
110
|
* Drop the first `n` values from a RefIterable.
|
|
111
|
+
* @remarks
|
|
112
|
+
* ## Why
|
|
113
|
+
*
|
|
114
|
+
* Applies drop to the committed iterable value and publishes only the result, preserving its
|
|
115
|
+
* element order and equality rules.
|
|
116
|
+
*
|
|
117
|
+
* ## Ownership and lifetime
|
|
118
|
+
*
|
|
119
|
+
* Running drop performs one serialized iterable transition and resolves with its committed value.
|
|
120
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
121
|
+
*
|
|
54
122
|
* @since 1.18.0
|
|
55
|
-
* @category
|
|
123
|
+
* @category State updates
|
|
56
124
|
*/
|
|
57
125
|
export const drop = dual(2, function drop(ref, n) {
|
|
58
126
|
return RefSubject.update(ref, Iterable.drop(n));
|
|
59
127
|
});
|
|
60
128
|
/**
|
|
61
129
|
* Take the first `n` values from a RefIterable.
|
|
130
|
+
* @remarks
|
|
131
|
+
* ## Why
|
|
132
|
+
*
|
|
133
|
+
* Applies take to the committed iterable value and publishes only the result, preserving its
|
|
134
|
+
* element order and equality rules.
|
|
135
|
+
*
|
|
136
|
+
* ## Ownership and lifetime
|
|
137
|
+
*
|
|
138
|
+
* Running take performs one serialized iterable transition and resolves with its committed value.
|
|
139
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
140
|
+
*
|
|
62
141
|
* @since 1.18.0
|
|
63
|
-
* @category
|
|
142
|
+
* @category State updates
|
|
64
143
|
*/
|
|
65
144
|
export const take = dual(2, function take(ref, n) {
|
|
66
145
|
return RefSubject.update(ref, Iterable.take(n));
|
|
67
146
|
});
|
|
68
147
|
/**
|
|
69
148
|
* Take values from a RefIterable while a predicate is true.
|
|
149
|
+
* @remarks
|
|
150
|
+
* ## Why
|
|
151
|
+
*
|
|
152
|
+
* Applies take while to the committed iterable value and publishes only the result, preserving its
|
|
153
|
+
* element order and equality rules.
|
|
154
|
+
*
|
|
155
|
+
* ## Ownership and lifetime
|
|
156
|
+
*
|
|
157
|
+
* Running take while performs one serialized iterable transition and resolves with its committed
|
|
158
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
159
|
+
*
|
|
70
160
|
* @since 1.18.0
|
|
71
|
-
* @category
|
|
161
|
+
* @category State updates
|
|
72
162
|
*/
|
|
73
163
|
export const takeWhile = dual(2, function takeWhile(ref, predicate) {
|
|
74
164
|
return RefSubject.update(ref, Iterable.takeWhile(predicate));
|
|
75
165
|
});
|
|
76
166
|
/**
|
|
77
167
|
* Filter the values of a RefIterable (mutating).
|
|
168
|
+
* @remarks
|
|
169
|
+
* ## Why
|
|
170
|
+
*
|
|
171
|
+
* Applies filter to the committed Iterable through `RefSubject.update` and publishes one coherent
|
|
172
|
+
* replacement; this is a mutation, not a read-only Computed projection.
|
|
173
|
+
*
|
|
174
|
+
* ## Ownership and lifetime
|
|
175
|
+
*
|
|
176
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
177
|
+
* acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
|
|
78
178
|
* @since 1.18.0
|
|
79
|
-
* @category
|
|
179
|
+
* @category State updates
|
|
80
180
|
*/
|
|
81
181
|
export const filter = dual(2, function filter(ref, predicate) {
|
|
82
182
|
return RefSubject.update(ref, Iterable.filter(predicate));
|
|
83
183
|
});
|
|
84
184
|
/**
|
|
85
185
|
* Map (Endomorphic) the values of a RefIterable.
|
|
186
|
+
* @remarks
|
|
187
|
+
* ## Why
|
|
188
|
+
*
|
|
189
|
+
* Applies map to the committed Iterable through `RefSubject.update` and publishes one coherent
|
|
190
|
+
* replacement; this is a mutation, not a read-only Computed projection.
|
|
191
|
+
*
|
|
192
|
+
* ## Ownership and lifetime
|
|
193
|
+
*
|
|
194
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
195
|
+
* acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
|
|
86
196
|
* @since 1.18.0
|
|
87
|
-
* @category
|
|
197
|
+
* @category State updates
|
|
88
198
|
*/
|
|
89
199
|
export const map = dual(2, function map(ref, f) {
|
|
90
200
|
return RefSubject.update(ref, Iterable.map(f));
|
|
91
201
|
});
|
|
92
202
|
/**
|
|
93
203
|
* Remove adjacent duplicate values from a RefIterable.
|
|
204
|
+
* @remarks
|
|
205
|
+
* ## Why
|
|
206
|
+
*
|
|
207
|
+
* Derives the reordered iterable through its Effect collection operation while retaining
|
|
208
|
+
* RefSubject equality and version tracking.
|
|
209
|
+
*
|
|
210
|
+
* ## Ownership and lifetime
|
|
211
|
+
*
|
|
212
|
+
* Running dedupe adjacent performs one serialized iterable transition and resolves with its
|
|
213
|
+
* committed value. It acquires no resource; failures and services remain those of the source ref.
|
|
214
|
+
*
|
|
94
215
|
* @since 1.18.0
|
|
95
|
-
* @category
|
|
216
|
+
* @category State updates
|
|
96
217
|
*/
|
|
97
218
|
export const dedupeAdjacent = (ref) => RefSubject.update(ref, Iterable.dedupeAdjacent);
|
|
98
219
|
/**
|
|
99
220
|
* Intersperse a separator between elements.
|
|
221
|
+
* @remarks
|
|
222
|
+
* ## Why
|
|
223
|
+
*
|
|
224
|
+
* Intersperse a separator between elements. The operation remains attached to the RefSubject's
|
|
225
|
+
* versioned state boundary.
|
|
226
|
+
*
|
|
227
|
+
* ## Ownership and lifetime
|
|
228
|
+
*
|
|
229
|
+
* Running intersperse performs one serialized iterable transition and resolves with its committed
|
|
230
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
231
|
+
*
|
|
100
232
|
* @since 1.18.0
|
|
101
|
-
* @category
|
|
233
|
+
* @category State updates
|
|
102
234
|
*/
|
|
103
235
|
export const intersperse = dual(2, function intersperse(ref, middle) {
|
|
104
236
|
return RefSubject.update(ref, Iterable.intersperse(middle));
|
|
105
237
|
});
|
|
106
238
|
/**
|
|
107
239
|
* Repeat the iterable n times.
|
|
240
|
+
* @remarks
|
|
241
|
+
* ## Why
|
|
242
|
+
*
|
|
243
|
+
* Repeat the iterable n times. The operation remains attached to the RefSubject's versioned state
|
|
244
|
+
* boundary.
|
|
245
|
+
*
|
|
246
|
+
* ## Ownership and lifetime
|
|
247
|
+
*
|
|
248
|
+
* Running repeat performs one serialized iterable transition and resolves with its committed
|
|
249
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
250
|
+
*
|
|
108
251
|
* @since 1.18.0
|
|
109
|
-
* @category
|
|
252
|
+
* @category State updates
|
|
110
253
|
*/
|
|
111
254
|
export const repeat = dual(2, function repeat(ref, n) {
|
|
112
255
|
return RefSubject.update(ref, Iterable.repeat(n));
|
|
113
256
|
});
|
|
114
257
|
/**
|
|
115
258
|
* FlatMap (endomorphic).
|
|
259
|
+
* @remarks
|
|
260
|
+
* ## Why
|
|
261
|
+
*
|
|
262
|
+
* FlatMap (endomorphic). The operation remains attached to the RefSubject's versioned state
|
|
263
|
+
* boundary.
|
|
264
|
+
*
|
|
265
|
+
* ## Ownership and lifetime
|
|
266
|
+
*
|
|
267
|
+
* Running flat map performs one serialized iterable transition and resolves with its committed
|
|
268
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
269
|
+
*
|
|
116
270
|
* @since 1.18.0
|
|
117
|
-
* @category
|
|
271
|
+
* @category State updates
|
|
118
272
|
*/
|
|
119
273
|
export const flatMap = dual(2, function flatMap(ref, f) {
|
|
120
274
|
return RefSubject.update(ref, Iterable.flatMap(f));
|
|
121
275
|
});
|
|
122
276
|
/**
|
|
123
277
|
* Filter and map values in place.
|
|
278
|
+
* @remarks
|
|
279
|
+
* ## Why
|
|
280
|
+
*
|
|
281
|
+
* Applies `filterMap` to the committed Iterable through `RefSubject.update` and publishes one
|
|
282
|
+
* coherent replacement; this is a mutation, not a read-only Computed projection.
|
|
283
|
+
*
|
|
284
|
+
* ## Ownership and lifetime
|
|
285
|
+
*
|
|
286
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
287
|
+
* acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
|
|
124
288
|
* @since 1.18.0
|
|
125
|
-
* @category
|
|
289
|
+
* @category State updates
|
|
126
290
|
*/
|
|
127
291
|
export const filterMap = dual(2, function filterMap(ref, f) {
|
|
128
|
-
return RefSubject.update(ref, Iterable.filterMap(f)
|
|
292
|
+
return RefSubject.update(ref, Iterable.filterMap((a, index) => Option.match(f(a, index), {
|
|
293
|
+
onNone: () => Result.failVoid,
|
|
294
|
+
onSome: (b) => Result.succeed(b),
|
|
295
|
+
})));
|
|
129
296
|
});
|
|
130
297
|
/**
|
|
131
298
|
* Extract Some values from Option iterable.
|
|
299
|
+
* @remarks
|
|
300
|
+
* ## Why
|
|
301
|
+
*
|
|
302
|
+
* Applies `getSomes` to the committed Iterable through `RefSubject.update` and publishes one
|
|
303
|
+
* coherent replacement; this is a mutation, not a read-only Computed projection.
|
|
304
|
+
*
|
|
305
|
+
* ## Ownership and lifetime
|
|
306
|
+
*
|
|
307
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
308
|
+
* acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
|
|
132
309
|
* @since 1.18.0
|
|
133
|
-
* @category
|
|
310
|
+
* @category State updates
|
|
134
311
|
*/
|
|
135
312
|
export const getSomes = (ref) => RefSubject.update(ref, (iter) => Iterable.getSomes(iter));
|
|
136
313
|
// ========================================
|
|
@@ -138,76 +315,186 @@ export const getSomes = (ref) => RefSubject.update(ref, (iter) => Iterable.getSo
|
|
|
138
315
|
// ========================================
|
|
139
316
|
/**
|
|
140
317
|
* Check if a RefIterable is empty.
|
|
318
|
+
* @remarks
|
|
319
|
+
* ## Why
|
|
320
|
+
*
|
|
321
|
+
* Makes is empty a live projection of the iterable; consumers can sample it now or observe it
|
|
322
|
+
* without copying the source state.
|
|
323
|
+
*
|
|
324
|
+
* ## Ownership and lifetime
|
|
325
|
+
*
|
|
326
|
+
* The is empty view retains no independent state. An Effect read samples the source once; Fx
|
|
327
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
328
|
+
*
|
|
141
329
|
* @since 1.18.0
|
|
142
|
-
* @category
|
|
330
|
+
* @category State predicates
|
|
143
331
|
*/
|
|
144
332
|
export const isEmpty = (ref) => RefSubject.map(ref, Iterable.isEmpty);
|
|
145
333
|
/**
|
|
146
334
|
* Get the current size of a RefIterable.
|
|
335
|
+
* @remarks
|
|
336
|
+
* ## Why
|
|
337
|
+
*
|
|
338
|
+
* Makes size a live projection of the iterable; consumers can sample it now or observe it without
|
|
339
|
+
* copying the source state.
|
|
340
|
+
*
|
|
341
|
+
* ## Ownership and lifetime
|
|
342
|
+
*
|
|
343
|
+
* The size view retains no independent state. An Effect read samples the source once; Fx
|
|
344
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
345
|
+
*
|
|
147
346
|
* @since 1.18.0
|
|
148
|
-
* @category
|
|
347
|
+
* @category Derived queries
|
|
149
348
|
*/
|
|
150
349
|
export const size = (ref) => RefSubject.map(ref, Iterable.size);
|
|
151
350
|
/**
|
|
152
351
|
* Map the values of a RefIterable to a different type.
|
|
352
|
+
* @remarks
|
|
353
|
+
* ## Why
|
|
354
|
+
*
|
|
355
|
+
* Projects iterable state with map values for both current reads and future pushes, avoiding a
|
|
356
|
+
* second mutable cache of the derived value.
|
|
357
|
+
*
|
|
358
|
+
* ## Ownership and lifetime
|
|
359
|
+
*
|
|
360
|
+
* The map values view retains no independent state. An Effect read samples the source once; Fx
|
|
361
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
362
|
+
*
|
|
153
363
|
* @since 1.18.0
|
|
154
|
-
* @category
|
|
364
|
+
* @category Derived queries
|
|
155
365
|
*/
|
|
156
366
|
export const mapValues = dual(2, function mapValues(ref, f) {
|
|
157
367
|
return RefSubject.map(ref, Iterable.map(f));
|
|
158
368
|
});
|
|
159
369
|
/**
|
|
160
370
|
* Filter the values of a RefIterable creating a Computed value.
|
|
371
|
+
* @remarks
|
|
372
|
+
* ## Why
|
|
373
|
+
*
|
|
374
|
+
* Projects iterable state with filter values for both current reads and future pushes, avoiding a
|
|
375
|
+
* second mutable cache of the derived value.
|
|
376
|
+
*
|
|
377
|
+
* ## Ownership and lifetime
|
|
378
|
+
*
|
|
379
|
+
* The filter values view retains no independent state. An Effect read samples the source once; Fx
|
|
380
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
381
|
+
*
|
|
161
382
|
* @since 1.18.0
|
|
162
|
-
* @category
|
|
383
|
+
* @category Derived queries
|
|
163
384
|
*/
|
|
164
385
|
export const filterValues = dual(2, function filterValues(ref, predicate) {
|
|
165
386
|
return RefSubject.map(ref, Iterable.filter(predicate));
|
|
166
387
|
});
|
|
167
388
|
/**
|
|
168
389
|
* Group the values of a RefIterable by a key.
|
|
390
|
+
* @remarks
|
|
391
|
+
* ## Why
|
|
392
|
+
*
|
|
393
|
+
* Projects iterable state with group by for both current reads and future pushes, avoiding a
|
|
394
|
+
* second mutable cache of the derived value.
|
|
395
|
+
*
|
|
396
|
+
* ## Ownership and lifetime
|
|
397
|
+
*
|
|
398
|
+
* The group by view retains no independent state. An Effect read samples the source once; Fx
|
|
399
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
400
|
+
*
|
|
169
401
|
* @since 1.18.0
|
|
170
|
-
* @category
|
|
402
|
+
* @category Derived queries
|
|
171
403
|
*/
|
|
172
404
|
export const groupBy = dual(2, function groupBy(ref, f) {
|
|
173
405
|
return RefSubject.map(ref, Iterable.groupBy(f));
|
|
174
406
|
});
|
|
175
407
|
/**
|
|
176
408
|
* Reduce the values of a RefIterable to a single value.
|
|
409
|
+
* @remarks
|
|
410
|
+
* ## Why
|
|
411
|
+
*
|
|
412
|
+
* Makes reduce a live projection of the iterable; consumers can sample it now or observe it
|
|
413
|
+
* without copying the source state.
|
|
414
|
+
*
|
|
415
|
+
* ## Ownership and lifetime
|
|
416
|
+
*
|
|
417
|
+
* The reduce view retains no independent state. An Effect read samples the source once; Fx
|
|
418
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
419
|
+
*
|
|
177
420
|
* @since 1.18.0
|
|
178
|
-
* @category
|
|
421
|
+
* @category Derived queries
|
|
179
422
|
*/
|
|
180
423
|
export const reduce = dual(3, function reduce(ref, b, f) {
|
|
181
424
|
return RefSubject.map(ref, Iterable.reduce(b, f));
|
|
182
425
|
});
|
|
183
426
|
/**
|
|
184
427
|
* Check if any value satisfies a predicate.
|
|
428
|
+
* @remarks
|
|
429
|
+
* ## Why
|
|
430
|
+
*
|
|
431
|
+
* Makes some a live projection of the iterable; consumers can sample it now or observe it without
|
|
432
|
+
* copying the source state.
|
|
433
|
+
*
|
|
434
|
+
* ## Ownership and lifetime
|
|
435
|
+
*
|
|
436
|
+
* The some view retains no independent state. An Effect read samples the source once; Fx
|
|
437
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
438
|
+
*
|
|
185
439
|
* @since 1.18.0
|
|
186
|
-
* @category
|
|
440
|
+
* @category State predicates
|
|
187
441
|
*/
|
|
188
442
|
export const some = dual(2, function some(ref, predicate) {
|
|
189
443
|
return RefSubject.map(ref, Iterable.some(predicate));
|
|
190
444
|
});
|
|
191
445
|
/**
|
|
192
446
|
* Check if a RefIterable contains a value.
|
|
447
|
+
* @remarks
|
|
448
|
+
* ## Why
|
|
449
|
+
*
|
|
450
|
+
* Makes contains a live projection of the iterable; consumers can sample it now or observe it
|
|
451
|
+
* without copying the source state.
|
|
452
|
+
*
|
|
453
|
+
* ## Ownership and lifetime
|
|
454
|
+
*
|
|
455
|
+
* The contains view retains no independent state. An Effect read samples the source once; Fx
|
|
456
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
457
|
+
*
|
|
193
458
|
* @since 1.18.0
|
|
194
|
-
* @category
|
|
459
|
+
* @category State predicates
|
|
195
460
|
*/
|
|
196
461
|
export const contains = dual(2, function contains(ref, value) {
|
|
197
462
|
return RefSubject.map(ref, Iterable.contains(value));
|
|
198
463
|
});
|
|
199
464
|
/**
|
|
200
465
|
* Count elements satisfying a predicate.
|
|
466
|
+
* @remarks
|
|
467
|
+
* ## Why
|
|
468
|
+
*
|
|
469
|
+
* Makes count by a live projection of the iterable; consumers can sample it now or observe it
|
|
470
|
+
* without copying the source state.
|
|
471
|
+
*
|
|
472
|
+
* ## Ownership and lifetime
|
|
473
|
+
*
|
|
474
|
+
* The count by view retains no independent state. An Effect read samples the source once; Fx
|
|
475
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
476
|
+
*
|
|
201
477
|
* @since 1.18.0
|
|
202
|
-
* @category
|
|
478
|
+
* @category Derived queries
|
|
203
479
|
*/
|
|
204
480
|
export const countBy = dual(2, function countBy(ref, predicate) {
|
|
205
481
|
return RefSubject.map(ref, Iterable.countBy(predicate));
|
|
206
482
|
});
|
|
207
483
|
/**
|
|
208
484
|
* Convert to array.
|
|
485
|
+
* @remarks
|
|
486
|
+
* ## Why
|
|
487
|
+
*
|
|
488
|
+
* Projects iterable state with to array for both current reads and future pushes, avoiding a
|
|
489
|
+
* second mutable cache of the derived value.
|
|
490
|
+
*
|
|
491
|
+
* ## Ownership and lifetime
|
|
492
|
+
*
|
|
493
|
+
* The to array view retains no independent state. An Effect read samples the source once; Fx
|
|
494
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
495
|
+
*
|
|
209
496
|
* @since 1.18.0
|
|
210
|
-
* @category
|
|
497
|
+
* @category Derived queries
|
|
211
498
|
*/
|
|
212
499
|
export const toArray = (ref) => RefSubject.map(ref, (iter) => Array.from(iter));
|
|
213
500
|
// ========================================
|
|
@@ -215,22 +502,55 @@ export const toArray = (ref) => RefSubject.map(ref, (iter) => Array.from(iter));
|
|
|
215
502
|
// ========================================
|
|
216
503
|
/**
|
|
217
504
|
* Get the first element of a RefIterable as a Filtered.
|
|
505
|
+
* @remarks
|
|
506
|
+
* ## Why
|
|
507
|
+
*
|
|
508
|
+
* Models the possibly absent result of head as Filtered state, so absence stays explicit while
|
|
509
|
+
* later source versions can make a value available.
|
|
510
|
+
*
|
|
511
|
+
* ## Ownership and lifetime
|
|
512
|
+
*
|
|
513
|
+
* The head view retains no independent value. Its Effect read fails with NoSuchElement
|
|
514
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
515
|
+
*
|
|
218
516
|
* @since 1.18.0
|
|
219
|
-
* @category
|
|
517
|
+
* @category Optional queries
|
|
220
518
|
*/
|
|
221
519
|
export const head = (ref) => RefSubject.filterMap(ref, Iterable.head);
|
|
222
520
|
/**
|
|
223
521
|
* Find the first value satisfying a predicate.
|
|
522
|
+
* @remarks
|
|
523
|
+
* ## Why
|
|
524
|
+
*
|
|
525
|
+
* Models the possibly absent result of find first as Filtered state, so absence stays explicit
|
|
526
|
+
* while later source versions can make a value available.
|
|
527
|
+
*
|
|
528
|
+
* ## Ownership and lifetime
|
|
529
|
+
*
|
|
530
|
+
* The find first view retains no independent value. Its Effect read fails with NoSuchElement
|
|
531
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
532
|
+
*
|
|
224
533
|
* @since 1.18.0
|
|
225
|
-
* @category
|
|
534
|
+
* @category Optional queries
|
|
226
535
|
*/
|
|
227
536
|
export const findFirst = dual(2, function findFirst(ref, predicate) {
|
|
228
537
|
return RefSubject.filterMap(ref, Iterable.findFirst(predicate));
|
|
229
538
|
});
|
|
230
539
|
/**
|
|
231
540
|
* Find the last value satisfying a predicate.
|
|
541
|
+
* @remarks
|
|
542
|
+
* ## Why
|
|
543
|
+
*
|
|
544
|
+
* Models the possibly absent result of find last as Filtered state, so absence stays explicit
|
|
545
|
+
* while later source versions can make a value available.
|
|
546
|
+
*
|
|
547
|
+
* ## Ownership and lifetime
|
|
548
|
+
*
|
|
549
|
+
* The find last view retains no independent value. Its Effect read fails with NoSuchElement
|
|
550
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
551
|
+
*
|
|
232
552
|
* @since 1.18.0
|
|
233
|
-
* @category
|
|
553
|
+
* @category Optional queries
|
|
234
554
|
*/
|
|
235
555
|
export const findLast = dual(2, function findLast(ref, predicate) {
|
|
236
556
|
return RefSubject.filterMap(ref, Iterable.findLast(predicate));
|