nexa-reactivity 0.4.3 → 0.4.4
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/dist/core.d.ts.map +1 -1
- package/dist/core.js +33 -28
- package/dist/core.js.map +1 -1
- package/package.json +1 -1
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAyBA,qBAAa,MAAM;IAKf,OAAO,CAAC,EAAE;IAJL,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAK;IACxB,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;gBAG3B,EAAE,EAAE,MAAM,IAAI,EACtB,SAAS,CAAC,EAAE,MAAM,IAAI;IAKxB,GAAG,IAAI,IAAI;IAWX,OAAO,IAAI,IAAI;CAGhB;AASD,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE3D;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBzE;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB3E;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAQlC"}
|
package/dist/core.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
const globalObj = typeof globalThis !== 'undefined'
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const globalObj = (typeof globalThis !== 'undefined'
|
|
2
|
+
? globalThis
|
|
3
|
+
: (typeof window !== 'undefined'
|
|
4
|
+
? window
|
|
5
|
+
: (typeof self !== 'undefined' ? self : {})));
|
|
6
|
+
// Initialize shared state if not present
|
|
7
|
+
if (!globalObj.__NEXA_REACTIVITY_STATE__) {
|
|
8
|
+
globalObj.__NEXA_REACTIVITY_STATE__ = {
|
|
9
|
+
activeEffect: null,
|
|
10
|
+
batchDepth: 0,
|
|
11
|
+
pendingEffects: new Set(),
|
|
12
|
+
targetToEffectsMap: new WeakMap()
|
|
13
|
+
};
|
|
4
14
|
}
|
|
5
|
-
;
|
|
6
|
-
globalObj.__NEXA_REACTIVITY__ = true;
|
|
7
|
-
let activeEffect = null;
|
|
8
|
-
let batchDepth = 0;
|
|
9
|
-
const pendingEffects = new Set();
|
|
10
|
-
const targetToEffectsMap = new WeakMap();
|
|
15
|
+
const state = globalObj.__NEXA_REACTIVITY_STATE__;
|
|
11
16
|
export class Effect {
|
|
12
17
|
fn;
|
|
13
18
|
deps = [];
|
|
@@ -18,13 +23,13 @@ export class Effect {
|
|
|
18
23
|
}
|
|
19
24
|
run() {
|
|
20
25
|
cleanupDeps(this);
|
|
21
|
-
const prev = activeEffect;
|
|
22
|
-
activeEffect = this;
|
|
26
|
+
const prev = state.activeEffect;
|
|
27
|
+
state.activeEffect = this;
|
|
23
28
|
try {
|
|
24
29
|
this.fn();
|
|
25
30
|
}
|
|
26
31
|
finally {
|
|
27
|
-
activeEffect = prev;
|
|
32
|
+
state.activeEffect = prev;
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
dispose() {
|
|
@@ -38,29 +43,29 @@ function cleanupDeps(effect) {
|
|
|
38
43
|
effect.deps = [];
|
|
39
44
|
}
|
|
40
45
|
export function getActiveEffect() {
|
|
41
|
-
return activeEffect;
|
|
46
|
+
return state.activeEffect;
|
|
42
47
|
}
|
|
43
48
|
export function setActiveEffect(effect) {
|
|
44
|
-
activeEffect = effect;
|
|
49
|
+
state.activeEffect = effect;
|
|
45
50
|
}
|
|
46
51
|
export function track(target, key) {
|
|
47
|
-
if (!activeEffect)
|
|
52
|
+
if (!state.activeEffect)
|
|
48
53
|
return;
|
|
49
|
-
let depsMap = targetToEffectsMap.get(target);
|
|
54
|
+
let depsMap = state.targetToEffectsMap.get(target);
|
|
50
55
|
if (!depsMap) {
|
|
51
56
|
depsMap = new Map();
|
|
52
|
-
targetToEffectsMap.set(target, depsMap);
|
|
57
|
+
state.targetToEffectsMap.set(target, depsMap);
|
|
53
58
|
}
|
|
54
59
|
let deps = depsMap.get(key);
|
|
55
60
|
if (!deps) {
|
|
56
61
|
deps = new Set();
|
|
57
62
|
depsMap.set(key, deps);
|
|
58
63
|
}
|
|
59
|
-
deps.add(activeEffect);
|
|
60
|
-
activeEffect.deps.push(deps);
|
|
64
|
+
deps.add(state.activeEffect);
|
|
65
|
+
state.activeEffect.deps.push(deps);
|
|
61
66
|
}
|
|
62
67
|
export function trigger(target, key) {
|
|
63
|
-
const depsMap = targetToEffectsMap.get(target);
|
|
68
|
+
const depsMap = state.targetToEffectsMap.get(target);
|
|
64
69
|
if (!depsMap)
|
|
65
70
|
return;
|
|
66
71
|
const deps = depsMap.get(key);
|
|
@@ -72,7 +77,7 @@ export function trigger(target, key) {
|
|
|
72
77
|
if (effect.scheduler) {
|
|
73
78
|
effect.scheduler();
|
|
74
79
|
}
|
|
75
|
-
pendingEffects.add(effect);
|
|
80
|
+
state.pendingEffects.add(effect);
|
|
76
81
|
}
|
|
77
82
|
else {
|
|
78
83
|
if (effect.scheduler) {
|
|
@@ -85,23 +90,23 @@ export function trigger(target, key) {
|
|
|
85
90
|
}
|
|
86
91
|
}
|
|
87
92
|
export function isBatching() {
|
|
88
|
-
return batchDepth > 0;
|
|
93
|
+
return state.batchDepth > 0;
|
|
89
94
|
}
|
|
90
95
|
export function beginBatch() {
|
|
91
|
-
batchDepth++;
|
|
96
|
+
state.batchDepth++;
|
|
92
97
|
}
|
|
93
98
|
export function endBatch() {
|
|
94
|
-
batchDepth--;
|
|
95
|
-
if (batchDepth <= 0) {
|
|
96
|
-
batchDepth = 0;
|
|
99
|
+
state.batchDepth--;
|
|
100
|
+
if (state.batchDepth <= 0) {
|
|
101
|
+
state.batchDepth = 0;
|
|
97
102
|
flushPending();
|
|
98
103
|
return true;
|
|
99
104
|
}
|
|
100
105
|
return false;
|
|
101
106
|
}
|
|
102
107
|
function flushPending() {
|
|
103
|
-
const effects = new Set(pendingEffects);
|
|
104
|
-
pendingEffects.clear();
|
|
108
|
+
const effects = new Set(state.pendingEffects);
|
|
109
|
+
state.pendingEffects.clear();
|
|
105
110
|
for (const effect of effects) {
|
|
106
111
|
if (!effect.scheduler) {
|
|
107
112
|
effect.run();
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|