synstate 3.0.0 → 3.0.2
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 +1 -1
- package/dist/core/base/create-child-observable.d.mts.map +1 -1
- package/dist/core/base/create-child-observable.mjs +169 -140
- package/dist/core/base/create-child-observable.mjs.map +1 -1
- package/dist/core/base/create-observable-base.d.mts.map +1 -1
- package/dist/core/base/create-observable-base.mjs +155 -152
- package/dist/core/base/create-observable-base.mjs.map +1 -1
- package/dist/core/base/create-root-observable.mjs +48 -34
- package/dist/core/base/create-root-observable.mjs.map +1 -1
- package/dist/core/base/index.mjs +3 -3
- package/dist/core/base/index.mjs.map +1 -1
- package/dist/core/combine/combine.mjs +129 -37
- package/dist/core/combine/combine.mjs.map +1 -1
- package/dist/core/combine/index.mjs +4 -4
- package/dist/core/combine/index.mjs.map +1 -1
- package/dist/core/combine/merge.mjs +75 -24
- package/dist/core/combine/merge.mjs.map +1 -1
- package/dist/core/combine/zip.mjs +120 -39
- package/dist/core/combine/zip.mjs.map +1 -1
- package/dist/core/create/counter.mjs +81 -45
- package/dist/core/create/counter.mjs.map +1 -1
- package/dist/core/create/from-abortable-promise.mjs +63 -38
- package/dist/core/create/from-abortable-promise.mjs.map +1 -1
- package/dist/core/create/from-promise.mjs +67 -25
- package/dist/core/create/from-promise.mjs.map +1 -1
- package/dist/core/create/from-subscribable.mjs +70 -26
- package/dist/core/create/from-subscribable.mjs.map +1 -1
- package/dist/core/create/index.mjs +8 -8
- package/dist/core/create/index.mjs.map +1 -1
- package/dist/core/create/just.mjs +36 -13
- package/dist/core/create/just.mjs.map +1 -1
- package/dist/core/create/source.mjs +15 -19
- package/dist/core/create/source.mjs.map +1 -1
- package/dist/core/create/timer.mjs +66 -37
- package/dist/core/create/timer.mjs.map +1 -1
- package/dist/core/index.mjs +6 -41
- package/dist/core/index.mjs.map +1 -1
- package/dist/core/operators/audit.mjs +126 -39
- package/dist/core/operators/audit.mjs.map +1 -1
- package/dist/core/operators/debounce.mjs +114 -37
- package/dist/core/operators/debounce.mjs.map +1 -1
- package/dist/core/operators/filter.mjs +39 -24
- package/dist/core/operators/filter.mjs.map +1 -1
- package/dist/core/operators/index.mjs +18 -18
- package/dist/core/operators/index.mjs.map +1 -1
- package/dist/core/operators/map.mjs +74 -26
- package/dist/core/operators/map.mjs.map +1 -1
- package/dist/core/operators/merge-map.mjs +128 -35
- package/dist/core/operators/merge-map.mjs.map +1 -1
- package/dist/core/operators/pairwise.mjs +73 -23
- package/dist/core/operators/pairwise.mjs.map +1 -1
- package/dist/core/operators/scan.mjs +59 -15
- package/dist/core/operators/scan.mjs.map +1 -1
- package/dist/core/operators/skip-if-no-change.mjs +89 -31
- package/dist/core/operators/skip-if-no-change.mjs.map +1 -1
- package/dist/core/operators/skip-until.mjs +71 -29
- package/dist/core/operators/skip-until.mjs.map +1 -1
- package/dist/core/operators/skip-while.mjs +79 -27
- package/dist/core/operators/skip-while.mjs.map +1 -1
- package/dist/core/operators/switch-map.mjs +118 -31
- package/dist/core/operators/switch-map.mjs.map +1 -1
- package/dist/core/operators/take-until.mjs +70 -35
- package/dist/core/operators/take-until.mjs.map +1 -1
- package/dist/core/operators/take-while.mjs +97 -25
- package/dist/core/operators/take-while.mjs.map +1 -1
- package/dist/core/operators/throttle.mjs +108 -38
- package/dist/core/operators/throttle.mjs.map +1 -1
- package/dist/core/operators/with-buffered-from.mjs +94 -47
- package/dist/core/operators/with-buffered-from.mjs.map +1 -1
- package/dist/core/operators/with-current-value-from.mjs +78 -23
- package/dist/core/operators/with-current-value-from.mjs.map +1 -1
- package/dist/core/operators/with-initial-value.mjs +64 -14
- package/dist/core/operators/with-initial-value.mjs.map +1 -1
- package/dist/core/predefined/index.mjs +2 -12
- package/dist/core/predefined/index.mjs.map +1 -1
- package/dist/core/predefined/operators/attach-index.mjs +55 -7
- package/dist/core/predefined/operators/attach-index.mjs.map +1 -1
- package/dist/core/predefined/operators/index.mjs +12 -12
- package/dist/core/predefined/operators/index.mjs.map +1 -1
- package/dist/core/predefined/operators/map-optional.mjs +48 -5
- package/dist/core/predefined/operators/map-optional.mjs.map +1 -1
- package/dist/core/predefined/operators/map-result-err.mjs +48 -5
- package/dist/core/predefined/operators/map-result-err.mjs.map +1 -1
- package/dist/core/predefined/operators/map-result-ok.mjs +48 -5
- package/dist/core/predefined/operators/map-result-ok.mjs.map +1 -1
- package/dist/core/predefined/operators/map-to.mjs +41 -6
- package/dist/core/predefined/operators/map-to.mjs.map +1 -1
- package/dist/core/predefined/operators/pluck.mjs +45 -7
- package/dist/core/predefined/operators/pluck.mjs.map +1 -1
- package/dist/core/predefined/operators/skip.mjs +49 -6
- package/dist/core/predefined/operators/skip.mjs.map +1 -1
- package/dist/core/predefined/operators/take.mjs +42 -6
- package/dist/core/predefined/operators/take.mjs.map +1 -1
- package/dist/core/predefined/operators/unwrap-optional.mjs +43 -8
- package/dist/core/predefined/operators/unwrap-optional.mjs.map +1 -1
- package/dist/core/predefined/operators/unwrap-result-err.mjs +41 -5
- package/dist/core/predefined/operators/unwrap-result-err.mjs.map +1 -1
- package/dist/core/predefined/operators/unwrap-result-ok.mjs +43 -8
- package/dist/core/predefined/operators/unwrap-result-ok.mjs.map +1 -1
- package/dist/core/types/id.mjs +2 -2
- package/dist/core/types/id.mjs.map +1 -1
- package/dist/core/types/index.mjs +7 -3
- package/dist/core/types/index.mjs.map +1 -1
- package/dist/core/types/observable-family.d.mts +2 -2
- package/dist/core/types/observable-family.d.mts.map +1 -1
- package/dist/core/types/observable-family.mjs +10 -2
- package/dist/core/types/observable-family.mjs.map +1 -1
- package/dist/core/types/observable-kind.mjs +2 -2
- package/dist/core/types/observable-kind.mjs.map +1 -1
- package/dist/core/types/observable.mjs +14 -6
- package/dist/core/types/observable.mjs.map +1 -1
- package/dist/core/types/timer.d.mts +11 -1
- package/dist/core/types/timer.d.mts.map +1 -1
- package/dist/core/types/timer.mjs +2 -2
- package/dist/core/types/timer.mjs.map +1 -1
- package/dist/core/types/types.mjs +9 -2
- package/dist/core/types/types.mjs.map +1 -1
- package/dist/core/utils/id-maker.mjs +10 -11
- package/dist/core/utils/id-maker.mjs.map +1 -1
- package/dist/core/utils/index.mjs +5 -5
- package/dist/core/utils/index.mjs.map +1 -1
- package/dist/core/utils/max-depth.mjs +7 -4
- package/dist/core/utils/max-depth.mjs.map +1 -1
- package/dist/core/utils/observable-utils.mjs +4 -7
- package/dist/core/utils/observable-utils.mjs.map +1 -1
- package/dist/core/utils/utils.mjs +32 -28
- package/dist/core/utils/utils.mjs.map +1 -1
- package/dist/entry-point.mjs +2 -46
- package/dist/entry-point.mjs.map +1 -1
- package/dist/index.mjs +3 -46
- package/dist/index.mjs.map +1 -1
- package/dist/utils/collect-to-array.mjs +8 -13
- package/dist/utils/collect-to-array.mjs.map +1 -1
- package/dist/utils/create-boolean-state.mjs +47 -22
- package/dist/utils/create-boolean-state.mjs.map +1 -1
- package/dist/utils/create-event-emitter.mjs +67 -19
- package/dist/utils/create-event-emitter.mjs.map +1 -1
- package/dist/utils/create-reducer.mjs +54 -16
- package/dist/utils/create-reducer.mjs.map +1 -1
- package/dist/utils/create-state.mjs +54 -27
- package/dist/utils/create-state.mjs.map +1 -1
- package/dist/utils/index.mjs +6 -6
- package/dist/utils/index.mjs.map +1 -1
- package/package.json +14 -12
- package/src/core/base/create-child-observable.mts +6 -1
- package/src/core/base/create-observable-base.mts +8 -1
- package/src/core/types/observable-family.mts +53 -34
- package/src/core/types/timer.mts +11 -2
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
- 🎯 **Simple State Management**: Easy-to-use `createState` and `createReducer` similar to React useState/useReducer for global state
|
|
25
25
|
- ⚡ **High Performance**: Optimized for fast state updates and minimal re-renders
|
|
26
26
|
- 🎨 **Type-Safe**: Full TypeScript support with precise type inference
|
|
27
|
-
- 🚀 **Lightweight**: <!-- bundle-size:synstate -->~4.6 kB min+gzip<!-- /bundle-size:synstate --> with
|
|
27
|
+
- 🚀 **Lightweight**: <!-- bundle-size:synstate -->~4.6 kB min+gzip<!-- /bundle-size:synstate --> with two external runtime dependencies ([ts-data-forge](https://www.npmjs.com/package/ts-data-forge) and [ts-std-forge](https://www.npmjs.com/package/ts-std-forge), and the first depends on the second)
|
|
28
28
|
- 🌐 **Framework Agnostic**: Works with React, Vue, Svelte, or vanilla JavaScript
|
|
29
29
|
- 🔄 **Reactive Updates**: Automatic propagation of state changes to all subscribers
|
|
30
30
|
- 📡 **Event System**: Built-in `createValueEmitter`, `createEventEmitter` for event-driven architecture
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-child-observable.d.mts","sourceRoot":"","sources":["../../../src/core/base/create-child-observable.mts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"create-child-observable.d.mts","sourceRoot":"","sources":["../../../src/core/base/create-child-observable.mts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAGL,KAAK,oBAAoB,EAEzB,KAAK,8BAA8B,EACnC,KAAK,mBAAmB,EAGxB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAC;AAQ5B;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,QAAQ,CAAC;IACjD,sEAAsE;IACtE,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAE1D,WAAW,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE/B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAClD,sEAAsE;IACtE,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;CACrC,CAAC,GACA,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAE9B,KAAK,yBAAyB,CAAC,CAAC,SAAS,mBAAmB,IAAI,QAAQ,CAAC;IACvE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,CAC/B,CAAC,EACD,CAAC,SAAS,mBAAmB,IAC3B,yBAAyB,CAAC,CAAC,CAAC,GAC9B,QAAQ,CAAC;IACP,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEL,MAAM,MAAM,gCAAgC,CAC1C,CAAC,EACD,CAAC,SAAS,mBAAmB,IAC3B,yBAAyB,CAAC,CAAC,CAAC,GAC9B,QAAQ,CAAC;IACP,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;CACvB,CAAC,CAAC;AAEL;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,EAAE,CAAC,SAAS,mBAAmB,iDAMrE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,mBACb,CACf,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAC/B,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,KACtC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CA0C1B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,GAC/C,CAAC,EACD,CAAC,SAAS,mBAAmB,UAErB,gCAAgC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAC7B,CACf,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAC/B,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,KACtC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CASrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAI,CAAC,EAAE,CAAC,SAAS,mBAAmB,iDAMtE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,mBACb,CACf,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC,KAChC,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,KACtC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CA6C3B,CAAC"}
|
|
@@ -1,157 +1,186 @@
|
|
|
1
1
|
import { Arr } from 'ts-data-forge';
|
|
2
|
-
import {
|
|
3
|
-
import '../
|
|
4
|
-
import { maxDepth } from '../utils/
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
2
|
+
import { panic } from 'ts-std-forge';
|
|
3
|
+
import { isChildObservable, isManagerObservable, } from '../types/index.mjs';
|
|
4
|
+
import { maxDepth } from '../utils/index.mjs';
|
|
5
|
+
import { assembleObservable, createManagerObservableParts, createObservableBaseHandle, } from './create-observable-base.mjs';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
export const createSyncChildObservable = ({ parents, depth = 1 + maxDepth(parents), initialValue, onComplete, }, createTryUpdate) => {
|
|
17
|
+
const handle = createObservableBaseHandle(initialValue);
|
|
18
|
+
const complete = () => {
|
|
19
|
+
onComplete?.();
|
|
20
|
+
handle.completeBase();
|
|
21
|
+
|
|
22
|
+
for (const par of parents) {
|
|
23
|
+
par.tryComplete();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const tryComplete = () => {
|
|
27
|
+
tryCompleteChild({
|
|
28
|
+
hasSubscriber: handle.hasSubscriber(),
|
|
29
|
+
hasActiveChild: handle.hasActiveChild(),
|
|
30
|
+
parents,
|
|
31
|
+
complete,
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const tryUpdate = createTryUpdate({
|
|
35
|
+
setNext: handle.setNext,
|
|
36
|
+
getSnapshot: handle.getSnapshot,
|
|
37
|
+
complete,
|
|
38
|
+
});
|
|
39
|
+
const observable = assembleObservable({
|
|
40
|
+
kind: 'sync child',
|
|
41
|
+
depth,
|
|
42
|
+
handle,
|
|
43
|
+
tryUpdate,
|
|
44
|
+
tryComplete,
|
|
45
|
+
complete,
|
|
46
|
+
extra: { parents },
|
|
27
47
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
setNext: handle.setNext,
|
|
31
|
-
getSnapshot: handle.getSnapshot,
|
|
32
|
-
complete
|
|
33
|
-
});
|
|
34
|
-
const observable = assembleObservable({
|
|
35
|
-
kind: "sync child",
|
|
36
|
-
depth,
|
|
37
|
-
handle,
|
|
38
|
-
tryUpdate,
|
|
39
|
-
tryComplete,
|
|
40
|
-
complete,
|
|
41
|
-
extra: { parents }
|
|
42
|
-
});
|
|
43
|
-
registerChild(observable, parents);
|
|
44
|
-
return observable;
|
|
48
|
+
registerChild(observable, parents);
|
|
49
|
+
return observable;
|
|
45
50
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
export const createInitializedSyncChildObservable = (config, createTryUpdate) => {
|
|
59
|
+
const observable = createSyncChildObservable(config, createTryUpdate);
|
|
60
|
+
return (
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
observable);
|
|
54
65
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}, createTryUpdate) => {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
export const createAsyncChildObservable = ({ parents, depth = 1 + maxDepth(parents), initialValue, onComplete, }, createTryUpdate) => {
|
|
72
|
+
const handle = createObservableBaseHandle(initialValue);
|
|
73
|
+
const { addDescendant, startUpdate } = createManagerObservableParts(handle);
|
|
74
|
+
const complete = () => {
|
|
75
|
+
onComplete?.();
|
|
76
|
+
handle.completeBase();
|
|
77
|
+
|
|
78
|
+
for (const par of parents) {
|
|
79
|
+
par.tryComplete();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const tryComplete = () => {
|
|
83
|
+
tryCompleteChild({
|
|
84
|
+
hasSubscriber: handle.hasSubscriber(),
|
|
85
|
+
hasActiveChild: handle.hasActiveChild(),
|
|
86
|
+
parents,
|
|
87
|
+
complete,
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
const tryUpdate = createTryUpdate({
|
|
91
|
+
setNext: handle.setNext,
|
|
92
|
+
getSnapshot: handle.getSnapshot,
|
|
93
|
+
complete,
|
|
94
|
+
startUpdate,
|
|
95
|
+
});
|
|
96
|
+
const observable = assembleObservable({
|
|
97
|
+
kind: 'async child',
|
|
98
|
+
depth,
|
|
99
|
+
handle,
|
|
100
|
+
tryUpdate,
|
|
101
|
+
tryComplete,
|
|
102
|
+
complete,
|
|
103
|
+
extra: { parents, addDescendant },
|
|
76
104
|
});
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
setNext: handle.setNext,
|
|
80
|
-
getSnapshot: handle.getSnapshot,
|
|
81
|
-
complete,
|
|
82
|
-
startUpdate
|
|
83
|
-
});
|
|
84
|
-
const observable = assembleObservable({
|
|
85
|
-
kind: "async child",
|
|
86
|
-
depth,
|
|
87
|
-
handle,
|
|
88
|
-
tryUpdate,
|
|
89
|
-
tryComplete,
|
|
90
|
-
complete,
|
|
91
|
-
extra: { parents, addDescendant }
|
|
92
|
-
});
|
|
93
|
-
registerChild(observable, parents);
|
|
94
|
-
return observable;
|
|
105
|
+
registerChild(observable, parents);
|
|
106
|
+
return observable;
|
|
95
107
|
};
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
96
115
|
const hasCircularDependencyFrom = (node, mut_visited, mut_inPath) => {
|
|
97
|
-
|
|
98
|
-
if (mut_visited.has(node.id)) return false;
|
|
99
|
-
mut_visited.add(node.id);
|
|
100
|
-
mut_inPath.add(node.id);
|
|
101
|
-
if (isChildObservable(node)) {
|
|
102
|
-
for (const parent of node.parents) {
|
|
103
|
-
if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {
|
|
116
|
+
if (mut_inPath.has(node.id))
|
|
104
117
|
return true;
|
|
105
|
-
|
|
118
|
+
if (mut_visited.has(node.id))
|
|
119
|
+
return false;
|
|
120
|
+
mut_visited.add(node.id);
|
|
121
|
+
mut_inPath.add(node.id);
|
|
122
|
+
if (isChildObservable(node)) {
|
|
123
|
+
for (const parent of node.parents) {
|
|
124
|
+
if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
106
128
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
return false;
|
|
129
|
+
mut_inPath.delete(node.id);
|
|
130
|
+
return false;
|
|
110
131
|
};
|
|
111
132
|
const detectCircularDependency = (child, parents) => {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
133
|
+
const mut_visited = new Set();
|
|
134
|
+
const mut_inPath = new Set([child.id]);
|
|
135
|
+
for (const parent of parents) {
|
|
136
|
+
if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
panic('Circular dependency detected in observable graph: a child observable cannot be its own ancestor.');
|
|
142
|
+
}
|
|
119
143
|
}
|
|
120
|
-
}
|
|
121
144
|
};
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
122
151
|
const registerChild = (child, parents) => {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
152
|
+
detectCircularDependency(child, parents);
|
|
153
|
+
for (const p of parents) {
|
|
154
|
+
p.addChild(child);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const mut_rest = Array.from(parents);
|
|
158
|
+
while (Arr.isNonEmpty(mut_rest)) {
|
|
159
|
+
const p = mut_rest.pop();
|
|
160
|
+
if (p === undefined)
|
|
161
|
+
break;
|
|
162
|
+
if (isManagerObservable(p)) {
|
|
163
|
+
p.addDescendant(child);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
|
|
167
|
+
mut_rest.push(...p.parents);
|
|
168
|
+
}
|
|
135
169
|
}
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
const tryCompleteChild = ({
|
|
139
|
-
hasSubscriber,
|
|
140
|
-
hasActiveChild,
|
|
141
|
-
parents,
|
|
142
|
-
complete
|
|
143
|
-
}) => {
|
|
144
|
-
if (parents.every((r) => r.isCompleted)) {
|
|
145
|
-
complete();
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
if (!hasSubscriber && !hasActiveChild) {
|
|
149
|
-
complete();
|
|
150
|
-
}
|
|
151
|
-
for (const par of parents) {
|
|
152
|
-
par.tryComplete();
|
|
153
|
-
}
|
|
154
170
|
};
|
|
171
|
+
const tryCompleteChild = ({ hasSubscriber, hasActiveChild, parents, complete, }) => {
|
|
155
172
|
|
|
156
|
-
|
|
157
|
-
|
|
173
|
+
if (parents.every((r) => r.isCompleted)) {
|
|
174
|
+
complete();
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (!hasSubscriber && !hasActiveChild) {
|
|
179
|
+
complete();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
for (const par of parents) {
|
|
183
|
+
par.tryComplete();
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
//# sourceMappingURL=create-child-observable.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-child-observable.mjs","sources":["../../../src/core/base/create-child-observable.mts"],"sourcesContent":["import { Arr, type Optional, type Some } from 'ts-data-forge';\nimport { type MutableSet } from 'ts-type-forge';\nimport {\n isChildObservable,\n isManagerObservable,\n type AsyncChildObservable,\n type ChildObservable,\n type InitializedSyncChildObservable,\n type NonEmptyUnknownList,\n type Observable,\n type ObservableId,\n type SyncChildObservable,\n type UpdateToken,\n type Wrap,\n} from '../types/index.mjs';\nimport { maxDepth } from '../utils/index.mjs';\nimport {\n assembleObservable,\n createManagerObservableParts,\n createObservableBaseHandle,\n} from './create-observable-base.mjs';\n\n/**\n * The internal tools a sync-child leaf factory (`map`, `filter`, `zip`, …)\n * receives — the replacement for the `protected` methods a subclass of\n * `SyncChildObservableClass` used to inherit.\n */\nexport type SyncChildObservableTools<A> = Readonly<{\n /** Emits `nextValue` under `updateToken` and notifies subscribers. */\n setNext: (nextValue: A, updateToken: UpdateToken) => void;\n\n getSnapshot: () => Optional<A>;\n\n /** Completes this observable (leaf teardown included). */\n complete: () => void;\n}>;\n\n/**\n * The internal tools an async-child leaf factory (`debounce`, `switchMap`, …)\n * receives. Async children additionally start their own update propagation.\n */\nexport type AsyncChildObservableTools<A> = Readonly<{\n /** Emits `nextValue` and propagates the update to all descendants. */\n startUpdate: (nextValue: A) => void;\n}> &\n SyncChildObservableTools<A>;\n\ntype ChildObservableConfigBase<P extends NonEmptyUnknownList> = Readonly<{\n parents: Wrap<P>;\n\n depth?: number;\n\n /**\n * Leaf teardown (clear timers, unsubscribe inner observables, …), run at\n * the beginning of `complete()` — the closure replacement for\n * `override complete() { teardown(); super.complete(); }`.\n */\n onComplete?: () => void;\n}>;\n\nexport type ChildObservableConfig<\n A,\n P extends NonEmptyUnknownList,\n> = ChildObservableConfigBase<P> &\n Readonly<{\n initialValue: Optional<A>;\n }>;\n\nexport type InitializedChildObservableConfig<\n A,\n P extends NonEmptyUnknownList,\n> = ChildObservableConfigBase<P> &\n Readonly<{\n initialValue: Some<A>;\n }>;\n\n/**\n * Creates a sync-child observable — the classless replacement for extending\n * `SyncChildObservableClass`.\n *\n * `createTryUpdate` receives the internal tools and returns the `tryUpdate`\n * implementation (the former `override tryUpdate`). It runs during\n * construction, before the observable is registered to its parents; leaf\n * state can live either in the enclosing factory scope or inside the\n * `createTryUpdate` closure.\n */\nexport const createSyncChildObservable = <A, P extends NonEmptyUnknownList>(\n {\n parents,\n depth = 1 + maxDepth(parents),\n initialValue,\n onComplete,\n }: ChildObservableConfig<A, P>,\n createTryUpdate: (\n tools: SyncChildObservableTools<A>,\n ) => (updateToken: UpdateToken) => void,\n): SyncChildObservable<A, P> => {\n const handle = createObservableBaseHandle<A>(initialValue);\n\n const complete = (): void => {\n onComplete?.();\n\n handle.completeBase();\n\n // propagate to parents\n for (const par of parents) {\n par.tryComplete();\n }\n };\n\n const tryComplete = (): void => {\n tryCompleteChild({\n hasSubscriber: handle.hasSubscriber(),\n hasActiveChild: handle.hasActiveChild(),\n parents,\n complete,\n });\n };\n\n const tryUpdate = createTryUpdate({\n setNext: handle.setNext,\n getSnapshot: handle.getSnapshot,\n complete,\n });\n\n const observable: SyncChildObservable<A, P> = assembleObservable({\n kind: 'sync child',\n depth,\n handle,\n tryUpdate,\n tryComplete,\n complete,\n extra: { parents },\n });\n\n registerChild(observable, parents);\n\n return observable;\n};\n\n/**\n * Creates a sync-child observable that always holds a value.\n *\n * Runtime-wise this is exactly `createSyncChildObservable`; only the types of\n * `getSnapshot` and `pipe` are narrowed, which is what the\n * `InitializedSyncChildObservableClass` overrides existed for.\n */\nexport const createInitializedSyncChildObservable = <\n A,\n P extends NonEmptyUnknownList,\n>(\n config: InitializedChildObservableConfig<A, P>,\n createTryUpdate: (\n tools: SyncChildObservableTools<A>,\n ) => (updateToken: UpdateToken) => void,\n): InitializedSyncChildObservable<A, P> => {\n const observable = createSyncChildObservable<A, P>(config, createTryUpdate);\n\n return (\n // `getSnapshot` always returns `Some` here: `initialValue` is a `Some` and\n // `setNext` only ever stores a `Some`.\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n observable as InitializedSyncChildObservable<A, P>\n );\n};\n\n/**\n * Creates an async-child observable — the classless replacement for extending\n * `AsyncChildObservableClass`. See {@link createSyncChildObservable} for the\n * `createTryUpdate` contract.\n */\nexport const createAsyncChildObservable = <A, P extends NonEmptyUnknownList>(\n {\n parents,\n depth = 1 + maxDepth(parents),\n initialValue,\n onComplete,\n }: ChildObservableConfig<A, P>,\n createTryUpdate: (\n tools: AsyncChildObservableTools<A>,\n ) => (updateToken: UpdateToken) => void,\n): AsyncChildObservable<A, P> => {\n const handle = createObservableBaseHandle<A>(initialValue);\n\n const { addDescendant, startUpdate } = createManagerObservableParts(handle);\n\n const complete = (): void => {\n onComplete?.();\n\n handle.completeBase();\n\n // propagate to parents\n for (const par of parents) {\n par.tryComplete();\n }\n };\n\n const tryComplete = (): void => {\n tryCompleteChild({\n hasSubscriber: handle.hasSubscriber(),\n hasActiveChild: handle.hasActiveChild(),\n parents,\n complete,\n });\n };\n\n const tryUpdate = createTryUpdate({\n setNext: handle.setNext,\n getSnapshot: handle.getSnapshot,\n complete,\n startUpdate,\n });\n\n const observable: AsyncChildObservable<A, P> = assembleObservable({\n kind: 'async child',\n depth,\n handle,\n tryUpdate,\n tryComplete,\n complete,\n extra: { parents, addDescendant },\n });\n\n registerChild(observable, parents);\n\n return observable;\n};\n\n/* helpers */\n\n/**\n * Detects circular dependencies by walking the full ancestor chain of the\n * given parents and checking whether `child` already appears among them.\n *\n * @throws {Error} if a circular dependency is detected\n */\nconst hasCircularDependencyFrom = (\n node: Observable<unknown>,\n mut_visited: MutableSet<ObservableId>,\n mut_inPath: MutableSet<ObservableId>,\n): boolean => {\n if (mut_inPath.has(node.id)) return true;\n\n if (mut_visited.has(node.id)) return false;\n\n mut_visited.add(node.id);\n\n mut_inPath.add(node.id);\n\n if (isChildObservable(node)) {\n for (const parent of node.parents) {\n if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {\n return true;\n }\n }\n }\n\n mut_inPath.delete(node.id);\n\n return false;\n};\n\nconst detectCircularDependency = (\n child: ChildObservable<unknown>,\n parents: readonly Observable<unknown>[],\n): void => {\n const mut_visited = new Set<ObservableId>();\n\n const mut_inPath = new Set<ObservableId>([child.id]);\n\n for (const parent of parents) {\n if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {\n throw new Error(\n 'Circular dependency detected in observable graph: a child observable cannot be its own ancestor.',\n );\n }\n }\n};\n\n/**\n * Registers `child` to its parents and to all reachable manager observables.\n * Runs after the child object is fully assembled, so parents only ever hold a\n * reference to the final composed object (the class version registered `this`\n * from inside the constructor instead).\n */\nconst registerChild = <A,>(\n child: ChildObservable<A>,\n parents: ChildObservable<A>['parents'],\n): void => {\n detectCircularDependency(child, parents);\n\n for (const p of parents) {\n p.addChild(child);\n }\n\n // register child to all reachable ManagerObservables\n const mut_rest = Array.from(parents);\n\n while (Arr.isNonEmpty(mut_rest)) {\n const p = mut_rest.pop();\n\n if (p === undefined) break;\n\n if (isManagerObservable(p)) {\n p.addDescendant(child);\n } else {\n // trace back dependency graph\n mut_rest.push(...p.parents);\n }\n }\n};\n\nconst tryCompleteChild = <A,>({\n hasSubscriber,\n hasActiveChild,\n parents,\n complete,\n}: Readonly<{\n hasSubscriber: boolean;\n hasActiveChild: boolean;\n parents: ChildObservable<A>['parents'];\n complete: () => void;\n}>): void => {\n // If there is no working parent node\n if (parents.every((r) => r.isCompleted)) {\n complete();\n\n return;\n }\n\n // If there are no active child node\n if (!hasSubscriber && !hasActiveChild) {\n complete();\n }\n\n // propagate to parents\n for (const par of parents) {\n par.tryComplete();\n }\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-child-observable.mjs","sourceRoot":"","sources":["../../../src/core/base/create-child-observable.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-observable-base.d.mts","sourceRoot":"","sources":["../../../src/core/base/create-observable-base.mts"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"create-observable-base.d.mts","sourceRoot":"","sources":["../../../src/core/base/create-observable-base.mts"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,eAAe,EAGpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EAInB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAS5B;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC7C,EAAE,EAAE,YAAY,CAAC;IAEjB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAEjD,WAAW,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE/B,WAAW,EAAE,MAAM,OAAO,CAAC;IAE3B,WAAW,EAAE,MAAM,WAAW,CAAC;IAE/B,aAAa,EAAE,MAAM,OAAO,CAAC;IAE7B,QAAQ,EAAE,MAAM,OAAO,CAAC;IAExB,cAAc,EAAE,MAAM,OAAO,CAAC;IAE9B,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,KAAK,YAAY,CAAC;IAE7E,wEAAwE;IACxE,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAE1D;;;;;OAKG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC,CAAC;AAEH,eAAO,MAAM,0BAA0B,GAAI,CAAC,gBAC5B,QAAQ,CAAC,CAAC,CAAC,KACxB,oBAAoB,CAAC,CAAC,CAwHxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC/C,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAEtD,sEAAsE;IACtE,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;CACrC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,GAAI,CAAC,UACpC,oBAAoB,CAAC,CAAC,CAAC,KAC9B,sBAAsB,CAAC,CAAC,CAiC1B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,QAAO,CAAC,CAChD,YAAY,EAAE,WAAW,KACtB,IAAI,CAA4B,CAAC;AAYtC,KAAK,sBAAsB,CACzB,CAAC,EACD,IAAI,SAAS,cAAc,EAC3B,KAAK,SAAS,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,QAAQ,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAChC,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,KAAK,EAAE,KAAK,CAAC;CACd,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,CAAC,EACD,IAAI,SAAS,cAAc,EAC3B,KAAK,SAAS,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,qEAS5C,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAG,KAAK,GAC/C,cAAc,CAAC,CAAC,CAAC,GACjB,QAAQ,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAyDxB,CAAC"}
|