@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
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extensions to RefSubject for working with Trie values
|
|
3
|
-
* @since 1.18.0
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type * as Effect from "effect/Effect";
|
|
7
|
-
import { equals } from "effect/Equal";
|
|
8
|
-
import { dual } from "effect/Function";
|
|
9
|
-
import type * as Option from "effect/Option";
|
|
10
|
-
import type * as Scope from "effect/Scope";
|
|
11
|
-
import * as Trie from "effect/Trie";
|
|
12
|
-
import type * as Fx from "../Fx/index.js";
|
|
13
|
-
import * as RefSubject from "./RefSubject.js";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* A RefTrie is a RefSubject specialized over a Trie.
|
|
17
|
-
* @since 1.18.0
|
|
18
|
-
* @category models
|
|
19
|
-
*/
|
|
20
|
-
export interface RefTrie<in out V, in out E = never, out R = never> extends RefSubject.RefSubject<
|
|
21
|
-
Trie.Trie<V>,
|
|
22
|
-
E,
|
|
23
|
-
R
|
|
24
|
-
> {}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Creates a new `RefTrie` from a Trie, `Effect`, or `Fx`.
|
|
28
|
-
* @since 1.18.0
|
|
29
|
-
* @category constructors
|
|
30
|
-
*/
|
|
31
|
-
export function make<V, E, R>(
|
|
32
|
-
initial: Trie.Trie<V> | Effect.Effect<Trie.Trie<V>, E, R> | Fx.Fx<Trie.Trie<V>, E, R>,
|
|
33
|
-
): Effect.Effect<RefTrie<V, E>, never, R | Scope.Scope> {
|
|
34
|
-
return RefSubject.make(initial, { eq: equals });
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// ========================================
|
|
38
|
-
// Combinators
|
|
39
|
-
// ========================================
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Insert a key-value pair into the Trie.
|
|
43
|
-
* @since 1.18.0
|
|
44
|
-
* @category combinators
|
|
45
|
-
*/
|
|
46
|
-
export const insert: {
|
|
47
|
-
<V>(key: string, value: V): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
48
|
-
<V, E, R>(ref: RefTrie<V, E, R>, key: string, value: V): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
49
|
-
} = dual(3, function insert<V, E, R>(ref: RefTrie<V, E, R>, key: string, value: V) {
|
|
50
|
-
return RefSubject.update(ref, Trie.insert(key, value));
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Insert multiple key-value pairs into the Trie.
|
|
55
|
-
* @since 1.18.0
|
|
56
|
-
* @category combinators
|
|
57
|
-
*/
|
|
58
|
-
export const insertMany: {
|
|
59
|
-
<V>(
|
|
60
|
-
entries: Iterable<[string, V]>,
|
|
61
|
-
): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
62
|
-
<V, E, R>(
|
|
63
|
-
ref: RefTrie<V, E, R>,
|
|
64
|
-
entries: Iterable<[string, V]>,
|
|
65
|
-
): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
66
|
-
} = dual(2, function insertMany<V, E, R>(ref: RefTrie<V, E, R>, entries: Iterable<[string, V]>) {
|
|
67
|
-
return RefSubject.update(ref, Trie.insertMany(entries));
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Remove a key from the Trie.
|
|
72
|
-
* @since 1.18.0
|
|
73
|
-
* @category combinators
|
|
74
|
-
*/
|
|
75
|
-
export const remove: {
|
|
76
|
-
(key: string): <V, E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
77
|
-
<V, E, R>(ref: RefTrie<V, E, R>, key: string): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
78
|
-
} = dual(2, function remove<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
|
|
79
|
-
return RefSubject.update(ref, Trie.remove(key));
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Remove multiple keys from the Trie.
|
|
84
|
-
* @since 1.18.0
|
|
85
|
-
* @category combinators
|
|
86
|
-
*/
|
|
87
|
-
export const removeMany: {
|
|
88
|
-
(keys: Iterable<string>): <V, E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
89
|
-
<V, E, R>(ref: RefTrie<V, E, R>, keys: Iterable<string>): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
90
|
-
} = dual(2, function removeMany<V, E, R>(ref: RefTrie<V, E, R>, keys: Iterable<string>) {
|
|
91
|
-
return RefSubject.update(ref, Trie.removeMany(keys));
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Modify the value at a key if it exists.
|
|
96
|
-
* @since 1.18.0
|
|
97
|
-
* @category combinators
|
|
98
|
-
*/
|
|
99
|
-
export const modify: {
|
|
100
|
-
<V>(
|
|
101
|
-
key: string,
|
|
102
|
-
f: (v: V) => V,
|
|
103
|
-
): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
104
|
-
<V, E, R>(ref: RefTrie<V, E, R>, key: string, f: (v: V) => V): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
105
|
-
} = dual(3, function modify<V, E, R>(ref: RefTrie<V, E, R>, key: string, f: (v: V) => V) {
|
|
106
|
-
return RefSubject.update(ref, Trie.modify(key, f));
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Clear all entries from the Trie.
|
|
111
|
-
* @since 1.18.0
|
|
112
|
-
* @category combinators
|
|
113
|
-
*/
|
|
114
|
-
export const clear = <V, E, R>(ref: RefTrie<V, E, R>): Effect.Effect<Trie.Trie<V>, E, R> =>
|
|
115
|
-
RefSubject.update(ref, () => Trie.empty());
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Map values in place (endomorphic).
|
|
119
|
-
* @since 1.18.0
|
|
120
|
-
* @category combinators
|
|
121
|
-
*/
|
|
122
|
-
export const map: {
|
|
123
|
-
<V>(
|
|
124
|
-
f: (value: V, key: string) => V,
|
|
125
|
-
): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
126
|
-
<V, E, R>(
|
|
127
|
-
ref: RefTrie<V, E, R>,
|
|
128
|
-
f: (value: V, key: string) => V,
|
|
129
|
-
): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
130
|
-
} = dual(2, function map<V, E, R>(ref: RefTrie<V, E, R>, f: (value: V, key: string) => V) {
|
|
131
|
-
return RefSubject.update(ref, Trie.map(f));
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Filter entries in place.
|
|
136
|
-
* @since 1.18.0
|
|
137
|
-
* @category combinators
|
|
138
|
-
*/
|
|
139
|
-
export const filter: {
|
|
140
|
-
<V>(
|
|
141
|
-
predicate: (value: V, key: string) => boolean,
|
|
142
|
-
): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
143
|
-
<V, E, R>(
|
|
144
|
-
ref: RefTrie<V, E, R>,
|
|
145
|
-
predicate: (value: V, key: string) => boolean,
|
|
146
|
-
): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
147
|
-
} = dual(2, function filter<
|
|
148
|
-
V,
|
|
149
|
-
E,
|
|
150
|
-
R,
|
|
151
|
-
>(ref: RefTrie<V, E, R>, predicate: (value: V, key: string) => boolean) {
|
|
152
|
-
return RefSubject.update(ref, Trie.filter(predicate));
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Filter and map entries in place.
|
|
157
|
-
* @since 1.18.0
|
|
158
|
-
* @category combinators
|
|
159
|
-
*/
|
|
160
|
-
export const filterMap: {
|
|
161
|
-
<V>(
|
|
162
|
-
f: (value: V, key: string) => Option.Option<V>,
|
|
163
|
-
): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
|
|
164
|
-
<V, E, R>(
|
|
165
|
-
ref: RefTrie<V, E, R>,
|
|
166
|
-
f: (value: V, key: string) => Option.Option<V>,
|
|
167
|
-
): Effect.Effect<Trie.Trie<V>, E, R>;
|
|
168
|
-
} = dual(2, function filterMap<
|
|
169
|
-
V,
|
|
170
|
-
E,
|
|
171
|
-
R,
|
|
172
|
-
>(ref: RefTrie<V, E, R>, f: (value: V, key: string) => Option.Option<V>) {
|
|
173
|
-
return RefSubject.update(ref, Trie.filterMap(f));
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
// ========================================
|
|
177
|
-
// Computed
|
|
178
|
-
// ========================================
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Compact Option values.
|
|
182
|
-
* @since 1.18.0
|
|
183
|
-
* @category computed
|
|
184
|
-
*/
|
|
185
|
-
export const compact = <V, E, R>(ref: RefTrie<Option.Option<V>, E, R>) =>
|
|
186
|
-
RefSubject.map(ref, Trie.compact);
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Get the current size of the Trie.
|
|
190
|
-
* @since 1.18.0
|
|
191
|
-
* @category computed
|
|
192
|
-
*/
|
|
193
|
-
export const size = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<number, E, R> =>
|
|
194
|
-
RefSubject.map(ref, Trie.size);
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Check if the Trie is empty.
|
|
198
|
-
* @since 1.18.0
|
|
199
|
-
* @category computed
|
|
200
|
-
*/
|
|
201
|
-
export const isEmpty = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<boolean, E, R> =>
|
|
202
|
-
RefSubject.map(ref, Trie.isEmpty);
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Check if the Trie is non-empty.
|
|
206
|
-
* @since 1.18.0
|
|
207
|
-
* @category computed
|
|
208
|
-
*/
|
|
209
|
-
export const isNonEmpty = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<boolean, E, R> =>
|
|
210
|
-
RefSubject.map(ref, (t) => !Trie.isEmpty(t));
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Check if a key exists in the Trie.
|
|
214
|
-
* @since 1.18.0
|
|
215
|
-
* @category computed
|
|
216
|
-
*/
|
|
217
|
-
export const has: {
|
|
218
|
-
(key: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<boolean, E, R>;
|
|
219
|
-
<V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Computed<boolean, E, R>;
|
|
220
|
-
} = dual(2, function has<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
|
|
221
|
-
return RefSubject.map(ref, Trie.has(key));
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Get all keys from the Trie.
|
|
226
|
-
* @since 1.18.0
|
|
227
|
-
* @category computed
|
|
228
|
-
*/
|
|
229
|
-
export const keys = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<Array<string>, E, R> =>
|
|
230
|
-
RefSubject.map(ref, (t) => Array.from(Trie.keys(t)));
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Get all values from the Trie.
|
|
234
|
-
* @since 1.18.0
|
|
235
|
-
* @category computed
|
|
236
|
-
*/
|
|
237
|
-
export const values = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<Array<V>, E, R> =>
|
|
238
|
-
RefSubject.map(ref, (t) => Array.from(Trie.values(t)));
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Get all entries from the Trie.
|
|
242
|
-
* @since 1.18.0
|
|
243
|
-
* @category computed
|
|
244
|
-
*/
|
|
245
|
-
export const entries = <V, E, R>(
|
|
246
|
-
ref: RefTrie<V, E, R>,
|
|
247
|
-
): RefSubject.Computed<Array<[string, V]>, E, R> => RefSubject.map(ref, Trie.toEntries);
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Get all keys with a given prefix.
|
|
251
|
-
* @since 1.18.0
|
|
252
|
-
* @category computed
|
|
253
|
-
*/
|
|
254
|
-
export const keysWithPrefix: {
|
|
255
|
-
(prefix: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<string>, E, R>;
|
|
256
|
-
<V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<string>, E, R>;
|
|
257
|
-
} = dual(2, function keysWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
|
|
258
|
-
return RefSubject.map(ref, (t) => Array.from(Trie.keysWithPrefix(t, prefix)));
|
|
259
|
-
});
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* Get all values with a given prefix.
|
|
263
|
-
* @since 1.18.0
|
|
264
|
-
* @category computed
|
|
265
|
-
*/
|
|
266
|
-
export const valuesWithPrefix: {
|
|
267
|
-
(prefix: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<V>, E, R>;
|
|
268
|
-
<V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<V>, E, R>;
|
|
269
|
-
} = dual(2, function valuesWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
|
|
270
|
-
return RefSubject.map(ref, (t) => Array.from(Trie.valuesWithPrefix(t, prefix)));
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Get all entries with a given prefix.
|
|
275
|
-
* @since 1.18.0
|
|
276
|
-
* @category computed
|
|
277
|
-
*/
|
|
278
|
-
export const entriesWithPrefix: {
|
|
279
|
-
(
|
|
280
|
-
prefix: string,
|
|
281
|
-
): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<[string, V]>, E, R>;
|
|
282
|
-
<V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<[string, V]>, E, R>;
|
|
283
|
-
} = dual(2, function entriesWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
|
|
284
|
-
return RefSubject.map(ref, Trie.toEntriesWithPrefix(prefix));
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* Get the longest prefix of a key that exists in the Trie.
|
|
289
|
-
* @since 1.18.0
|
|
290
|
-
* @category computed
|
|
291
|
-
*/
|
|
292
|
-
export const longestPrefixOf: {
|
|
293
|
-
(
|
|
294
|
-
key: string,
|
|
295
|
-
): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<[string, V] | undefined, E, R>;
|
|
296
|
-
<V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Computed<[string, V] | undefined, E, R>;
|
|
297
|
-
} = dual(2, function longestPrefixOf<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
|
|
298
|
-
return RefSubject.map(ref, Trie.longestPrefixOf(key));
|
|
299
|
-
});
|
|
300
|
-
|
|
301
|
-
/**
|
|
302
|
-
* Map values to a different type.
|
|
303
|
-
* @since 1.18.0
|
|
304
|
-
* @category computed
|
|
305
|
-
*/
|
|
306
|
-
export const mapValues: {
|
|
307
|
-
<V, B>(
|
|
308
|
-
f: (value: V, key: string) => B,
|
|
309
|
-
): <E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Trie.Trie<B>, E, R>;
|
|
310
|
-
<V, E, R, B>(
|
|
311
|
-
ref: RefTrie<V, E, R>,
|
|
312
|
-
f: (value: V, key: string) => B,
|
|
313
|
-
): RefSubject.Computed<Trie.Trie<B>, E, R>;
|
|
314
|
-
} = dual(2, function mapValues<V, E, R, B>(ref: RefTrie<V, E, R>, f: (value: V, key: string) => B) {
|
|
315
|
-
return RefSubject.map(ref, Trie.map(f));
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Reduce the entries to a single value.
|
|
320
|
-
* @since 1.18.0
|
|
321
|
-
* @category computed
|
|
322
|
-
*/
|
|
323
|
-
export const reduce: {
|
|
324
|
-
<V, B>(
|
|
325
|
-
b: B,
|
|
326
|
-
f: (b: B, value: V, key: string) => B,
|
|
327
|
-
): <E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<B, E, R>;
|
|
328
|
-
<V, E, R, B>(
|
|
329
|
-
ref: RefTrie<V, E, R>,
|
|
330
|
-
b: B,
|
|
331
|
-
f: (b: B, value: V, key: string) => B,
|
|
332
|
-
): RefSubject.Computed<B, E, R>;
|
|
333
|
-
} = dual(3, function reduce<
|
|
334
|
-
V,
|
|
335
|
-
E,
|
|
336
|
-
R,
|
|
337
|
-
B,
|
|
338
|
-
>(ref: RefTrie<V, E, R>, b: B, f: (b: B, value: V, key: string) => B) {
|
|
339
|
-
return RefSubject.map(ref, Trie.reduce(b, f));
|
|
340
|
-
});
|
|
341
|
-
|
|
342
|
-
// ========================================
|
|
343
|
-
// Filtered
|
|
344
|
-
// ========================================
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Get the value at a key as a Filtered.
|
|
348
|
-
* @since 1.18.0
|
|
349
|
-
* @category filtered
|
|
350
|
-
*/
|
|
351
|
-
export const get: {
|
|
352
|
-
(key: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Filtered<V, E, R>;
|
|
353
|
-
<V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Filtered<V, E, R>;
|
|
354
|
-
} = dual(2, function get<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
|
|
355
|
-
return RefSubject.filterMap(ref, Trie.get(key));
|
|
356
|
-
});
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { Effect } from "effect";
|
|
3
|
-
import * as Tuple from "effect/Tuple";
|
|
4
|
-
import * as RefTuple from "./RefTuple.js";
|
|
5
|
-
|
|
6
|
-
describe("RefTuple", () => {
|
|
7
|
-
it("creates and gets value", () =>
|
|
8
|
-
Effect.gen(function* () {
|
|
9
|
-
const value = Tuple.make(1, "hello", true);
|
|
10
|
-
const ref = yield* RefTuple.make(value);
|
|
11
|
-
const current = yield* ref;
|
|
12
|
-
expect(current).toEqual(value);
|
|
13
|
-
}).pipe(Effect.scoped, Effect.runPromise));
|
|
14
|
-
|
|
15
|
-
it("sets value at index", () =>
|
|
16
|
-
Effect.gen(function* () {
|
|
17
|
-
const ref = yield* RefTuple.make(Tuple.make(1, "hello", true));
|
|
18
|
-
yield* RefTuple.setAt(ref, 1, "world");
|
|
19
|
-
const result = yield* ref;
|
|
20
|
-
expect(result[1]).toBe("world");
|
|
21
|
-
expect(result[0]).toBe(1);
|
|
22
|
-
expect(result[2]).toBe(true);
|
|
23
|
-
}).pipe(Effect.scoped, Effect.runPromise));
|
|
24
|
-
|
|
25
|
-
it("updates value at index", () =>
|
|
26
|
-
Effect.gen(function* () {
|
|
27
|
-
const ref = yield* RefTuple.make(Tuple.make(1, 2, 3));
|
|
28
|
-
yield* RefTuple.updateAt(ref, 1, (n) => n * 2);
|
|
29
|
-
const result = yield* ref;
|
|
30
|
-
expect(result[1]).toBe(4);
|
|
31
|
-
}).pipe(Effect.scoped, Effect.runPromise));
|
|
32
|
-
|
|
33
|
-
it("appends element", () =>
|
|
34
|
-
Effect.gen(function* () {
|
|
35
|
-
const ref = yield* RefTuple.make(Tuple.make(1, 2));
|
|
36
|
-
const result = yield* RefTuple.appendElement(ref, 3);
|
|
37
|
-
expect(result).toEqual([1, 2, 3]);
|
|
38
|
-
}).pipe(Effect.scoped, Effect.runPromise));
|
|
39
|
-
|
|
40
|
-
it("prepends element", () =>
|
|
41
|
-
Effect.gen(function* () {
|
|
42
|
-
const ref = yield* RefTuple.make(Tuple.make(2, 3));
|
|
43
|
-
const result = yield* RefTuple.prependElement(ref, 1);
|
|
44
|
-
expect(result).toEqual([1, 2, 3]);
|
|
45
|
-
}).pipe(Effect.scoped, Effect.runPromise));
|
|
46
|
-
|
|
47
|
-
it("gets element at index", () =>
|
|
48
|
-
Effect.gen(function* () {
|
|
49
|
-
const ref = yield* RefTuple.make(Tuple.make(1, "hello", true));
|
|
50
|
-
const value = yield* RefTuple.get(ref, 1);
|
|
51
|
-
expect(value).toBe("hello");
|
|
52
|
-
}).pipe(Effect.scoped, Effect.runPromise));
|
|
53
|
-
|
|
54
|
-
it("gets length", () =>
|
|
55
|
-
Effect.gen(function* () {
|
|
56
|
-
const ref = yield* RefTuple.make(Tuple.make(1, 2, 3));
|
|
57
|
-
const length = yield* RefTuple.length(ref);
|
|
58
|
-
expect(length).toBe(3);
|
|
59
|
-
}).pipe(Effect.scoped, Effect.runPromise));
|
|
60
|
-
});
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extensions to RefSubject for working with tuple values
|
|
3
|
-
* @since 1.18.0
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type * as Effect from "effect/Effect";
|
|
7
|
-
import { equals } from "effect/Equal";
|
|
8
|
-
import * as Equivalence_ from "effect/Equivalence";
|
|
9
|
-
import type { Equivalence } from "effect/Equivalence";
|
|
10
|
-
import { dual } from "effect/Function";
|
|
11
|
-
import type * as Scope from "effect/Scope";
|
|
12
|
-
import * as Tuple from "effect/Tuple";
|
|
13
|
-
import type * as Fx from "../Fx/index.js";
|
|
14
|
-
import * as RefSubject from "./RefSubject.js";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* A RefTuple is a RefSubject specialized over a tuple value.
|
|
18
|
-
* @since 1.18.0
|
|
19
|
-
* @category models
|
|
20
|
-
*/
|
|
21
|
-
export interface RefTuple<
|
|
22
|
-
in out T extends ReadonlyArray<unknown>,
|
|
23
|
-
in out E = never,
|
|
24
|
-
out R = never,
|
|
25
|
-
> extends RefSubject.RefSubject<T, E, R> {}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Creates a new `RefTuple` from a tuple, `Effect`, or `Fx`.
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```ts
|
|
32
|
-
* import { Effect, Tuple } from "effect"
|
|
33
|
-
* import * as RefTuple from "effect/typed/fx/RefSubject/RefTuple"
|
|
34
|
-
*
|
|
35
|
-
* const program = Effect.gen(function* () {
|
|
36
|
-
* const value = yield* RefTuple.make(Tuple.make(1, "hello", true))
|
|
37
|
-
* const current = yield* value
|
|
38
|
-
* console.log(current) // [1, "hello", true]
|
|
39
|
-
* })
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* @since 1.18.0
|
|
43
|
-
* @category constructors
|
|
44
|
-
*/
|
|
45
|
-
export function make<T extends ReadonlyArray<unknown>, E = never, R = never>(
|
|
46
|
-
initial: T | Effect.Effect<T, E, R> | Fx.Fx<T, E, R>,
|
|
47
|
-
eq: Equivalence<T> = Equivalence_.make((a, b) => equals(a, b)),
|
|
48
|
-
): Effect.Effect<RefTuple<T, E>, never, R | Scope.Scope> {
|
|
49
|
-
return RefSubject.make(initial, { eq });
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Set the value at a specific index in the current state of a RefTuple.
|
|
54
|
-
* @since 1.18.0
|
|
55
|
-
* @category combinators
|
|
56
|
-
*/
|
|
57
|
-
export const setAt: {
|
|
58
|
-
<T extends ReadonlyArray<unknown>, I extends number>(
|
|
59
|
-
index: I,
|
|
60
|
-
value: T[I],
|
|
61
|
-
): <E, R>(ref: RefTuple<T, E, R>) => Effect.Effect<T, E, R>;
|
|
62
|
-
<T extends ReadonlyArray<unknown>, I extends number, E, R>(
|
|
63
|
-
ref: RefTuple<T, E, R>,
|
|
64
|
-
index: I,
|
|
65
|
-
value: T[I],
|
|
66
|
-
): Effect.Effect<T, E, R>;
|
|
67
|
-
} = dual(3, function setAt<
|
|
68
|
-
T extends ReadonlyArray<unknown>,
|
|
69
|
-
I extends number,
|
|
70
|
-
E,
|
|
71
|
-
R,
|
|
72
|
-
>(ref: RefTuple<T, E, R>, index: I, value: T[I]) {
|
|
73
|
-
return RefSubject.update(ref, (self) => {
|
|
74
|
-
const result = [...self] as unknown as T;
|
|
75
|
-
result[index] = value;
|
|
76
|
-
return result;
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Update the value at a specific index in the current state of a RefTuple using a function.
|
|
82
|
-
* @since 1.18.0
|
|
83
|
-
* @category combinators
|
|
84
|
-
*/
|
|
85
|
-
export const updateAt: {
|
|
86
|
-
<T extends ReadonlyArray<unknown>, I extends number>(
|
|
87
|
-
index: I,
|
|
88
|
-
f: (value: T[I]) => T[I],
|
|
89
|
-
): <E, R>(ref: RefTuple<T, E, R>) => Effect.Effect<T, E, R>;
|
|
90
|
-
<T extends ReadonlyArray<unknown>, I extends number, E, R>(
|
|
91
|
-
ref: RefTuple<T, E, R>,
|
|
92
|
-
index: I,
|
|
93
|
-
f: (value: T[I]) => T[I],
|
|
94
|
-
): Effect.Effect<T, E, R>;
|
|
95
|
-
} = dual(3, function updateAt<
|
|
96
|
-
T extends ReadonlyArray<unknown>,
|
|
97
|
-
I extends number,
|
|
98
|
-
E,
|
|
99
|
-
R,
|
|
100
|
-
>(ref: RefTuple<T, E, R>, index: I, f: (value: T[I]) => T[I]) {
|
|
101
|
-
return RefSubject.update(ref, (self) => Tuple.evolve(self, { [index]: f } as any) as T);
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
// ========================================
|
|
105
|
-
// Computed
|
|
106
|
-
// ========================================
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Append an element to the end of the current state of a RefTuple.
|
|
110
|
-
* @since 1.18.0
|
|
111
|
-
* @category computed
|
|
112
|
-
*/
|
|
113
|
-
export const appendElement: {
|
|
114
|
-
<E>(
|
|
115
|
-
element: E,
|
|
116
|
-
): <T extends ReadonlyArray<unknown>, Err, R>(
|
|
117
|
-
ref: RefTuple<T, Err, R>,
|
|
118
|
-
) => RefSubject.Computed<[...T, E], Err, R>;
|
|
119
|
-
<T extends ReadonlyArray<unknown>, E, Err, R>(
|
|
120
|
-
ref: RefTuple<T, Err, R>,
|
|
121
|
-
element: E,
|
|
122
|
-
): RefSubject.Computed<[...T, E], Err, R>;
|
|
123
|
-
} = dual(2, function appendElement<
|
|
124
|
-
T extends ReadonlyArray<unknown>,
|
|
125
|
-
E,
|
|
126
|
-
Err,
|
|
127
|
-
R,
|
|
128
|
-
>(ref: RefTuple<T, Err, R>, element: E) {
|
|
129
|
-
return RefSubject.map(ref, (self) => Tuple.appendElement(self, element));
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Prepend an element to the beginning of the current state of a RefTuple.
|
|
134
|
-
* @since 1.18.0
|
|
135
|
-
* @category computed
|
|
136
|
-
*/
|
|
137
|
-
export const prependElement: {
|
|
138
|
-
<E>(
|
|
139
|
-
element: E,
|
|
140
|
-
): <T extends ReadonlyArray<unknown>, Err, R>(
|
|
141
|
-
ref: RefTuple<T, Err, R>,
|
|
142
|
-
) => RefSubject.Computed<[E, ...T], Err, R>;
|
|
143
|
-
<T extends ReadonlyArray<unknown>, E, Err, R>(
|
|
144
|
-
ref: RefTuple<T, Err, R>,
|
|
145
|
-
element: E,
|
|
146
|
-
): RefSubject.Computed<[E, ...T], Err, R>;
|
|
147
|
-
} = dual(2, function prependElement<
|
|
148
|
-
T extends ReadonlyArray<unknown>,
|
|
149
|
-
E,
|
|
150
|
-
Err,
|
|
151
|
-
R,
|
|
152
|
-
>(ref: RefTuple<T, Err, R>, element: E) {
|
|
153
|
-
return RefSubject.map(ref, (self) => [element, ...self] as [E, ...T]);
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Get the element at a specific index from the current state of a RefTuple.
|
|
158
|
-
* @since 1.18.0
|
|
159
|
-
* @category computed
|
|
160
|
-
*/
|
|
161
|
-
type Indices<T extends ReadonlyArray<unknown>> = Exclude<Partial<T>["length"], T["length"]>;
|
|
162
|
-
|
|
163
|
-
export const get: {
|
|
164
|
-
<T extends ReadonlyArray<unknown>, I extends Indices<T> & keyof T>(
|
|
165
|
-
index: I,
|
|
166
|
-
): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<T[I], E, R>;
|
|
167
|
-
<T extends ReadonlyArray<unknown>, I extends Indices<T> & keyof T, E, R>(
|
|
168
|
-
ref: RefTuple<T, E, R>,
|
|
169
|
-
index: I,
|
|
170
|
-
): RefSubject.Computed<T[I], E, R>;
|
|
171
|
-
} = dual(2, function get<
|
|
172
|
-
T extends ReadonlyArray<unknown>,
|
|
173
|
-
I extends Indices<T> & keyof T,
|
|
174
|
-
E,
|
|
175
|
-
R,
|
|
176
|
-
>(ref: RefTuple<T, E, R>, index: I) {
|
|
177
|
-
return RefSubject.map(ref, (self) => Tuple.get(self, index));
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Get the length of the current state of a RefTuple.
|
|
182
|
-
* @since 1.18.0
|
|
183
|
-
* @category computed
|
|
184
|
-
*/
|
|
185
|
-
export const length = <T extends ReadonlyArray<unknown>, E, R>(
|
|
186
|
-
ref: RefTuple<T, E, R>,
|
|
187
|
-
): RefSubject.Computed<number, E, R> => RefSubject.map(ref, (self) => self.length);
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Pick elements at specific indices from the current state of a RefTuple.
|
|
191
|
-
* @since 1.18.0
|
|
192
|
-
* @category computed
|
|
193
|
-
*/
|
|
194
|
-
export const pick: {
|
|
195
|
-
<T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>>(
|
|
196
|
-
indices: I,
|
|
197
|
-
): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<Array<T[number]>, E, R>;
|
|
198
|
-
<T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>, E, R>(
|
|
199
|
-
ref: RefTuple<T, E, R>,
|
|
200
|
-
indices: I,
|
|
201
|
-
): RefSubject.Computed<Array<T[number]>, E, R>;
|
|
202
|
-
} = dual(2, function pick<
|
|
203
|
-
T extends ReadonlyArray<unknown>,
|
|
204
|
-
const I extends ReadonlyArray<Indices<T>>,
|
|
205
|
-
E,
|
|
206
|
-
R,
|
|
207
|
-
>(ref: RefTuple<T, E, R>, indices: I) {
|
|
208
|
-
return RefSubject.map(ref, (self) => Tuple.pick(self, indices));
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Omit elements at specific indices from the current state of a RefTuple.
|
|
213
|
-
* @since 1.18.0
|
|
214
|
-
* @category computed
|
|
215
|
-
*/
|
|
216
|
-
export const omit: {
|
|
217
|
-
<T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>>(
|
|
218
|
-
indices: I,
|
|
219
|
-
): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<Array<T[number]>, E, R>;
|
|
220
|
-
<T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>, E, R>(
|
|
221
|
-
ref: RefTuple<T, E, R>,
|
|
222
|
-
indices: I,
|
|
223
|
-
): RefSubject.Computed<Array<T[number]>, E, R>;
|
|
224
|
-
} = dual(2, function omit<
|
|
225
|
-
T extends ReadonlyArray<unknown>,
|
|
226
|
-
const I extends ReadonlyArray<Indices<T>>,
|
|
227
|
-
E,
|
|
228
|
-
R,
|
|
229
|
-
>(ref: RefTuple<T, E, R>, indices: I) {
|
|
230
|
-
return RefSubject.map(ref, (self) => Tuple.omit(self, indices));
|
|
231
|
-
});
|
package/src/RefSubject/index.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export * as RefArray from "./RefArray.js";
|
|
2
|
-
export * as RefBigDecimal from "./RefBigDecimal.js";
|
|
3
|
-
export * as RefBigInt from "./RefBigInt.js";
|
|
4
|
-
export * as RefBoolean from "./RefBoolean.js";
|
|
5
|
-
export * as RefCause from "./RefCause.js";
|
|
6
|
-
export * as RefChunk from "./RefChunk.js";
|
|
7
|
-
export * as RefDateTime from "./RefDateTime.js";
|
|
8
|
-
export * as RefDuration from "./RefDuration.js";
|
|
9
|
-
export * as RefGraph from "./RefGraph.js";
|
|
10
|
-
export * as RefHashMap from "./RefHashMap.js";
|
|
11
|
-
export * as RefHashRing from "./RefHashRing.js";
|
|
12
|
-
export * as RefHashSet from "./RefHashSet.js";
|
|
13
|
-
export * as RefIterable from "./RefIterable.js";
|
|
14
|
-
export * as RefOption from "./RefOption.js";
|
|
15
|
-
export * as RefRecord from "./RefRecord.js";
|
|
16
|
-
export * as RefResult from "./RefResult.js";
|
|
17
|
-
export * as RefString from "./RefString.js";
|
|
18
|
-
export * as RefStruct from "./RefStruct.js";
|
|
19
|
-
export * as RefSubject from "./RefSubject.js";
|
|
20
|
-
export * as RefTrie from "./RefTrie.js";
|
|
21
|
-
export * as RefTuple from "./RefTuple.js";
|