@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
|
@@ -8,13 +8,25 @@ import * as Equivalence_ from "effect/Equivalence";
|
|
|
8
8
|
import { dual } from "effect/Function";
|
|
9
9
|
import * as Option from "effect/Option";
|
|
10
10
|
import * as RefSubject from "./RefSubject.js";
|
|
11
|
+
import { Result } from "effect";
|
|
11
12
|
/**
|
|
12
13
|
* Creates a new `RefArray` from an array, `Effect`, or `Fx`.
|
|
13
14
|
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* ## Why
|
|
17
|
+
*
|
|
18
|
+
* Creates array state with equality suited to that Effect data type, so unchanged values do not
|
|
19
|
+
* produce redundant pushed updates.
|
|
20
|
+
*
|
|
21
|
+
* ## Ownership and lifetime
|
|
22
|
+
*
|
|
23
|
+
* The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
|
|
24
|
+
* and cleanup; source failures and services stay on reads and pushes.
|
|
25
|
+
*
|
|
14
26
|
* @example
|
|
15
27
|
* ```ts
|
|
16
28
|
* import { Effect } from "effect"
|
|
17
|
-
* import * as RefArray from "@typed/fx/
|
|
29
|
+
* import * as RefArray from "@typed/fx/RefArray"
|
|
18
30
|
*
|
|
19
31
|
* // From a plain array
|
|
20
32
|
* const program1 = Effect.gen(function* () {
|
|
@@ -34,229 +46,540 @@ import * as RefSubject from "./RefSubject.js";
|
|
|
34
46
|
* ```
|
|
35
47
|
*
|
|
36
48
|
* @since 1.18.0
|
|
37
|
-
* @category
|
|
49
|
+
* @category Constructors
|
|
38
50
|
*/
|
|
39
51
|
export function make(initial, eq = equals) {
|
|
40
52
|
return RefSubject.make(initial, { eq: Equivalence_.Array(eq) });
|
|
41
53
|
}
|
|
42
54
|
/**
|
|
43
55
|
* Prepend a value to the current state of a RefArray.
|
|
56
|
+
* @remarks
|
|
57
|
+
* ## Why
|
|
58
|
+
*
|
|
59
|
+
* Expresses prepend as one ordered array transition; readers never observe the intermediate
|
|
60
|
+
* collection used to build the result.
|
|
61
|
+
*
|
|
62
|
+
* ## Ownership and lifetime
|
|
63
|
+
*
|
|
64
|
+
* Running prepend performs one serialized array transition and resolves with its committed value.
|
|
65
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
66
|
+
*
|
|
44
67
|
* @since 1.18.0
|
|
45
|
-
* @category
|
|
68
|
+
* @category State updates
|
|
46
69
|
*/
|
|
47
70
|
export const prepend = dual(2, function prepend(ref, value) {
|
|
48
71
|
return RefSubject.update(ref, ReadonlyArray.prepend(value));
|
|
49
72
|
});
|
|
50
73
|
/**
|
|
51
74
|
* Prepend an iterable of values to the current state of a RefArray.
|
|
75
|
+
* @remarks
|
|
76
|
+
* ## Why
|
|
77
|
+
*
|
|
78
|
+
* Expresses prepend all as one ordered array transition; readers never observe the intermediate
|
|
79
|
+
* collection used to build the result.
|
|
80
|
+
*
|
|
81
|
+
* ## Ownership and lifetime
|
|
82
|
+
*
|
|
83
|
+
* Running prepend all performs one serialized array transition and resolves with its committed
|
|
84
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
85
|
+
*
|
|
52
86
|
* @since 1.18.0
|
|
53
|
-
* @category
|
|
87
|
+
* @category State updates
|
|
54
88
|
*/
|
|
55
89
|
export const prependAll = dual(2, function prependAll(ref, value) {
|
|
56
90
|
return RefSubject.update(ref, ReadonlyArray.prependAll(value));
|
|
57
91
|
});
|
|
58
92
|
/**
|
|
59
93
|
* Append a value to the current state of a RefArray.
|
|
94
|
+
* @remarks
|
|
95
|
+
* ## Why
|
|
96
|
+
*
|
|
97
|
+
* Expresses append as one ordered array transition; readers never observe the intermediate
|
|
98
|
+
* collection used to build the result.
|
|
99
|
+
*
|
|
100
|
+
* ## Ownership and lifetime
|
|
101
|
+
*
|
|
102
|
+
* Running append performs one serialized array transition and resolves with its committed value.
|
|
103
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
104
|
+
*
|
|
60
105
|
* @since 1.18.0
|
|
61
|
-
* @category
|
|
106
|
+
* @category State updates
|
|
62
107
|
*/
|
|
63
108
|
export const append = dual(2, function append(ref, value) {
|
|
64
109
|
return RefSubject.update(ref, ReadonlyArray.append(value));
|
|
65
110
|
});
|
|
66
111
|
/**
|
|
67
112
|
* Append an iterable of values to the current state of a RefArray.
|
|
113
|
+
* @remarks
|
|
114
|
+
* ## Why
|
|
115
|
+
*
|
|
116
|
+
* Expresses append all as one ordered array transition; readers never observe the intermediate
|
|
117
|
+
* collection used to build the result.
|
|
118
|
+
*
|
|
119
|
+
* ## Ownership and lifetime
|
|
120
|
+
*
|
|
121
|
+
* Running append all performs one serialized array transition and resolves with its committed
|
|
122
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
123
|
+
*
|
|
68
124
|
* @since 1.18.0
|
|
69
|
-
* @category
|
|
125
|
+
* @category State updates
|
|
70
126
|
*/
|
|
71
127
|
export const appendAll = dual(2, function appendAll(ref, value) {
|
|
72
128
|
return RefSubject.update(ref, ReadonlyArray.appendAll(value));
|
|
73
129
|
});
|
|
74
130
|
/**
|
|
75
131
|
* Drop the first `n` values from a RefArray.
|
|
132
|
+
* @remarks
|
|
133
|
+
* ## Why
|
|
134
|
+
*
|
|
135
|
+
* Applies drop to the committed array value and publishes only the result, preserving its element
|
|
136
|
+
* order and equality rules.
|
|
137
|
+
*
|
|
138
|
+
* ## Ownership and lifetime
|
|
139
|
+
*
|
|
140
|
+
* Running drop performs one serialized array transition and resolves with its committed value. It
|
|
141
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
142
|
+
*
|
|
76
143
|
* @since 1.18.0
|
|
77
|
-
* @category
|
|
144
|
+
* @category State updates
|
|
78
145
|
*/
|
|
79
146
|
export const drop = dual(2, function drop(ref, n) {
|
|
80
147
|
return RefSubject.update(ref, ReadonlyArray.drop(n));
|
|
81
148
|
});
|
|
82
149
|
/**
|
|
83
150
|
* Drop the last `n` values from a RefArray.
|
|
151
|
+
* @remarks
|
|
152
|
+
* ## Why
|
|
153
|
+
*
|
|
154
|
+
* Applies drop right to the committed array value and publishes only the result, preserving its
|
|
155
|
+
* element order and equality rules.
|
|
156
|
+
*
|
|
157
|
+
* ## Ownership and lifetime
|
|
158
|
+
*
|
|
159
|
+
* Running drop right performs one serialized array transition and resolves with its committed
|
|
160
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
161
|
+
*
|
|
84
162
|
* @since 1.18.0
|
|
85
|
-
* @category
|
|
163
|
+
* @category State updates
|
|
86
164
|
*/
|
|
87
165
|
export const dropRight = dual(2, function dropRight(ref, n) {
|
|
88
166
|
return RefSubject.update(ref, ReadonlyArray.dropRight(n));
|
|
89
167
|
});
|
|
90
168
|
/**
|
|
91
169
|
* Drop values from a RefArray while a predicate is true.
|
|
170
|
+
* @remarks
|
|
171
|
+
* ## Why
|
|
172
|
+
*
|
|
173
|
+
* Applies drop while to the committed array value and publishes only the result, preserving its
|
|
174
|
+
* element order and equality rules.
|
|
175
|
+
*
|
|
176
|
+
* ## Ownership and lifetime
|
|
177
|
+
*
|
|
178
|
+
* Running drop while performs one serialized array transition and resolves with its committed
|
|
179
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
180
|
+
*
|
|
92
181
|
* @since 1.18.0
|
|
93
|
-
* @category
|
|
182
|
+
* @category State updates
|
|
94
183
|
*/
|
|
95
184
|
export const dropWhile = dual(2, function dropWhile(ref, predicate) {
|
|
96
185
|
return RefSubject.update(ref, ReadonlyArray.dropWhile(predicate));
|
|
97
186
|
});
|
|
98
187
|
/**
|
|
99
188
|
* Filter the values of a RefArray using a predicate creating a Computed value.
|
|
189
|
+
* @remarks
|
|
190
|
+
* ## Why
|
|
191
|
+
*
|
|
192
|
+
* Projects array state with filter values for both current reads and future pushes, avoiding a
|
|
193
|
+
* second mutable cache of the derived value.
|
|
194
|
+
*
|
|
195
|
+
* ## Ownership and lifetime
|
|
196
|
+
*
|
|
197
|
+
* The filter values view retains no independent state. An Effect read samples the source once; Fx
|
|
198
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
199
|
+
*
|
|
100
200
|
* @since 1.18.0
|
|
101
|
-
* @category
|
|
201
|
+
* @category Derived queries
|
|
102
202
|
*/
|
|
103
203
|
export const filterValues = dual(2, function filterValues(ref, predicate) {
|
|
104
204
|
return RefSubject.map(ref, ReadonlyArray.filter(predicate));
|
|
105
205
|
});
|
|
106
206
|
/**
|
|
107
207
|
* Get a value contained a particular index of a RefArray.
|
|
208
|
+
* @remarks
|
|
209
|
+
* ## Why
|
|
210
|
+
*
|
|
211
|
+
* Models the possibly absent result of get index as Filtered state, so absence stays explicit
|
|
212
|
+
* while later source versions can make a value available.
|
|
213
|
+
*
|
|
214
|
+
* ## Ownership and lifetime
|
|
215
|
+
*
|
|
216
|
+
* The get index view retains no independent value. Its Effect read fails with NoSuchElement
|
|
217
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
218
|
+
*
|
|
108
219
|
* @since 1.18.0
|
|
109
|
-
* @category
|
|
220
|
+
* @category Optional queries
|
|
110
221
|
*/
|
|
111
222
|
export const getIndex = dual(2, function getIndex(ref, index) {
|
|
112
223
|
return RefSubject.filterMap(ref, ReadonlyArray.get(index));
|
|
113
224
|
});
|
|
114
225
|
/**
|
|
115
226
|
* Group the values of a RefArray by a key.
|
|
227
|
+
* @remarks
|
|
228
|
+
* ## Why
|
|
229
|
+
*
|
|
230
|
+
* Projects array state with group by for both current reads and future pushes, avoiding a second
|
|
231
|
+
* mutable cache of the derived value.
|
|
232
|
+
*
|
|
233
|
+
* ## Ownership and lifetime
|
|
234
|
+
*
|
|
235
|
+
* The group by view retains no independent state. An Effect read samples the source once; Fx
|
|
236
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
237
|
+
*
|
|
116
238
|
* @since 1.18.0
|
|
117
|
-
* @category
|
|
239
|
+
* @category Derived queries
|
|
118
240
|
*/
|
|
119
241
|
export const groupBy = dual(2, function groupBy(ref, f) {
|
|
120
242
|
return RefSubject.map(ref, ReadonlyArray.groupBy(f));
|
|
121
243
|
});
|
|
122
244
|
/**
|
|
123
245
|
* Insert a value at a particular index of a RefArray.
|
|
246
|
+
* @remarks
|
|
247
|
+
* ## Why
|
|
248
|
+
*
|
|
249
|
+
* Expresses insert at as one ordered array transition; readers never observe the intermediate
|
|
250
|
+
* collection used to build the result.
|
|
251
|
+
*
|
|
252
|
+
* ## Ownership and lifetime
|
|
253
|
+
*
|
|
254
|
+
* Running insert at performs one serialized array transition and resolves with its committed
|
|
255
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
256
|
+
*
|
|
124
257
|
* @since 1.18.0
|
|
125
|
-
* @category
|
|
258
|
+
* @category State updates
|
|
126
259
|
*/
|
|
127
260
|
export const insertAt = dual(3, function insertAt(ref, index, a) {
|
|
128
|
-
return RefSubject.update(ref, (as) => Option.getOrElse(
|
|
129
|
-
...as,
|
|
130
|
-
a,
|
|
131
|
-
]));
|
|
261
|
+
return RefSubject.update(ref, (as) => Option.getOrElse(ReadonlyArray.insertAt(as, index, a), () => [...as, a]));
|
|
132
262
|
});
|
|
133
263
|
/**
|
|
134
264
|
* Check to see if a RefArray is empty.
|
|
265
|
+
* @remarks
|
|
266
|
+
* ## Why
|
|
267
|
+
*
|
|
268
|
+
* Makes is empty a live projection of the array; consumers can sample it now or observe it without
|
|
269
|
+
* copying the source state.
|
|
270
|
+
*
|
|
271
|
+
* ## Ownership and lifetime
|
|
272
|
+
*
|
|
273
|
+
* The is empty view retains no independent state. An Effect read samples the source once; Fx
|
|
274
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
275
|
+
*
|
|
135
276
|
* @since 1.18.0
|
|
136
|
-
* @category
|
|
277
|
+
* @category State predicates
|
|
137
278
|
*/
|
|
138
279
|
export const isEmpty = (ref) => RefSubject.map(ref, ReadonlyArray.isReadonlyArrayEmpty);
|
|
139
280
|
/**
|
|
140
281
|
* Check to see if a RefArray is non-empty.
|
|
282
|
+
* @remarks
|
|
283
|
+
* ## Why
|
|
284
|
+
*
|
|
285
|
+
* Makes is non empty a live projection of the array; consumers can sample it now or observe it
|
|
286
|
+
* without copying the source state.
|
|
287
|
+
*
|
|
288
|
+
* ## Ownership and lifetime
|
|
289
|
+
*
|
|
290
|
+
* The is non empty view retains no independent state. An Effect read samples the source once; Fx
|
|
291
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
292
|
+
*
|
|
141
293
|
* @since 1.18.0
|
|
142
|
-
* @category
|
|
294
|
+
* @category State predicates
|
|
143
295
|
*/
|
|
144
296
|
export const isNonEmpty = (ref) => RefSubject.map(ref, ReadonlyArray.isReadonlyArrayNonEmpty);
|
|
145
297
|
/**
|
|
146
298
|
* Get the current length of a RefArray.
|
|
299
|
+
* @remarks
|
|
300
|
+
* ## Why
|
|
301
|
+
*
|
|
302
|
+
* Makes length a live projection of the array; consumers can sample it now or observe it without
|
|
303
|
+
* copying the source state.
|
|
304
|
+
*
|
|
305
|
+
* ## Ownership and lifetime
|
|
306
|
+
*
|
|
307
|
+
* The length view retains no independent state. An Effect read samples the source once; Fx
|
|
308
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
309
|
+
*
|
|
147
310
|
* @since 1.18.0
|
|
148
|
-
* @category
|
|
311
|
+
* @category Derived queries
|
|
149
312
|
*/
|
|
150
313
|
export const length = (ref) => RefSubject.map(ref, ReadonlyArray.length);
|
|
151
314
|
/**
|
|
152
315
|
* Map (Endomorphic) the values of a RefArray.
|
|
316
|
+
* @remarks
|
|
317
|
+
* ## Why
|
|
318
|
+
*
|
|
319
|
+
* The implementation applies the endomorphic map through `RefSubject.update`, replacing the
|
|
320
|
+
* writable RefArray in one serialized transition. The published Computed return type does not
|
|
321
|
+
* describe that runtime behavior.
|
|
322
|
+
*
|
|
323
|
+
* ## Ownership and lifetime
|
|
324
|
+
*
|
|
325
|
+
* The Effect starts when run, participates in the source ref's serialized update boundary, and
|
|
326
|
+
* acquires no resource. It returns the committed array and retains the ref's E and R channels.
|
|
327
|
+
* ## Known API defect
|
|
328
|
+
*
|
|
329
|
+
* The public overloads currently declare `Computed<ReadonlyArray<A>, E, R>`, but the implementation
|
|
330
|
+
* returns the update Effect from `RefSubject.update`. This documentation reports the shipped mismatch;
|
|
331
|
+
* changing that signature or runtime behavior requires a separate compatibility decision.
|
|
332
|
+
*
|
|
153
333
|
* @since 1.18.0
|
|
154
|
-
* @category
|
|
334
|
+
* @category State updates
|
|
155
335
|
*/
|
|
156
336
|
export const map = dual(2, function mapValues(ref, f) {
|
|
157
337
|
return RefSubject.update(ref, ReadonlyArray.map(f));
|
|
158
338
|
});
|
|
159
339
|
/**
|
|
160
340
|
* Map the values with their indexes of a RefArray.
|
|
341
|
+
* @remarks
|
|
342
|
+
* ## Why
|
|
343
|
+
*
|
|
344
|
+
* Projects array state with map values for both current reads and future pushes, avoiding a second
|
|
345
|
+
* mutable cache of the derived value.
|
|
346
|
+
*
|
|
347
|
+
* ## Ownership and lifetime
|
|
348
|
+
*
|
|
349
|
+
* The map values view retains no independent state. An Effect read samples the source once; Fx
|
|
350
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
351
|
+
*
|
|
161
352
|
* @since 1.18.0
|
|
162
|
-
* @category
|
|
353
|
+
* @category Derived queries
|
|
163
354
|
*/
|
|
164
355
|
export const mapValues = dual(2, function mapValues(ref, f) {
|
|
165
356
|
return RefSubject.map(ref, ReadonlyArray.map(f));
|
|
166
357
|
});
|
|
167
358
|
/**
|
|
168
359
|
* Modify the value at a particular index of a RefArray.
|
|
360
|
+
* @remarks
|
|
361
|
+
* ## Why
|
|
362
|
+
*
|
|
363
|
+
* Keeps modify at atomic with respect to competing RefSubject writes instead of splitting the read
|
|
364
|
+
* and replacement into separate effects.
|
|
365
|
+
*
|
|
366
|
+
* ## Ownership and lifetime
|
|
367
|
+
*
|
|
368
|
+
* Running modify at performs one serialized array transition and resolves with its committed
|
|
369
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
370
|
+
*
|
|
169
371
|
* @since 1.18.0
|
|
170
|
-
* @category
|
|
372
|
+
* @category State updates
|
|
171
373
|
*/
|
|
172
374
|
export const modifyAt = dual(3, function modifyAt(ref, index, f) {
|
|
173
|
-
return RefSubject.update(ref, (values) => ReadonlyArray.modify(values, index, f)
|
|
375
|
+
return RefSubject.update(ref, (values) => Option.getOrElse(ReadonlyArray.modify(values, index, f), () => values));
|
|
174
376
|
});
|
|
175
377
|
/**
|
|
176
378
|
* Partition the values of a RefArray using a predicate.
|
|
379
|
+
* @remarks
|
|
380
|
+
* ## Why
|
|
381
|
+
*
|
|
382
|
+
* Partition the values of a RefArray using a predicate. The operation remains attached to the
|
|
383
|
+
* RefSubject's versioned state boundary.
|
|
384
|
+
*
|
|
385
|
+
* ## Ownership and lifetime
|
|
386
|
+
*
|
|
387
|
+
* The partition view retains no independent state. An Effect read samples the source once; Fx
|
|
388
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
389
|
+
*
|
|
177
390
|
* @since 1.18.0
|
|
178
|
-
* @category
|
|
391
|
+
* @category Derived queries
|
|
179
392
|
*/
|
|
180
393
|
export const partition = dual(2, function partition(ref, predicate) {
|
|
181
|
-
return RefSubject.map(ref, ReadonlyArray.partition(predicate));
|
|
394
|
+
return RefSubject.map(ref, (array) => ReadonlyArray.partition(array, Result.liftPredicate(predicate, Result.fail)));
|
|
182
395
|
});
|
|
183
396
|
/**
|
|
184
397
|
* Reduce the values of a RefArray to a single value.
|
|
398
|
+
* @remarks
|
|
399
|
+
* ## Why
|
|
400
|
+
*
|
|
401
|
+
* Makes reduce a live projection of the array; consumers can sample it now or observe it without
|
|
402
|
+
* copying the source state.
|
|
403
|
+
*
|
|
404
|
+
* ## Ownership and lifetime
|
|
405
|
+
*
|
|
406
|
+
* The reduce view retains no independent state. An Effect read samples the source once; Fx
|
|
407
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
408
|
+
*
|
|
185
409
|
* @since 1.18.0
|
|
186
|
-
* @category
|
|
410
|
+
* @category Derived queries
|
|
187
411
|
*/
|
|
188
412
|
export const reduce = dual(3, function reduce(ref, b, f) {
|
|
189
413
|
return RefSubject.map(ref, ReadonlyArray.reduce(b, f));
|
|
190
414
|
});
|
|
191
415
|
/**
|
|
192
416
|
* Reduce the values of a RefArray to a single value in reverse order.
|
|
417
|
+
* @remarks
|
|
418
|
+
* ## Why
|
|
419
|
+
*
|
|
420
|
+
* Makes reduce right a live projection of the array; consumers can sample it now or observe it
|
|
421
|
+
* without copying the source state.
|
|
422
|
+
*
|
|
423
|
+
* ## Ownership and lifetime
|
|
424
|
+
*
|
|
425
|
+
* The reduce right view retains no independent state. An Effect read samples the source once; Fx
|
|
426
|
+
* observation follows later pushes and its observing Scope owns subscription cleanup.
|
|
427
|
+
*
|
|
193
428
|
* @since 1.18.0
|
|
194
|
-
* @category
|
|
429
|
+
* @category Derived queries
|
|
195
430
|
*/
|
|
196
431
|
export const reduceRight = dual(3, function reduceRight(ref, b, f) {
|
|
197
432
|
return RefSubject.map(ref, ReadonlyArray.reduceRight(b, f));
|
|
198
433
|
});
|
|
199
434
|
/**
|
|
200
435
|
* Replace a value at a particular index of a RefArray.
|
|
436
|
+
* @remarks
|
|
437
|
+
* ## Why
|
|
438
|
+
*
|
|
439
|
+
* Keeps replace at atomic with respect to competing RefSubject writes instead of splitting the
|
|
440
|
+
* read and replacement into separate effects.
|
|
441
|
+
*
|
|
442
|
+
* ## Ownership and lifetime
|
|
443
|
+
*
|
|
444
|
+
* Running replace at performs one serialized array transition and resolves with its committed
|
|
445
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
446
|
+
*
|
|
201
447
|
* @since 1.18.0
|
|
202
|
-
* @category
|
|
448
|
+
* @category State updates
|
|
203
449
|
*/
|
|
204
450
|
export const replaceAt = dual(3, function replaceAt(ref, index, a) {
|
|
205
|
-
return RefSubject.update(ref, (values) => ReadonlyArray.replace(values, index, a)
|
|
451
|
+
return RefSubject.update(ref, (values) => Option.getOrElse(ReadonlyArray.replace(values, index, a), () => values));
|
|
206
452
|
});
|
|
207
453
|
/**
|
|
208
454
|
* Rotate the values of a RefArray by `n` places. Helpful for things like carousels.
|
|
455
|
+
* @remarks
|
|
456
|
+
* ## Why
|
|
457
|
+
*
|
|
458
|
+
* Derives the reordered array through its Effect collection operation while retaining RefSubject
|
|
459
|
+
* equality and version tracking.
|
|
460
|
+
*
|
|
461
|
+
* ## Ownership and lifetime
|
|
462
|
+
*
|
|
463
|
+
* Running rotate performs one serialized array transition and resolves with its committed value.
|
|
464
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
465
|
+
*
|
|
209
466
|
* @since 1.18.0
|
|
210
|
-
* @category
|
|
467
|
+
* @category State updates
|
|
211
468
|
*/
|
|
212
469
|
export const rotate = dual(2, function rotate(ref, n) {
|
|
213
470
|
return RefSubject.update(ref, ReadonlyArray.rotate(n));
|
|
214
471
|
});
|
|
215
472
|
/**
|
|
216
473
|
* Sort the values of a RefArray using a provided Order.
|
|
474
|
+
* @remarks
|
|
475
|
+
* ## Why
|
|
476
|
+
*
|
|
477
|
+
* Derives the reordered array through its Effect collection operation while retaining RefSubject
|
|
478
|
+
* equality and version tracking.
|
|
479
|
+
*
|
|
480
|
+
* ## Ownership and lifetime
|
|
481
|
+
*
|
|
482
|
+
* Running sort by performs one serialized array transition and resolves with its committed value.
|
|
483
|
+
* It acquires no resource; failures and services remain those of the source ref.
|
|
484
|
+
*
|
|
217
485
|
* @since 1.18.0
|
|
218
|
-
* @category
|
|
486
|
+
* @category State updates
|
|
219
487
|
*/
|
|
220
488
|
export const sortBy = dual(2, function sortBy(ref, orders) {
|
|
221
489
|
return RefSubject.update(ref, ReadonlyArray.sortBy(...orders));
|
|
222
490
|
});
|
|
223
491
|
/**
|
|
224
492
|
* Take the first `n` values from a RefArray.
|
|
493
|
+
* @remarks
|
|
494
|
+
* ## Why
|
|
495
|
+
*
|
|
496
|
+
* Applies take to the committed array value and publishes only the result, preserving its element
|
|
497
|
+
* order and equality rules.
|
|
498
|
+
*
|
|
499
|
+
* ## Ownership and lifetime
|
|
500
|
+
*
|
|
501
|
+
* Running take performs one serialized array transition and resolves with its committed value. It
|
|
502
|
+
* acquires no resource; failures and services remain those of the source ref.
|
|
503
|
+
*
|
|
225
504
|
* @since 1.18.0
|
|
226
|
-
* @category
|
|
505
|
+
* @category State updates
|
|
227
506
|
*/
|
|
228
507
|
export const take = dual(2, function take(ref, n) {
|
|
229
508
|
return RefSubject.update(ref, ReadonlyArray.take(n));
|
|
230
509
|
});
|
|
231
510
|
/**
|
|
232
511
|
* Take the last `n` values from a RefArray.
|
|
512
|
+
* @remarks
|
|
513
|
+
* ## Why
|
|
514
|
+
*
|
|
515
|
+
* Applies take right to the committed array value and publishes only the result, preserving its
|
|
516
|
+
* element order and equality rules.
|
|
517
|
+
*
|
|
518
|
+
* ## Ownership and lifetime
|
|
519
|
+
*
|
|
520
|
+
* Running take right performs one serialized array transition and resolves with its committed
|
|
521
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
522
|
+
*
|
|
233
523
|
* @since 1.18.0
|
|
234
|
-
* @category
|
|
524
|
+
* @category State updates
|
|
235
525
|
*/
|
|
236
526
|
export const takeRight = dual(2, function takeRight(ref, n) {
|
|
237
527
|
return RefSubject.update(ref, ReadonlyArray.takeRight(n));
|
|
238
528
|
});
|
|
239
529
|
/**
|
|
240
530
|
* Take values from a RefArray while a predicate is true.
|
|
531
|
+
* @remarks
|
|
532
|
+
* ## Why
|
|
533
|
+
*
|
|
534
|
+
* Applies take while to the committed array value and publishes only the result, preserving its
|
|
535
|
+
* element order and equality rules.
|
|
536
|
+
*
|
|
537
|
+
* ## Ownership and lifetime
|
|
538
|
+
*
|
|
539
|
+
* Running take while performs one serialized array transition and resolves with its committed
|
|
540
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
541
|
+
*
|
|
241
542
|
* @since 1.18.0
|
|
242
|
-
* @category
|
|
543
|
+
* @category State updates
|
|
243
544
|
*/
|
|
244
545
|
export const takeWhile = dual(2, function takeWhile(ref, predicate) {
|
|
245
546
|
return RefSubject.update(ref, ReadonlyArray.takeWhile(predicate));
|
|
246
547
|
});
|
|
247
548
|
/**
|
|
248
549
|
* Remove any duplicate values from a RefArray.
|
|
550
|
+
* @remarks
|
|
551
|
+
* ## Why
|
|
552
|
+
*
|
|
553
|
+
* Derives the reordered array through its Effect collection operation while retaining RefSubject
|
|
554
|
+
* equality and version tracking.
|
|
555
|
+
*
|
|
556
|
+
* ## Ownership and lifetime
|
|
557
|
+
*
|
|
558
|
+
* Running dedupe with performs one serialized array transition and resolves with its committed
|
|
559
|
+
* value. It acquires no resource; failures and services remain those of the source ref.
|
|
560
|
+
*
|
|
249
561
|
* @since 1.18.0
|
|
250
|
-
* @category
|
|
562
|
+
* @category State updates
|
|
251
563
|
*/
|
|
252
564
|
export const dedupeWith = (valueEq) => (ref) => RefSubject.update(ref, ReadonlyArray.dedupeWith(valueEq));
|
|
253
565
|
/**
|
|
254
566
|
* Gets the last element of a `RefArray` as a `Filtered`.
|
|
255
567
|
*
|
|
568
|
+
* @remarks
|
|
569
|
+
* ## Why
|
|
570
|
+
*
|
|
571
|
+
* Models the possibly absent result of last as Filtered state, so absence stays explicit while
|
|
572
|
+
* later source versions can make a value available.
|
|
573
|
+
*
|
|
574
|
+
* ## Ownership and lifetime
|
|
575
|
+
*
|
|
576
|
+
* The last view retains no independent value. Its Effect read fails with NoSuchElement
|
|
577
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
578
|
+
*
|
|
256
579
|
* @example
|
|
257
580
|
* ```ts
|
|
258
581
|
* import { Effect } from "effect"
|
|
259
|
-
* import * as RefArray from "@typed/fx/
|
|
582
|
+
* import * as RefArray from "@typed/fx/RefArray"
|
|
260
583
|
*
|
|
261
584
|
* const program = Effect.gen(function* () {
|
|
262
585
|
* const items = yield* RefArray.make([1, 2, 3, 4, 5])
|
|
@@ -272,16 +595,27 @@ export const dedupeWith = (valueEq) => (ref) => RefSubject.update(ref, ReadonlyA
|
|
|
272
595
|
* ```
|
|
273
596
|
*
|
|
274
597
|
* @since 1.18.0
|
|
275
|
-
* @category
|
|
598
|
+
* @category Optional queries
|
|
276
599
|
*/
|
|
277
600
|
export const last = (ref) => RefSubject.filterMap(ref, ReadonlyArray.last);
|
|
278
601
|
/**
|
|
279
602
|
* Gets the first element of a `RefArray` as a `Filtered`.
|
|
280
603
|
*
|
|
604
|
+
* @remarks
|
|
605
|
+
* ## Why
|
|
606
|
+
*
|
|
607
|
+
* Models the possibly absent result of head as Filtered state, so absence stays explicit while
|
|
608
|
+
* later source versions can make a value available.
|
|
609
|
+
*
|
|
610
|
+
* ## Ownership and lifetime
|
|
611
|
+
*
|
|
612
|
+
* The head view retains no independent value. Its Effect read fails with NoSuchElement
|
|
613
|
+
* while absent; the observing Scope owns and finalizes its Fx subscription.
|
|
614
|
+
*
|
|
281
615
|
* @example
|
|
282
616
|
* ```ts
|
|
283
617
|
* import { Effect } from "effect"
|
|
284
|
-
* import * as RefArray from "@typed/fx/
|
|
618
|
+
* import * as RefArray from "@typed/fx/RefArray"
|
|
285
619
|
*
|
|
286
620
|
* const program = Effect.gen(function* () {
|
|
287
621
|
* const items = yield* RefArray.make([1, 2, 3, 4, 5])
|
|
@@ -297,6 +631,6 @@ export const last = (ref) => RefSubject.filterMap(ref, ReadonlyArray.last);
|
|
|
297
631
|
* ```
|
|
298
632
|
*
|
|
299
633
|
* @since 1.18.0
|
|
300
|
-
* @category
|
|
634
|
+
* @category Optional queries
|
|
301
635
|
*/
|
|
302
636
|
export const head = (ref) => RefSubject.filterMap(ref, ReadonlyArray.head);
|