@tamagui/use-store 2.7.7 → 3.0.0-beta.643.1
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/cjs/comparators.cjs +27 -30
- package/dist/cjs/comparators.native.cjs +45 -0
- package/dist/cjs/comparators.native.js +31 -34
- package/dist/cjs/comparators.native.js.map +1 -1
- package/dist/cjs/configureUseStore.cjs +17 -18
- package/dist/cjs/configureUseStore.native.cjs +33 -0
- package/dist/cjs/configureUseStore.native.js +17 -17
- package/dist/cjs/configureUseStore.native.js.map +1 -1
- package/dist/cjs/constants.cjs +19 -20
- package/dist/cjs/constants.native.cjs +34 -0
- package/dist/cjs/constants.native.js +19 -19
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/decorators.cjs +19 -22
- package/dist/cjs/decorators.native.cjs +32 -0
- package/dist/cjs/decorators.native.js +19 -21
- package/dist/cjs/decorators.native.js.map +1 -1
- package/dist/cjs/helpers.cjs +39 -40
- package/dist/cjs/helpers.native.cjs +68 -0
- package/dist/cjs/helpers.native.js +42 -43
- package/dist/cjs/helpers.native.js.map +1 -1
- package/dist/cjs/index.cjs +22 -23
- package/dist/cjs/index.native.cjs +62 -0
- package/dist/cjs/index.native.js +35 -36
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interfaces.cjs +10 -11
- package/dist/cjs/interfaces.native.cjs +19 -0
- package/dist/cjs/interfaces.native.js +10 -10
- package/dist/cjs/interfaces.native.js.map +1 -1
- package/dist/cjs/observe.cjs +132 -138
- package/dist/cjs/observe.native.cjs +221 -0
- package/dist/cjs/observe.native.js +192 -203
- package/dist/cjs/observe.native.js.map +1 -1
- package/dist/cjs/useStore.cjs +366 -403
- package/dist/cjs/useStore.native.cjs +557 -0
- package/dist/cjs/useStore.native.js +487 -536
- package/dist/cjs/useStore.native.js.map +1 -1
- package/dist/cjs/useStoreDebug.cjs +39 -45
- package/dist/cjs/useStoreDebug.native.cjs +64 -0
- package/dist/cjs/useStoreDebug.native.js +43 -48
- package/dist/cjs/useStoreDebug.native.js.map +1 -1
- package/dist/esm/comparators.mjs +13 -12
- package/dist/esm/comparators.mjs.map +1 -1
- package/dist/esm/comparators.native.js +17 -17
- package/dist/esm/comparators.native.js.map +1 -1
- package/dist/esm/configureUseStore.mjs +2 -1
- package/dist/esm/configureUseStore.mjs.map +1 -1
- package/dist/esm/configureUseStore.native.js +2 -1
- package/dist/esm/configureUseStore.native.js.map +1 -1
- package/dist/esm/constants.mjs +4 -3
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +4 -3
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/decorators.mjs +5 -4
- package/dist/esm/decorators.mjs.map +1 -1
- package/dist/esm/decorators.native.js +5 -4
- package/dist/esm/decorators.native.js.map +1 -1
- package/dist/esm/helpers.mjs +20 -18
- package/dist/esm/helpers.mjs.map +1 -1
- package/dist/esm/helpers.native.js +23 -22
- package/dist/esm/helpers.native.js.map +1 -1
- package/dist/esm/index.js +18 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +18 -11
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +30 -24
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/interfaces.mjs +0 -2
- package/dist/esm/interfaces.native.js +0 -2
- package/dist/esm/observe.mjs +115 -113
- package/dist/esm/observe.mjs.map +1 -1
- package/dist/esm/observe.native.js +175 -179
- package/dist/esm/observe.native.js.map +1 -1
- package/dist/esm/useStore.mjs +336 -363
- package/dist/esm/useStore.mjs.map +1 -1
- package/dist/esm/useStore.native.js +457 -497
- package/dist/esm/useStore.native.js.map +1 -1
- package/dist/esm/useStoreDebug.mjs +20 -18
- package/dist/esm/useStoreDebug.mjs.map +1 -1
- package/dist/esm/useStoreDebug.native.js +23 -21
- package/dist/esm/useStoreDebug.native.js.map +1 -1
- package/package.json +3 -3
- package/dist/esm/interfaces.mjs.map +0 -1
- package/dist/esm/interfaces.native.js.map +0 -1
package/dist/esm/observe.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"file":"observe.js","names":[],"sources":["esm/observe.js"],"sourcesContent":["import React from \"react\";\nimport { isEqualSubsetShallow } from \"./comparators\";\nimport { UNWRAP_PROXY } from \"./constants\";\nimport { trackStoresAccess } from \"./useStore\";\nconst logUpdate = process.env.NODE_ENV === \"development\" ? (fn, stores, last, next) => {\n const getStoreLogName = (store) => {\n const str = store[UNWRAP_PROXY] ?? store;\n return `${str.constructor.name}${store.props?.id ? `:${store.props.id}` : \"\"}`;\n };\n const storeNames = stores.map(getStoreLogName).join(\", \");\n const name = `\\u{1F311} \\u25B6\\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;\n console.groupCollapsed(name, \"color: tomato;\");\n console.groupCollapsed(\"trace >\");\n console.trace();\n console.groupEnd();\n console.info(\" next\", next);\n console.groupEnd();\n} : null;\nfunction observe(fn) {\n let prev = getObserverValueAndStoresAccessed(fn);\n let disposeValue = null;\n const subscribe = () => {\n const stores = [...prev.storeInfos];\n return subscribeToStores(stores, () => {\n disposeValue?.();\n const next = getObserverValueAndStoresAccessed(fn);\n if (typeof next.value === \"function\") {\n disposeValue = next.value;\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [...next.storeInfos], \"(fn)\", \"(fn)\");\n }\n return;\n }\n if (isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [...next.storeInfos], prev.value, next.value);\n }\n prev = next;\n dispose();\n dispose = subscribe();\n });\n };\n let dispose = subscribe();\n return {\n dispose: () => {\n dispose();\n disposeValue?.();\n },\n getValue: () => prev.value\n };\n}\nfunction useObserve(fn) {\n const [state, setState] = React.useState(() => {\n return getObserverValueAndStoresAccessed(fn);\n });\n React.useEffect(() => {\n let dispose;\n const unsub = subscribeToStores([...state.storeInfos], () => {\n dispose?.();\n const next = getObserverValueAndStoresAccessed(fn);\n const nextStoreInfos = [...next.storeInfos];\n const prevStoreInfos = [...state.storeInfos];\n if (typeof next.value === \"function\") {\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, \"(fn)\", \"(fn)\");\n }\n dispose = next.value;\n return;\n }\n setState((prev) => {\n if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return prev;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, prev.value, next.value);\n }\n return next;\n });\n });\n return () => {\n unsub();\n dispose?.();\n };\n }, [[...state.storeInfos].map((i) => i.uid).join(\",\")]);\n return state.value;\n}\nfunction getObserverValueAndStoresAccessed(selector) {\n const storeInfos = /* @__PURE__ */ new Set();\n const dispose = trackStoresAccess((storeInfo) => {\n storeInfos.add(storeInfo);\n });\n const value = selector();\n dispose();\n return {\n value,\n storeInfos\n };\n}\nfunction subscribeToStores(storeInfos, onUpdate) {\n const disposes = [];\n let isUpdating = false;\n const onUpdateDebouncedWithoutTracking = () => {\n if (isUpdating) return;\n isUpdating = true;\n queueMicrotask(() => {\n try {\n for (const storeInfo of storeInfos) {\n storeInfo.disableTracking = true;\n }\n onUpdate();\n } finally {\n isUpdating = false;\n for (const storeInfo of storeInfos) {\n storeInfo.disableTracking = false;\n }\n }\n });\n };\n for (const storeInfo of storeInfos) {\n disposes.push(storeInfo.subscribe(onUpdateDebouncedWithoutTracking));\n }\n return () => {\n disposes.forEach((x) => x());\n };\n}\nexport {\n observe,\n useObserve\n};\n//# sourceMappingURL=observe.js.map\n"],"mappings":"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"}
|
|
@@ -2,193 +2,189 @@ import React from "react";
|
|
|
2
2
|
import { isEqualSubsetShallow } from "./comparators.native.js";
|
|
3
3
|
import { UNWRAP_PROXY } from "./constants.native.js";
|
|
4
4
|
import { trackStoresAccess } from "./useStore.native.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
|
|
6
|
+
var logUpdate = process.env.NODE_ENV === "development" ? function(fn, stores, last, next) {
|
|
7
|
+
var getStoreLogName = function(store) {
|
|
8
|
+
var _store_props;
|
|
9
|
+
var _store_UNWRAP_PROXY;
|
|
10
|
+
var str = (_store_UNWRAP_PROXY = store[UNWRAP_PROXY]) !== null && _store_UNWRAP_PROXY !== void 0 ? _store_UNWRAP_PROXY : store;
|
|
11
|
+
return `${str.constructor.name}${((_store_props = store.props) === null || _store_props === void 0 ? void 0 : _store_props.id) ? `:${store.props.id}` : ""}`;
|
|
12
|
+
};
|
|
13
|
+
var storeNames = stores.map(getStoreLogName).join(", ");
|
|
14
|
+
var name = `\u{1F311} \u25B6\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;
|
|
15
|
+
console.groupCollapsed(name, "color: tomato;");
|
|
16
|
+
console.groupCollapsed("trace >");
|
|
17
|
+
console.trace();
|
|
18
|
+
console.groupEnd();
|
|
19
|
+
console.info(" next", next);
|
|
20
|
+
console.groupEnd();
|
|
20
21
|
} : null;
|
|
21
22
|
function observe(fn) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
23
|
+
var prev = getObserverValueAndStoresAccessed(fn);
|
|
24
|
+
var disposeValue = null;
|
|
25
|
+
var subscribe = function() {
|
|
26
|
+
var stores = [...prev.storeInfos];
|
|
27
|
+
return subscribeToStores(stores, function() {
|
|
28
|
+
disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();
|
|
29
|
+
var next = getObserverValueAndStoresAccessed(fn);
|
|
30
|
+
if (typeof next.value === "function") {
|
|
31
|
+
disposeValue = next.value;
|
|
32
|
+
if (process.env.NODE_ENV === "development") {
|
|
33
|
+
logUpdate(fn, [...next.storeInfos], "(fn)", "(fn)");
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (process.env.NODE_ENV === "development") {
|
|
41
|
+
logUpdate(fn, [...next.storeInfos], prev.value, next.value);
|
|
42
|
+
}
|
|
43
|
+
prev = next;
|
|
44
|
+
dispose();
|
|
45
|
+
dispose = subscribe();
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
var dispose = subscribe();
|
|
49
|
+
return {
|
|
50
|
+
dispose: function() {
|
|
51
|
+
dispose();
|
|
52
|
+
disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();
|
|
53
|
+
},
|
|
54
|
+
getValue: function() {
|
|
55
|
+
return prev.value;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
57
58
|
}
|
|
58
59
|
function useObserve(fn) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
60
|
+
var [state, setState] = React.useState(function() {
|
|
61
|
+
return getObserverValueAndStoresAccessed(fn);
|
|
62
|
+
});
|
|
63
|
+
React.useEffect(function() {
|
|
64
|
+
var dispose;
|
|
65
|
+
var unsub = subscribeToStores([...state.storeInfos], function() {
|
|
66
|
+
dispose === null || dispose === void 0 ? void 0 : dispose();
|
|
67
|
+
var next = getObserverValueAndStoresAccessed(fn);
|
|
68
|
+
var nextStoreInfos = [...next.storeInfos];
|
|
69
|
+
var prevStoreInfos = [...state.storeInfos];
|
|
70
|
+
if (typeof next.value === "function") {
|
|
71
|
+
if (process.env.NODE_ENV === "development") {
|
|
72
|
+
logUpdate(fn, nextStoreInfos, "(fn)", "(fn)");
|
|
73
|
+
}
|
|
74
|
+
dispose = next.value;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
setState(function(prev) {
|
|
78
|
+
if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {
|
|
79
|
+
return prev;
|
|
80
|
+
}
|
|
81
|
+
if (process.env.NODE_ENV === "development") {
|
|
82
|
+
logUpdate(fn, nextStoreInfos, prev.value, next.value);
|
|
83
|
+
}
|
|
84
|
+
return next;
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
return function() {
|
|
88
|
+
unsub();
|
|
89
|
+
dispose === null || dispose === void 0 ? void 0 : dispose();
|
|
90
|
+
};
|
|
91
|
+
}, [[...state.storeInfos].map(function(i) {
|
|
92
|
+
return i.uid;
|
|
93
|
+
}).join(",")]);
|
|
94
|
+
return state.value;
|
|
94
95
|
}
|
|
95
96
|
function getObserverValueAndStoresAccessed(selector) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
97
|
+
var storeInfos = /* @__PURE__ */ new Set();
|
|
98
|
+
var dispose = trackStoresAccess(function(storeInfo) {
|
|
99
|
+
storeInfos.add(storeInfo);
|
|
100
|
+
});
|
|
101
|
+
var value = selector();
|
|
102
|
+
dispose();
|
|
103
|
+
return {
|
|
104
|
+
value,
|
|
105
|
+
storeInfos
|
|
106
|
+
};
|
|
106
107
|
}
|
|
107
108
|
function subscribeToStores(storeInfos, onUpdate) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
return function () {
|
|
188
|
-
disposes.forEach(function (x) {
|
|
189
|
-
return x();
|
|
190
|
-
});
|
|
191
|
-
};
|
|
109
|
+
var disposes = [];
|
|
110
|
+
var isUpdating = false;
|
|
111
|
+
var onUpdateDebouncedWithoutTracking = function() {
|
|
112
|
+
if (isUpdating) return;
|
|
113
|
+
isUpdating = true;
|
|
114
|
+
queueMicrotask(function() {
|
|
115
|
+
try {
|
|
116
|
+
var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
|
|
117
|
+
try {
|
|
118
|
+
for (var _iterator2 = storeInfos[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
119
|
+
var storeInfo2 = _step2.value;
|
|
120
|
+
storeInfo2.disableTracking = true;
|
|
121
|
+
}
|
|
122
|
+
} catch (err) {
|
|
123
|
+
_didIteratorError2 = true;
|
|
124
|
+
_iteratorError2 = err;
|
|
125
|
+
} finally {
|
|
126
|
+
try {
|
|
127
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
128
|
+
_iterator2.return();
|
|
129
|
+
}
|
|
130
|
+
} finally {
|
|
131
|
+
if (_didIteratorError2) {
|
|
132
|
+
throw _iteratorError2;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
onUpdate();
|
|
137
|
+
} finally {
|
|
138
|
+
isUpdating = false;
|
|
139
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
|
|
140
|
+
try {
|
|
141
|
+
for (var _iterator1 = storeInfos[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
142
|
+
var storeInfo1 = _step1.value;
|
|
143
|
+
storeInfo1.disableTracking = false;
|
|
144
|
+
}
|
|
145
|
+
} catch (err) {
|
|
146
|
+
_didIteratorError1 = true;
|
|
147
|
+
_iteratorError1 = err;
|
|
148
|
+
} finally {
|
|
149
|
+
try {
|
|
150
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
151
|
+
_iterator1.return();
|
|
152
|
+
}
|
|
153
|
+
} finally {
|
|
154
|
+
if (_didIteratorError1) {
|
|
155
|
+
throw _iteratorError1;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
163
|
+
try {
|
|
164
|
+
for (var _iterator = storeInfos[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
165
|
+
var storeInfo = _step.value;
|
|
166
|
+
disposes.push(storeInfo.subscribe(onUpdateDebouncedWithoutTracking));
|
|
167
|
+
}
|
|
168
|
+
} catch (err) {
|
|
169
|
+
_didIteratorError = true;
|
|
170
|
+
_iteratorError = err;
|
|
171
|
+
} finally {
|
|
172
|
+
try {
|
|
173
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
174
|
+
_iterator.return();
|
|
175
|
+
}
|
|
176
|
+
} finally {
|
|
177
|
+
if (_didIteratorError) {
|
|
178
|
+
throw _iteratorError;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return function() {
|
|
183
|
+
disposes.forEach(function(x) {
|
|
184
|
+
return x();
|
|
185
|
+
});
|
|
186
|
+
};
|
|
192
187
|
}
|
|
188
|
+
|
|
193
189
|
export { observe, useObserve };
|
|
194
190
|
//# sourceMappingURL=observe.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isEqualSubsetShallow","UNWRAP_PROXY","trackStoresAccess","logUpdate","process","env","NODE_ENV","fn","stores","last","next","getStoreLogName","store","_store_props","_store_UNWRAP_PROXY","str","constructor","name","props","id","storeNames","map","join","console","groupCollapsed","trace","groupEnd","info","observe","prev","getObserverValueAndStoresAccessed","disposeValue","subscribe","storeInfos","subscribeToStores","value","dispose","getValue","useObserve","state","setState","useState","useEffect","unsub","nextStoreInfos","prevStoreInfos","i","uid","selector","Set","storeInfo","add","onUpdate","disposes","isUpdating","onUpdateDebouncedWithoutTracking"],"sources":["../../src/observe.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"observe.native.js","names":[],"sources":["esm/observe.native.js"],"sourcesContent":["import React from \"react\";\nimport { isEqualSubsetShallow } from \"./comparators\";\nimport { UNWRAP_PROXY } from \"./constants\";\nimport { trackStoresAccess } from \"./useStore\";\nvar logUpdate = process.env.NODE_ENV === \"development\" ? function(fn, stores, last, next) {\n var getStoreLogName = function(store) {\n var _store_props;\n var _store_UNWRAP_PROXY;\n var str = (_store_UNWRAP_PROXY = store[UNWRAP_PROXY]) !== null && _store_UNWRAP_PROXY !== void 0 ? _store_UNWRAP_PROXY : store;\n return `${str.constructor.name}${((_store_props = store.props) === null || _store_props === void 0 ? void 0 : _store_props.id) ? `:${store.props.id}` : \"\"}`;\n };\n var storeNames = stores.map(getStoreLogName).join(\", \");\n var name = `\\u{1F311} \\u25B6\\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;\n console.groupCollapsed(name, \"color: tomato;\");\n console.groupCollapsed(\"trace >\");\n console.trace();\n console.groupEnd();\n console.info(\" next\", next);\n console.groupEnd();\n} : null;\nfunction observe(fn) {\n var prev = getObserverValueAndStoresAccessed(fn);\n var disposeValue = null;\n var subscribe = function() {\n var stores = [\n ...prev.storeInfos\n ];\n return subscribeToStores(stores, function() {\n disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();\n var next = getObserverValueAndStoresAccessed(fn);\n if (typeof next.value === \"function\") {\n disposeValue = next.value;\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [\n ...next.storeInfos\n ], \"(fn)\", \"(fn)\");\n }\n return;\n }\n if (isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [\n ...next.storeInfos\n ], prev.value, next.value);\n }\n prev = next;\n dispose();\n dispose = subscribe();\n });\n };\n var dispose = subscribe();\n return {\n dispose: function() {\n dispose();\n disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();\n },\n getValue: function() {\n return prev.value;\n }\n };\n}\nfunction useObserve(fn) {\n var [state, setState] = React.useState(function() {\n return getObserverValueAndStoresAccessed(fn);\n });\n React.useEffect(function() {\n var dispose;\n var unsub = subscribeToStores([\n ...state.storeInfos\n ], function() {\n dispose === null || dispose === void 0 ? void 0 : dispose();\n var next = getObserverValueAndStoresAccessed(fn);\n var nextStoreInfos = [\n ...next.storeInfos\n ];\n var prevStoreInfos = [\n ...state.storeInfos\n ];\n if (typeof next.value === \"function\") {\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, \"(fn)\", \"(fn)\");\n }\n dispose = next.value;\n return;\n }\n setState(function(prev) {\n if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return prev;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, prev.value, next.value);\n }\n return next;\n });\n });\n return function() {\n unsub();\n dispose === null || dispose === void 0 ? void 0 : dispose();\n };\n }, [\n [\n ...state.storeInfos\n ].map(function(i) {\n return i.uid;\n }).join(\",\")\n ]);\n return state.value;\n}\nfunction getObserverValueAndStoresAccessed(selector) {\n var storeInfos = /* @__PURE__ */ new Set();\n var dispose = trackStoresAccess(function(storeInfo) {\n storeInfos.add(storeInfo);\n });\n var value = selector();\n dispose();\n return {\n value,\n storeInfos\n };\n}\nfunction subscribeToStores(storeInfos, onUpdate) {\n var disposes = [];\n var isUpdating = false;\n var onUpdateDebouncedWithoutTracking = function() {\n if (isUpdating) return;\n isUpdating = true;\n queueMicrotask(function() {\n try {\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = storeInfos[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var storeInfo2 = _step2.value;\n storeInfo2.disableTracking = true;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n onUpdate();\n } finally {\n isUpdating = false;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = storeInfos[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var storeInfo1 = _step1.value;\n storeInfo1.disableTracking = false;\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n });\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = storeInfos[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var storeInfo = _step.value;\n disposes.push(storeInfo.subscribe(onUpdateDebouncedWithoutTracking));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return function() {\n disposes.forEach(function(x) {\n return x();\n });\n };\n}\nexport {\n observe,\n useObserve\n};\n//# sourceMappingURL=observe.js.map\n"],"mappings":"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"}
|