synstate 0.1.2 → 1.0.0
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/README.md +199 -146
- package/dist/core/class/child-observable-class.d.mts.map +1 -1
- package/dist/core/class/child-observable-class.mjs +43 -10
- package/dist/core/class/child-observable-class.mjs.map +1 -1
- package/dist/core/class/observable-base-class.d.mts +4 -4
- package/dist/core/class/observable-base-class.d.mts.map +1 -1
- package/dist/core/class/observable-base-class.mjs +8 -8
- package/dist/core/class/observable-base-class.mjs.map +1 -1
- package/dist/core/class/root-observable-class.d.mts +1 -1
- package/dist/core/class/root-observable-class.d.mts.map +1 -1
- package/dist/core/class/root-observable-class.mjs +9 -9
- package/dist/core/class/root-observable-class.mjs.map +1 -1
- package/dist/core/combine/combine.d.mts +6 -6
- package/dist/core/combine/combine.mjs +11 -12
- package/dist/core/combine/combine.mjs.map +1 -1
- package/dist/core/combine/merge.d.mts +6 -6
- package/dist/core/combine/merge.mjs +9 -9
- package/dist/core/combine/merge.mjs.map +1 -1
- package/dist/core/combine/zip.d.mts +20 -19
- package/dist/core/combine/zip.d.mts.map +1 -1
- package/dist/core/combine/zip.mjs +22 -21
- package/dist/core/combine/zip.mjs.map +1 -1
- package/dist/core/create/{interval.d.mts → counter.d.mts} +14 -12
- package/dist/core/create/counter.d.mts.map +1 -0
- package/dist/core/create/{interval.mjs → counter.mjs} +21 -23
- package/dist/core/create/counter.mjs.map +1 -0
- package/dist/core/create/from-abortable-promise.d.mts +29 -0
- package/dist/core/create/from-abortable-promise.d.mts.map +1 -0
- package/dist/core/create/from-abortable-promise.mjs +70 -0
- package/dist/core/create/from-abortable-promise.mjs.map +1 -0
- package/dist/core/create/from-promise.d.mts +9 -6
- package/dist/core/create/from-promise.d.mts.map +1 -1
- package/dist/core/create/from-promise.mjs +8 -5
- package/dist/core/create/from-promise.mjs.map +1 -1
- package/dist/core/create/from-subscribable.d.mts +4 -4
- package/dist/core/create/from-subscribable.mjs +4 -4
- package/dist/core/create/index.d.mts +3 -3
- package/dist/core/create/index.d.mts.map +1 -1
- package/dist/core/create/index.mjs +4 -4
- package/dist/core/create/just.d.mts +32 -0
- package/dist/core/create/just.d.mts.map +1 -0
- package/dist/core/create/just.mjs +44 -0
- package/dist/core/create/just.mjs.map +1 -0
- package/dist/core/create/source.d.mts +7 -12
- package/dist/core/create/source.d.mts.map +1 -1
- package/dist/core/create/source.mjs +1 -6
- package/dist/core/create/source.mjs.map +1 -1
- package/dist/core/create/timer.d.mts +6 -4
- package/dist/core/create/timer.d.mts.map +1 -1
- package/dist/core/create/timer.mjs +6 -7
- package/dist/core/create/timer.mjs.map +1 -1
- package/dist/core/index.d.mts +0 -1
- package/dist/core/index.d.mts.map +1 -1
- package/dist/core/index.mjs +8 -13
- package/dist/core/index.mjs.map +1 -1
- package/dist/core/operators/audit.d.mts +97 -0
- package/dist/core/operators/audit.d.mts.map +1 -0
- package/dist/core/operators/audit.mjs +144 -0
- package/dist/core/operators/audit.mjs.map +1 -0
- package/dist/core/operators/debounce.d.mts +88 -0
- package/dist/core/operators/debounce.d.mts.map +1 -0
- package/dist/core/operators/debounce.mjs +130 -0
- package/dist/core/operators/debounce.mjs.map +1 -0
- package/dist/core/operators/filter.d.mts +5 -5
- package/dist/core/operators/filter.mjs +3 -3
- package/dist/core/operators/filter.mjs.map +1 -1
- package/dist/core/operators/index.d.mts +4 -4
- package/dist/core/operators/index.d.mts.map +1 -1
- package/dist/core/operators/index.mjs +4 -4
- package/dist/core/operators/{map-with-index.d.mts → map.d.mts} +11 -11
- package/dist/core/operators/map.d.mts.map +1 -0
- package/dist/core/operators/{map-with-index.mjs → map.mjs} +17 -17
- package/dist/core/operators/map.mjs.map +1 -0
- package/dist/core/operators/merge-map.d.mts +56 -29
- package/dist/core/operators/merge-map.d.mts.map +1 -1
- package/dist/core/operators/merge-map.mjs +58 -31
- package/dist/core/operators/merge-map.mjs.map +1 -1
- package/dist/core/operators/pairwise.d.mts +6 -6
- package/dist/core/operators/pairwise.mjs +9 -9
- package/dist/core/operators/pairwise.mjs.map +1 -1
- package/dist/core/operators/scan.d.mts +6 -6
- package/dist/core/operators/scan.mjs +9 -9
- package/dist/core/operators/scan.mjs.map +1 -1
- package/dist/core/operators/skip-if-no-change.d.mts +20 -8
- package/dist/core/operators/skip-if-no-change.d.mts.map +1 -1
- package/dist/core/operators/skip-if-no-change.mjs +23 -11
- package/dist/core/operators/skip-if-no-change.mjs.map +1 -1
- package/dist/core/operators/skip-until.d.mts +5 -5
- package/dist/core/operators/skip-until.mjs +8 -8
- package/dist/core/operators/skip-until.mjs.map +1 -1
- package/dist/core/operators/skip-while.d.mts +18 -8
- package/dist/core/operators/skip-while.d.mts.map +1 -1
- package/dist/core/operators/skip-while.mjs +26 -11
- package/dist/core/operators/skip-while.mjs.map +1 -1
- package/dist/core/operators/switch-map.d.mts +57 -26
- package/dist/core/operators/switch-map.d.mts.map +1 -1
- package/dist/core/operators/switch-map.mjs +59 -28
- package/dist/core/operators/switch-map.mjs.map +1 -1
- package/dist/core/operators/take-until.d.mts +5 -5
- package/dist/core/operators/take-until.mjs +8 -8
- package/dist/core/operators/take-until.mjs.map +1 -1
- package/dist/core/operators/take-while.d.mts +15 -7
- package/dist/core/operators/take-while.d.mts.map +1 -1
- package/dist/core/operators/take-while.mjs +18 -10
- package/dist/core/operators/take-while.mjs.map +1 -1
- package/dist/core/operators/throttle.d.mts +81 -0
- package/dist/core/operators/throttle.d.mts.map +1 -0
- package/dist/core/operators/throttle.mjs +126 -0
- package/dist/core/operators/throttle.mjs.map +1 -0
- package/dist/core/operators/with-buffered-from.d.mts +9 -9
- package/dist/core/operators/with-buffered-from.mjs +12 -12
- package/dist/core/operators/with-buffered-from.mjs.map +1 -1
- package/dist/core/operators/with-current-value-from.d.mts +10 -9
- package/dist/core/operators/with-current-value-from.d.mts.map +1 -1
- package/dist/core/operators/with-current-value-from.mjs +13 -12
- package/dist/core/operators/with-current-value-from.mjs.map +1 -1
- package/dist/core/operators/with-initial-value.d.mts +5 -5
- package/dist/core/operators/with-initial-value.mjs +8 -8
- package/dist/core/operators/with-initial-value.mjs.map +1 -1
- package/dist/core/predefined/index.mjs +0 -1
- package/dist/core/predefined/index.mjs.map +1 -1
- package/dist/core/predefined/operators/attach-index.d.mts +49 -0
- package/dist/core/predefined/operators/attach-index.d.mts.map +1 -1
- package/dist/core/predefined/operators/attach-index.mjs +51 -2
- package/dist/core/predefined/operators/attach-index.mjs.map +1 -1
- package/dist/core/predefined/operators/index.d.mts +0 -1
- package/dist/core/predefined/operators/index.d.mts.map +1 -1
- package/dist/core/predefined/operators/index.mjs +0 -1
- package/dist/core/predefined/operators/index.mjs.map +1 -1
- package/dist/core/predefined/operators/map-optional.d.mts +47 -0
- package/dist/core/predefined/operators/map-optional.d.mts.map +1 -1
- package/dist/core/predefined/operators/map-optional.mjs +49 -1
- package/dist/core/predefined/operators/map-optional.mjs.map +1 -1
- package/dist/core/predefined/operators/map-result-err.d.mts +47 -0
- package/dist/core/predefined/operators/map-result-err.d.mts.map +1 -1
- package/dist/core/predefined/operators/map-result-err.mjs +49 -1
- package/dist/core/predefined/operators/map-result-err.mjs.map +1 -1
- package/dist/core/predefined/operators/map-result-ok.d.mts +47 -0
- package/dist/core/predefined/operators/map-result-ok.d.mts.map +1 -1
- package/dist/core/predefined/operators/map-result-ok.mjs +49 -1
- package/dist/core/predefined/operators/map-result-ok.mjs.map +1 -1
- package/dist/core/predefined/operators/map-to.d.mts +40 -0
- package/dist/core/predefined/operators/map-to.d.mts.map +1 -1
- package/dist/core/predefined/operators/map-to.mjs +43 -1
- package/dist/core/predefined/operators/map-to.mjs.map +1 -1
- package/dist/core/predefined/operators/pluck.d.mts +39 -0
- package/dist/core/predefined/operators/pluck.d.mts.map +1 -1
- package/dist/core/predefined/operators/pluck.mjs +42 -1
- package/dist/core/predefined/operators/pluck.mjs.map +1 -1
- package/dist/core/predefined/operators/skip.d.mts +47 -0
- package/dist/core/predefined/operators/skip.d.mts.map +1 -1
- package/dist/core/predefined/operators/skip.mjs +47 -0
- package/dist/core/predefined/operators/skip.mjs.map +1 -1
- package/dist/core/predefined/operators/take.d.mts +41 -0
- package/dist/core/predefined/operators/take.d.mts.map +1 -1
- package/dist/core/predefined/operators/take.mjs +41 -0
- package/dist/core/predefined/operators/take.mjs.map +1 -1
- package/dist/core/predefined/operators/unwrap-optional.d.mts +40 -0
- package/dist/core/predefined/operators/unwrap-optional.d.mts.map +1 -1
- package/dist/core/predefined/operators/unwrap-optional.mjs +42 -1
- package/dist/core/predefined/operators/unwrap-optional.mjs.map +1 -1
- package/dist/core/predefined/operators/unwrap-result-err.d.mts +40 -0
- package/dist/core/predefined/operators/unwrap-result-err.d.mts.map +1 -1
- package/dist/core/predefined/operators/unwrap-result-err.mjs +42 -1
- package/dist/core/predefined/operators/unwrap-result-err.mjs.map +1 -1
- package/dist/core/predefined/operators/unwrap-result-ok.d.mts +40 -0
- package/dist/core/predefined/operators/unwrap-result-ok.d.mts.map +1 -1
- package/dist/core/predefined/operators/unwrap-result-ok.mjs +42 -1
- package/dist/core/predefined/operators/unwrap-result-ok.mjs.map +1 -1
- package/dist/core/types/id.d.mts +1 -1
- package/dist/core/types/id.d.mts.map +1 -1
- package/dist/core/types/index.d.mts +1 -0
- package/dist/core/types/index.d.mts.map +1 -1
- package/dist/core/types/observable-family.d.mts +8 -14
- package/dist/core/types/observable-family.d.mts.map +1 -1
- package/dist/core/types/observable.d.mts +3 -3
- package/dist/core/types/observable.d.mts.map +1 -1
- package/dist/core/types/timer.d.mts +2 -0
- package/dist/core/types/timer.d.mts.map +1 -0
- package/dist/core/types/timer.mjs +2 -0
- package/dist/core/types/timer.mjs.map +1 -0
- package/dist/core/utils/id-maker.d.mts +2 -2
- package/dist/core/utils/id-maker.d.mts.map +1 -1
- package/dist/core/utils/id-maker.mjs +3 -3
- package/dist/core/utils/id-maker.mjs.map +1 -1
- package/dist/core/utils/index.mjs +1 -1
- package/dist/entry-point.mjs +11 -14
- package/dist/entry-point.mjs.map +1 -1
- package/dist/globals.d.mts +0 -3
- package/dist/index.mjs +11 -14
- package/dist/index.mjs.map +1 -1
- package/dist/utils/collect-to-array.d.mts +3 -0
- package/dist/utils/collect-to-array.d.mts.map +1 -0
- package/dist/utils/collect-to-array.mjs +11 -0
- package/dist/utils/collect-to-array.mjs.map +1 -0
- package/dist/utils/create-boolean-state.d.mts +40 -0
- package/dist/utils/create-boolean-state.d.mts.map +1 -0
- package/dist/utils/create-boolean-state.mjs +53 -0
- package/dist/utils/create-boolean-state.mjs.map +1 -0
- package/dist/utils/create-event-emitter.d.mts +4 -4
- package/dist/utils/create-event-emitter.mjs +4 -4
- package/dist/utils/create-reducer.d.mts +10 -7
- package/dist/utils/create-reducer.d.mts.map +1 -1
- package/dist/utils/create-reducer.mjs +7 -7
- package/dist/utils/create-reducer.mjs.map +1 -1
- package/dist/utils/create-state.d.mts +8 -48
- package/dist/utils/create-state.d.mts.map +1 -1
- package/dist/utils/create-state.mjs +10 -60
- package/dist/utils/create-state.mjs.map +1 -1
- package/dist/utils/index.d.mts +2 -0
- package/dist/utils/index.d.mts.map +1 -1
- package/dist/utils/index.mjs +3 -1
- package/dist/utils/index.mjs.map +1 -1
- package/package.json +17 -11
- package/src/core/class/child-observable-class.mts +65 -9
- package/src/core/class/circular-dependency-comparison.test.mts +142 -0
- package/src/core/class/circular-dependency.test.mts +251 -0
- package/src/core/class/observable-base-class.mts +9 -9
- package/src/core/class/root-observable-class.mts +14 -10
- package/src/core/combine/combine.mts +13 -13
- package/src/core/combine/merge.mts +13 -14
- package/src/core/combine/zip.mts +26 -25
- package/src/core/create/{interval.mts → counter.mts} +32 -30
- package/src/core/create/from-abortable-promise.mts +83 -0
- package/src/core/create/from-promise.mts +10 -7
- package/src/core/create/from-subscribable.mts +4 -4
- package/src/core/create/index.mts +3 -3
- package/src/core/create/just.mts +43 -0
- package/src/core/create/source.mts +10 -14
- package/src/core/create/timer.mts +12 -11
- package/src/core/index.mts +0 -1
- package/src/core/operators/audit.mts +172 -0
- package/src/core/operators/debounce.mts +154 -0
- package/src/core/operators/filter.mts +9 -9
- package/src/core/operators/index.mts +4 -4
- package/src/core/operators/{map-with-index.mts → map.mts} +20 -20
- package/src/core/operators/merge-map.mts +59 -32
- package/src/core/operators/pairwise.mts +10 -10
- package/src/core/operators/scan.mts +10 -10
- package/src/core/operators/skip-if-no-change.mts +24 -12
- package/src/core/operators/skip-until.mts +9 -9
- package/src/core/operators/skip-while.mts +29 -12
- package/src/core/operators/switch-map.mts +60 -29
- package/src/core/operators/take-until.mts +9 -9
- package/src/core/operators/take-while.mts +19 -11
- package/src/core/operators/{throttle-time.mts → throttle.mts} +58 -38
- package/src/core/operators/with-buffered-from.mts +13 -13
- package/src/core/operators/with-current-value-from.mts +14 -13
- package/src/core/operators/with-initial-value.mts +9 -9
- package/src/core/predefined/operators/attach-index.mts +51 -2
- package/src/core/predefined/operators/index.mts +0 -1
- package/src/core/predefined/operators/map-optional.mts +48 -1
- package/src/core/predefined/operators/map-result-err.mts +48 -1
- package/src/core/predefined/operators/map-result-ok.mts +48 -1
- package/src/core/predefined/operators/map-to.mts +41 -1
- package/src/core/predefined/operators/pluck.mts +40 -1
- package/src/core/predefined/operators/skip.mts +47 -0
- package/src/core/predefined/operators/take.mts +41 -0
- package/src/core/predefined/operators/unwrap-optional.mts +41 -1
- package/src/core/predefined/operators/unwrap-result-err.mts +41 -1
- package/src/core/predefined/operators/unwrap-result-ok.mts +41 -1
- package/src/core/types/id.mts +1 -1
- package/src/core/types/index.mts +1 -0
- package/src/core/types/observable-family.mts +8 -24
- package/src/core/types/observable.mts +3 -3
- package/src/core/types/timer.mts +2 -0
- package/src/core/utils/id-maker.mts +4 -4
- package/src/globals.d.mts +0 -3
- package/src/utils/collect-to-array.mts +17 -0
- package/src/utils/create-boolean-state.mts +68 -0
- package/src/utils/create-event-emitter.mts +4 -4
- package/src/utils/create-reducer.mts +11 -8
- package/src/utils/create-state.mts +10 -75
- package/src/utils/index.mts +2 -0
- package/dist/core/create/from-array.d.mts +0 -39
- package/dist/core/create/from-array.d.mts.map +0 -1
- package/dist/core/create/from-array.mjs +0 -65
- package/dist/core/create/from-array.mjs.map +0 -1
- package/dist/core/create/interval.d.mts.map +0 -1
- package/dist/core/create/interval.mjs.map +0 -1
- package/dist/core/create/of.d.mts +0 -39
- package/dist/core/create/of.d.mts.map +0 -1
- package/dist/core/create/of.mjs +0 -63
- package/dist/core/create/of.mjs.map +0 -1
- package/dist/core/operators/audit-time.d.mts +0 -62
- package/dist/core/operators/audit-time.d.mts.map +0 -1
- package/dist/core/operators/audit-time.mjs +0 -109
- package/dist/core/operators/audit-time.mjs.map +0 -1
- package/dist/core/operators/debounce-time.d.mts +0 -51
- package/dist/core/operators/debounce-time.d.mts.map +0 -1
- package/dist/core/operators/debounce-time.mjs +0 -93
- package/dist/core/operators/debounce-time.mjs.map +0 -1
- package/dist/core/operators/map-with-index.d.mts.map +0 -1
- package/dist/core/operators/map-with-index.mjs.map +0 -1
- package/dist/core/operators/throttle-time.d.mts +0 -62
- package/dist/core/operators/throttle-time.d.mts.map +0 -1
- package/dist/core/operators/throttle-time.mjs +0 -107
- package/dist/core/operators/throttle-time.mjs.map +0 -1
- package/dist/core/predefined/operators/map.d.mts +0 -3
- package/dist/core/predefined/operators/map.d.mts.map +0 -1
- package/dist/core/predefined/operators/map.mjs +0 -8
- package/dist/core/predefined/operators/map.mjs.map +0 -1
- package/src/core/create/from-array.mts +0 -76
- package/src/core/create/of.mts +0 -73
- package/src/core/operators/audit-time.mts +0 -136
- package/src/core/operators/debounce-time.mts +0 -116
- package/src/core/predefined/operators/map.mts +0 -5
|
@@ -1,5 +1,47 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'ts-data-forge';
|
|
2
|
+
import '../../utils/id-maker.mjs';
|
|
3
|
+
import { map } from '../../operators/map.mjs';
|
|
2
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Maps all emitted values to a constant value, ignoring the source values.
|
|
7
|
+
* Equivalent to `map(() => value)`.
|
|
8
|
+
*
|
|
9
|
+
* @template A - The type of values from the source
|
|
10
|
+
* @template B - The type of the constant value
|
|
11
|
+
* @param value - The constant value to emit
|
|
12
|
+
* @returns An operator that always emits the given constant
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* // Timeline:
|
|
17
|
+
* //
|
|
18
|
+
* // click$ MouseEvent MouseEvent MouseEvent
|
|
19
|
+
* // count$ 1 1 1
|
|
20
|
+
* //
|
|
21
|
+
* // Explanation:
|
|
22
|
+
* // - mapTo maps all emitted values to a constant value
|
|
23
|
+
* // - Ignores the source values entirely
|
|
24
|
+
* // - Useful for converting events to signals
|
|
25
|
+
*
|
|
26
|
+
* const click$ = source<string>();
|
|
27
|
+
*
|
|
28
|
+
* const one$ = click$.pipe(mapTo(1));
|
|
29
|
+
*
|
|
30
|
+
* const valueHistory: number[] = [];
|
|
31
|
+
*
|
|
32
|
+
* one$.subscribe((value) => {
|
|
33
|
+
* valueHistory.push(value);
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* click$.next('click1');
|
|
37
|
+
*
|
|
38
|
+
* click$.next('click2');
|
|
39
|
+
*
|
|
40
|
+
* click$.next('click3');
|
|
41
|
+
*
|
|
42
|
+
* assert.deepStrictEqual(valueHistory, [1, 1, 1]);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
3
45
|
const mapTo = (value) => map(() => value);
|
|
4
46
|
|
|
5
47
|
export { mapTo };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-to.mjs","sources":["../../../../src/core/predefined/operators/map-to.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map-to.mjs","sources":["../../../../src/core/predefined/operators/map-to.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACI,MAAM,KAAK,GAAG,CAAO,KAAQ,KAClC,GAAG,CAAC,MAAM,KAAK;;;;"}
|
|
@@ -1,4 +1,43 @@
|
|
|
1
1
|
import { type KeepInitialValueOperator } from '../../types/index.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts a property value from each emitted object by key.
|
|
4
|
+
* Equivalent to `map(value => value[key])`.
|
|
5
|
+
*
|
|
6
|
+
* @template A - The type of the emitted object
|
|
7
|
+
* @template K - The key to extract
|
|
8
|
+
* @param key - The property key to pluck
|
|
9
|
+
* @returns An operator that emits the property value
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Timeline:
|
|
14
|
+
* //
|
|
15
|
+
* // user$ { name: "Alice", age: 25 } { name: "Bob", age: 30 }
|
|
16
|
+
* // name$ "Alice" "Bob"
|
|
17
|
+
* //
|
|
18
|
+
* // Explanation:
|
|
19
|
+
* // - getKey extracts a property value from each emitted object
|
|
20
|
+
* // - Equivalent to map(value => value[key])
|
|
21
|
+
*
|
|
22
|
+
* const user$ = source<Readonly<{ name: string; age: number }>>();
|
|
23
|
+
*
|
|
24
|
+
* const name$ = user$.pipe(getKey('name'));
|
|
25
|
+
*
|
|
26
|
+
* const valueHistory: string[] = [];
|
|
27
|
+
*
|
|
28
|
+
* name$.subscribe((n) => {
|
|
29
|
+
* valueHistory.push(n);
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* user$.next({ name: 'Alice', age: 25 });
|
|
33
|
+
*
|
|
34
|
+
* assert.deepStrictEqual(valueHistory, ['Alice']);
|
|
35
|
+
*
|
|
36
|
+
* user$.next({ name: 'Bob', age: 30 });
|
|
37
|
+
*
|
|
38
|
+
* assert.deepStrictEqual(valueHistory, ['Alice', 'Bob']);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
2
41
|
export declare const pluck: <A, K extends keyof A>(key: K) => KeepInitialValueOperator<A, A[K]>;
|
|
3
42
|
/**
|
|
4
43
|
* Alias for `pluck`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluck.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/pluck.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pluck.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/pluck.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACxC,KAAK,CAAC,KACL,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAuB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,MAAM,GARG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,OACnC,CAAC,KACL,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAMR,CAAC"}
|
|
@@ -1,5 +1,46 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'ts-data-forge';
|
|
2
|
+
import '../../utils/id-maker.mjs';
|
|
3
|
+
import { map } from '../../operators/map.mjs';
|
|
2
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Extracts a property value from each emitted object by key.
|
|
7
|
+
* Equivalent to `map(value => value[key])`.
|
|
8
|
+
*
|
|
9
|
+
* @template A - The type of the emitted object
|
|
10
|
+
* @template K - The key to extract
|
|
11
|
+
* @param key - The property key to pluck
|
|
12
|
+
* @returns An operator that emits the property value
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* // Timeline:
|
|
17
|
+
* //
|
|
18
|
+
* // user$ { name: "Alice", age: 25 } { name: "Bob", age: 30 }
|
|
19
|
+
* // name$ "Alice" "Bob"
|
|
20
|
+
* //
|
|
21
|
+
* // Explanation:
|
|
22
|
+
* // - getKey extracts a property value from each emitted object
|
|
23
|
+
* // - Equivalent to map(value => value[key])
|
|
24
|
+
*
|
|
25
|
+
* const user$ = source<Readonly<{ name: string; age: number }>>();
|
|
26
|
+
*
|
|
27
|
+
* const name$ = user$.pipe(getKey('name'));
|
|
28
|
+
*
|
|
29
|
+
* const valueHistory: string[] = [];
|
|
30
|
+
*
|
|
31
|
+
* name$.subscribe((n) => {
|
|
32
|
+
* valueHistory.push(n);
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* user$.next({ name: 'Alice', age: 25 });
|
|
36
|
+
*
|
|
37
|
+
* assert.deepStrictEqual(valueHistory, ['Alice']);
|
|
38
|
+
*
|
|
39
|
+
* user$.next({ name: 'Bob', age: 30 });
|
|
40
|
+
*
|
|
41
|
+
* assert.deepStrictEqual(valueHistory, ['Alice', 'Bob']);
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
3
44
|
const pluck = (key) => map((a) => a[key]);
|
|
4
45
|
/**
|
|
5
46
|
* Alias for `pluck`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluck.mjs","sources":["../../../../src/core/predefined/operators/pluck.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pluck.mjs","sources":["../../../../src/core/predefined/operators/pluck.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;MACU,KAAK,GAAG,CACnB,GAAM,KACgC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AAEzD;;;AAGG;AACI,MAAM,MAAM,GAAG;;;;"}
|
|
@@ -1,3 +1,50 @@
|
|
|
1
1
|
import { type DropInitialValueOperator } from '../../types/index.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Skips the first `n` emissions from the source observable.
|
|
4
|
+
* After `n` values are skipped, all subsequent values pass through.
|
|
5
|
+
*
|
|
6
|
+
* @template A - The type of values from the source
|
|
7
|
+
* @param n - The number of values to skip
|
|
8
|
+
* @returns An operator that skips the first n emissions
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* // Timeline:
|
|
13
|
+
* //
|
|
14
|
+
* // num$ 1 2 3 4 5
|
|
15
|
+
* // skipped$ 3 4 5
|
|
16
|
+
* // |skip 2|
|
|
17
|
+
* //
|
|
18
|
+
* // Explanation:
|
|
19
|
+
* // - skip ignores the first n emissions from the source
|
|
20
|
+
* // - After n values are skipped, all subsequent values pass through
|
|
21
|
+
*
|
|
22
|
+
* const num$ = source<number>();
|
|
23
|
+
*
|
|
24
|
+
* const skipped$ = num$.pipe(skip(2));
|
|
25
|
+
*
|
|
26
|
+
* const valueHistory: number[] = [];
|
|
27
|
+
*
|
|
28
|
+
* skipped$.subscribe((x) => {
|
|
29
|
+
* valueHistory.push(x);
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* num$.next(1); // skipped
|
|
33
|
+
*
|
|
34
|
+
* num$.next(2); // skipped
|
|
35
|
+
*
|
|
36
|
+
* assert.deepStrictEqual(valueHistory, []);
|
|
37
|
+
*
|
|
38
|
+
* num$.next(3); // logs: 3
|
|
39
|
+
*
|
|
40
|
+
* assert.deepStrictEqual(valueHistory, [3]);
|
|
41
|
+
*
|
|
42
|
+
* num$.next(4); // logs: 4
|
|
43
|
+
*
|
|
44
|
+
* num$.next(5); // logs: 5
|
|
45
|
+
*
|
|
46
|
+
* assert.deepStrictEqual(valueHistory, [3, 4, 5]);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
2
49
|
export declare const skip: <A>(n: PositiveSafeIntWithSmallInt) => DropInitialValueOperator<A, A>;
|
|
3
50
|
//# sourceMappingURL=skip.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CACyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"skip.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CACyC,CAAC"}
|
|
@@ -2,6 +2,53 @@ import { PositiveSafeInt } from 'ts-data-forge';
|
|
|
2
2
|
import '../../utils/id-maker.mjs';
|
|
3
3
|
import { skipWhile } from '../../operators/skip-while.mjs';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Skips the first `n` emissions from the source observable.
|
|
7
|
+
* After `n` values are skipped, all subsequent values pass through.
|
|
8
|
+
*
|
|
9
|
+
* @template A - The type of values from the source
|
|
10
|
+
* @param n - The number of values to skip
|
|
11
|
+
* @returns An operator that skips the first n emissions
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* // Timeline:
|
|
16
|
+
* //
|
|
17
|
+
* // num$ 1 2 3 4 5
|
|
18
|
+
* // skipped$ 3 4 5
|
|
19
|
+
* // |skip 2|
|
|
20
|
+
* //
|
|
21
|
+
* // Explanation:
|
|
22
|
+
* // - skip ignores the first n emissions from the source
|
|
23
|
+
* // - After n values are skipped, all subsequent values pass through
|
|
24
|
+
*
|
|
25
|
+
* const num$ = source<number>();
|
|
26
|
+
*
|
|
27
|
+
* const skipped$ = num$.pipe(skip(2));
|
|
28
|
+
*
|
|
29
|
+
* const valueHistory: number[] = [];
|
|
30
|
+
*
|
|
31
|
+
* skipped$.subscribe((x) => {
|
|
32
|
+
* valueHistory.push(x);
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* num$.next(1); // skipped
|
|
36
|
+
*
|
|
37
|
+
* num$.next(2); // skipped
|
|
38
|
+
*
|
|
39
|
+
* assert.deepStrictEqual(valueHistory, []);
|
|
40
|
+
*
|
|
41
|
+
* num$.next(3); // logs: 3
|
|
42
|
+
*
|
|
43
|
+
* assert.deepStrictEqual(valueHistory, [3]);
|
|
44
|
+
*
|
|
45
|
+
* num$.next(4); // logs: 4
|
|
46
|
+
*
|
|
47
|
+
* num$.next(5); // logs: 5
|
|
48
|
+
*
|
|
49
|
+
* assert.deepStrictEqual(valueHistory, [3, 4, 5]);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
5
52
|
const skip = (n) => !PositiveSafeInt.is(n) ? idFn : skipWhile((_, index) => index + 1 <= n);
|
|
6
53
|
const idFn = (value) => value;
|
|
7
54
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip.mjs","sources":["../../../../src/core/predefined/operators/skip.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"skip.mjs","sources":["../../../../src/core/predefined/operators/skip.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;AACI,MAAM,IAAI,GAAG,CAClB,CAA8B,KAE9B,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC;AAExE,MAAM,IAAI,GAAG,CAAK,KAAQ,KAAQ,KAAK;;;;"}
|
|
@@ -1,3 +1,44 @@
|
|
|
1
1
|
import { type DropInitialValueOperator } from '../../types/index.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Takes only the first `n` emissions from the source observable, then completes.
|
|
4
|
+
*
|
|
5
|
+
* @template A - The type of values from the source
|
|
6
|
+
* @param n - The number of values to take
|
|
7
|
+
* @returns An operator that takes the first n emissions
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // Timeline:
|
|
12
|
+
* //
|
|
13
|
+
* // num$ 1 2 3 4 (ignored)
|
|
14
|
+
* // taken$ 1 2 3 | (completes)
|
|
15
|
+
* //
|
|
16
|
+
* // Explanation:
|
|
17
|
+
* // - take emits only the first n values, then completes
|
|
18
|
+
* // - Subsequent emissions from the source are ignored
|
|
19
|
+
*
|
|
20
|
+
* const num$ = source<number>();
|
|
21
|
+
*
|
|
22
|
+
* const taken$ = num$.pipe(take(3));
|
|
23
|
+
*
|
|
24
|
+
* const valueHistory: number[] = [];
|
|
25
|
+
*
|
|
26
|
+
* taken$.subscribe((x) => {
|
|
27
|
+
* valueHistory.push(x);
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* num$.next(1);
|
|
31
|
+
*
|
|
32
|
+
* num$.next(2);
|
|
33
|
+
*
|
|
34
|
+
* num$.next(3);
|
|
35
|
+
*
|
|
36
|
+
* assert.deepStrictEqual(valueHistory, [1, 2, 3]);
|
|
37
|
+
*
|
|
38
|
+
* num$.next(4); // ignored (already completed)
|
|
39
|
+
*
|
|
40
|
+
* assert.deepStrictEqual(valueHistory, [1, 2, 3]);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
2
43
|
export declare const take: <A>(n: PositiveSafeIntWithSmallInt) => DropInitialValueOperator<A, A>;
|
|
3
44
|
//# sourceMappingURL=take.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"take.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/take.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAA4C,CAAC"}
|
|
1
|
+
{"version":3,"file":"take.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/take.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EACpB,GAAG,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAA4C,CAAC"}
|
|
@@ -2,6 +2,47 @@ import 'ts-data-forge';
|
|
|
2
2
|
import '../../utils/id-maker.mjs';
|
|
3
3
|
import { takeWhile } from '../../operators/take-while.mjs';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Takes only the first `n` emissions from the source observable, then completes.
|
|
7
|
+
*
|
|
8
|
+
* @template A - The type of values from the source
|
|
9
|
+
* @param n - The number of values to take
|
|
10
|
+
* @returns An operator that takes the first n emissions
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // Timeline:
|
|
15
|
+
* //
|
|
16
|
+
* // num$ 1 2 3 4 (ignored)
|
|
17
|
+
* // taken$ 1 2 3 | (completes)
|
|
18
|
+
* //
|
|
19
|
+
* // Explanation:
|
|
20
|
+
* // - take emits only the first n values, then completes
|
|
21
|
+
* // - Subsequent emissions from the source are ignored
|
|
22
|
+
*
|
|
23
|
+
* const num$ = source<number>();
|
|
24
|
+
*
|
|
25
|
+
* const taken$ = num$.pipe(take(3));
|
|
26
|
+
*
|
|
27
|
+
* const valueHistory: number[] = [];
|
|
28
|
+
*
|
|
29
|
+
* taken$.subscribe((x) => {
|
|
30
|
+
* valueHistory.push(x);
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* num$.next(1);
|
|
34
|
+
*
|
|
35
|
+
* num$.next(2);
|
|
36
|
+
*
|
|
37
|
+
* num$.next(3);
|
|
38
|
+
*
|
|
39
|
+
* assert.deepStrictEqual(valueHistory, [1, 2, 3]);
|
|
40
|
+
*
|
|
41
|
+
* num$.next(4); // ignored (already completed)
|
|
42
|
+
*
|
|
43
|
+
* assert.deepStrictEqual(valueHistory, [1, 2, 3]);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
5
46
|
const take = (n) => takeWhile((_, index) => index + 1 <= n);
|
|
6
47
|
|
|
7
48
|
export { take };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"take.mjs","sources":["../../../../src/core/predefined/operators/take.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"take.mjs","sources":["../../../../src/core/predefined/operators/take.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACI,MAAM,IAAI,GAAG,CAClB,CAA8B,KACK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC;;;;"}
|
|
@@ -1,4 +1,44 @@
|
|
|
1
1
|
import { Optional } from 'ts-data-forge';
|
|
2
2
|
import { type KeepInitialValueOperator } from '../../types/index.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Unwraps `Optional` values, converting `Some(value)` to `value` and `None` to `undefined`.
|
|
5
|
+
*
|
|
6
|
+
* @template O - The Optional type from the source
|
|
7
|
+
* @returns An operator that unwraps Optional emissions
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // Timeline:
|
|
12
|
+
* //
|
|
13
|
+
* // opt$ Some(42) None Some(7)
|
|
14
|
+
* // unwrapped$ 42 undefined 7
|
|
15
|
+
* //
|
|
16
|
+
* // Explanation:
|
|
17
|
+
* // - unwrapOptional converts Some(value) to value, and None to undefined
|
|
18
|
+
* // - Useful for extracting raw values from Optional streams
|
|
19
|
+
*
|
|
20
|
+
* const opt$ = source<Optional<number>>();
|
|
21
|
+
*
|
|
22
|
+
* const unwrapped$ = opt$.pipe(unwrapOptional());
|
|
23
|
+
*
|
|
24
|
+
* const valueHistory: (number | undefined)[] = [];
|
|
25
|
+
*
|
|
26
|
+
* unwrapped$.subscribe((v) => {
|
|
27
|
+
* valueHistory.push(v);
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* opt$.next(Optional.some(42));
|
|
31
|
+
*
|
|
32
|
+
* assert.deepStrictEqual(valueHistory, [42]);
|
|
33
|
+
*
|
|
34
|
+
* opt$.next(Optional.none);
|
|
35
|
+
*
|
|
36
|
+
* assert.deepStrictEqual(valueHistory, [42, undefined]);
|
|
37
|
+
*
|
|
38
|
+
* opt$.next(Optional.some(7));
|
|
39
|
+
*
|
|
40
|
+
* assert.deepStrictEqual(valueHistory, [42, undefined, 7]);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
3
43
|
export declare const unwrapOptional: <O extends UnknownOptional>() => KeepInitialValueOperator<O, Optional.Unwrap<O> | undefined>;
|
|
4
44
|
//# sourceMappingURL=unwrap-optional.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap-optional.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"unwrap-optional.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,eAAe,OACtB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAEA,CAAC"}
|
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
import { Optional } from 'ts-data-forge';
|
|
2
|
-
import
|
|
2
|
+
import '../../utils/id-maker.mjs';
|
|
3
|
+
import { map } from '../../operators/map.mjs';
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Unwraps `Optional` values, converting `Some(value)` to `value` and `None` to `undefined`.
|
|
7
|
+
*
|
|
8
|
+
* @template O - The Optional type from the source
|
|
9
|
+
* @returns An operator that unwraps Optional emissions
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Timeline:
|
|
14
|
+
* //
|
|
15
|
+
* // opt$ Some(42) None Some(7)
|
|
16
|
+
* // unwrapped$ 42 undefined 7
|
|
17
|
+
* //
|
|
18
|
+
* // Explanation:
|
|
19
|
+
* // - unwrapOptional converts Some(value) to value, and None to undefined
|
|
20
|
+
* // - Useful for extracting raw values from Optional streams
|
|
21
|
+
*
|
|
22
|
+
* const opt$ = source<Optional<number>>();
|
|
23
|
+
*
|
|
24
|
+
* const unwrapped$ = opt$.pipe(unwrapOptional());
|
|
25
|
+
*
|
|
26
|
+
* const valueHistory: (number | undefined)[] = [];
|
|
27
|
+
*
|
|
28
|
+
* unwrapped$.subscribe((v) => {
|
|
29
|
+
* valueHistory.push(v);
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* opt$.next(Optional.some(42));
|
|
33
|
+
*
|
|
34
|
+
* assert.deepStrictEqual(valueHistory, [42]);
|
|
35
|
+
*
|
|
36
|
+
* opt$.next(Optional.none);
|
|
37
|
+
*
|
|
38
|
+
* assert.deepStrictEqual(valueHistory, [42, undefined]);
|
|
39
|
+
*
|
|
40
|
+
* opt$.next(Optional.some(7));
|
|
41
|
+
*
|
|
42
|
+
* assert.deepStrictEqual(valueHistory, [42, undefined, 7]);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
4
45
|
const unwrapOptional = () =>
|
|
5
46
|
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
6
47
|
map(Optional.unwrap);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap-optional.mjs","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unwrap-optional.mjs","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACI,MAAM,cAAc,GAAG;AAG5B;AACA,GAAG,CAAC,QAAQ,CAAC,MAA+C;;;;"}
|
|
@@ -1,4 +1,44 @@
|
|
|
1
1
|
import { Result } from 'ts-data-forge';
|
|
2
2
|
import { type KeepInitialValueOperator } from '../../types/index.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Unwraps the error value from a `Result`, converting `Err(error)` to `error` and `Ok` to `undefined`.
|
|
5
|
+
*
|
|
6
|
+
* @template R - The Result type from the source
|
|
7
|
+
* @returns An operator that unwraps the Err side of Result emissions
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // Timeline:
|
|
12
|
+
* //
|
|
13
|
+
* // result$ Ok(1) Err("fail") Ok(2)
|
|
14
|
+
* // unwrapped$ undefined "fail" undefined
|
|
15
|
+
* //
|
|
16
|
+
* // Explanation:
|
|
17
|
+
* // - unwrapResultErr converts Err(error) to error, and Ok to undefined
|
|
18
|
+
* // - Useful for extracting error values from Result streams
|
|
19
|
+
*
|
|
20
|
+
* const result$ = source<Result<number, string>>();
|
|
21
|
+
*
|
|
22
|
+
* const unwrapped$ = result$.pipe(unwrapResultErr());
|
|
23
|
+
*
|
|
24
|
+
* const valueHistory: (string | undefined)[] = [];
|
|
25
|
+
*
|
|
26
|
+
* unwrapped$.subscribe((v) => {
|
|
27
|
+
* valueHistory.push(v);
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* result$.next(Result.ok(1));
|
|
31
|
+
*
|
|
32
|
+
* assert.deepStrictEqual(valueHistory, [undefined]);
|
|
33
|
+
*
|
|
34
|
+
* result$.next(Result.err('fail'));
|
|
35
|
+
*
|
|
36
|
+
* assert.deepStrictEqual(valueHistory, [undefined, 'fail']);
|
|
37
|
+
*
|
|
38
|
+
* result$.next(Result.ok(2));
|
|
39
|
+
*
|
|
40
|
+
* assert.deepStrictEqual(valueHistory, [undefined, 'fail', undefined]);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
3
43
|
export declare const unwrapResultErr: <R extends UnknownResult>() => KeepInitialValueOperator<R, Result.UnwrapErr<R> | undefined>;
|
|
4
44
|
//# sourceMappingURL=unwrap-result-err.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap-result-err.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-result-err.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"unwrap-result-err.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-result-err.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,eAAe,GAC1B,CAAC,SAAS,aAAa,OACpB,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CACC,CAAC"}
|
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
import { Result } from 'ts-data-forge';
|
|
2
|
-
import
|
|
2
|
+
import '../../utils/id-maker.mjs';
|
|
3
|
+
import { map } from '../../operators/map.mjs';
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Unwraps the error value from a `Result`, converting `Err(error)` to `error` and `Ok` to `undefined`.
|
|
7
|
+
*
|
|
8
|
+
* @template R - The Result type from the source
|
|
9
|
+
* @returns An operator that unwraps the Err side of Result emissions
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Timeline:
|
|
14
|
+
* //
|
|
15
|
+
* // result$ Ok(1) Err("fail") Ok(2)
|
|
16
|
+
* // unwrapped$ undefined "fail" undefined
|
|
17
|
+
* //
|
|
18
|
+
* // Explanation:
|
|
19
|
+
* // - unwrapResultErr converts Err(error) to error, and Ok to undefined
|
|
20
|
+
* // - Useful for extracting error values from Result streams
|
|
21
|
+
*
|
|
22
|
+
* const result$ = source<Result<number, string>>();
|
|
23
|
+
*
|
|
24
|
+
* const unwrapped$ = result$.pipe(unwrapResultErr());
|
|
25
|
+
*
|
|
26
|
+
* const valueHistory: (string | undefined)[] = [];
|
|
27
|
+
*
|
|
28
|
+
* unwrapped$.subscribe((v) => {
|
|
29
|
+
* valueHistory.push(v);
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* result$.next(Result.ok(1));
|
|
33
|
+
*
|
|
34
|
+
* assert.deepStrictEqual(valueHistory, [undefined]);
|
|
35
|
+
*
|
|
36
|
+
* result$.next(Result.err('fail'));
|
|
37
|
+
*
|
|
38
|
+
* assert.deepStrictEqual(valueHistory, [undefined, 'fail']);
|
|
39
|
+
*
|
|
40
|
+
* result$.next(Result.ok(2));
|
|
41
|
+
*
|
|
42
|
+
* assert.deepStrictEqual(valueHistory, [undefined, 'fail', undefined]);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
4
45
|
const unwrapResultErr = () => map(Result.unwrapErr);
|
|
5
46
|
|
|
6
47
|
export { unwrapResultErr };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap-result-err.mjs","sources":["../../../../src/core/predefined/operators/unwrap-result-err.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unwrap-result-err.mjs","sources":["../../../../src/core/predefined/operators/unwrap-result-err.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACI,MAAM,eAAe,GAAG,MAG7B,GAAG,CAAC,MAAM,CAAC,SAAmD;;;;"}
|
|
@@ -1,4 +1,44 @@
|
|
|
1
1
|
import { Result } from 'ts-data-forge';
|
|
2
2
|
import { type KeepInitialValueOperator } from '../../types/index.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Unwraps the success value from a `Result`, converting `Ok(value)` to `value` and `Err` to `undefined`.
|
|
5
|
+
*
|
|
6
|
+
* @template R - The Result type from the source
|
|
7
|
+
* @returns An operator that unwraps the Ok side of Result emissions
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // Timeline:
|
|
12
|
+
* //
|
|
13
|
+
* // result$ Ok(42) Err("e") Ok(7)
|
|
14
|
+
* // unwrapped$ 42 undefined 7
|
|
15
|
+
* //
|
|
16
|
+
* // Explanation:
|
|
17
|
+
* // - unwrapResultOk converts Ok(value) to value, and Err to undefined
|
|
18
|
+
* // - Useful for extracting success values from Result streams
|
|
19
|
+
*
|
|
20
|
+
* const result$ = source<Result<number, string>>();
|
|
21
|
+
*
|
|
22
|
+
* const unwrapped$ = result$.pipe(unwrapResultOk());
|
|
23
|
+
*
|
|
24
|
+
* const valueHistory: (number | undefined)[] = [];
|
|
25
|
+
*
|
|
26
|
+
* unwrapped$.subscribe((v) => {
|
|
27
|
+
* valueHistory.push(v);
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* result$.next(Result.ok(42));
|
|
31
|
+
*
|
|
32
|
+
* assert.deepStrictEqual(valueHistory, [42]);
|
|
33
|
+
*
|
|
34
|
+
* result$.next(Result.err('e'));
|
|
35
|
+
*
|
|
36
|
+
* assert.deepStrictEqual(valueHistory, [42, undefined]);
|
|
37
|
+
*
|
|
38
|
+
* result$.next(Result.ok(7));
|
|
39
|
+
*
|
|
40
|
+
* assert.deepStrictEqual(valueHistory, [42, undefined, 7]);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
3
43
|
export declare const unwrapResultOk: <R extends UnknownResult>() => KeepInitialValueOperator<R, Result.UnwrapOk<R> | undefined>;
|
|
4
44
|
//# sourceMappingURL=unwrap-result-ok.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap-result-ok.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-result-ok.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"unwrap-result-ok.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-result-ok.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,aAAa,OACpB,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAEA,CAAC"}
|