@hanzogui/use-store 2.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/LICENSE +21 -0
- package/README.md +91 -0
- package/dist/cjs/comparators.cjs +37 -0
- package/dist/cjs/comparators.native.js +46 -0
- package/dist/cjs/comparators.native.js.map +1 -0
- package/dist/cjs/configureUseStore.cjs +30 -0
- package/dist/cjs/configureUseStore.native.js +33 -0
- package/dist/cjs/configureUseStore.native.js.map +1 -0
- package/dist/cjs/constants.cjs +31 -0
- package/dist/cjs/constants.native.js +34 -0
- package/dist/cjs/constants.native.js.map +1 -0
- package/dist/cjs/decorators.cjs +30 -0
- package/dist/cjs/decorators.native.js +33 -0
- package/dist/cjs/decorators.native.js.map +1 -0
- package/dist/cjs/helpers.cjs +55 -0
- package/dist/cjs/helpers.native.js +65 -0
- package/dist/cjs/helpers.native.js.map +1 -0
- package/dist/cjs/index.cjs +40 -0
- package/dist/cjs/index.native.js +54 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/interfaces.cjs +16 -0
- package/dist/cjs/interfaces.native.js +19 -0
- package/dist/cjs/interfaces.native.js.map +1 -0
- package/dist/cjs/observe.cjs +120 -0
- package/dist/cjs/observe.native.js +186 -0
- package/dist/cjs/observe.native.js.map +1 -0
- package/dist/cjs/useStore.cjs +390 -0
- package/dist/cjs/useStore.native.js +544 -0
- package/dist/cjs/useStore.native.js.map +1 -0
- package/dist/cjs/useStoreDebug.cjs +56 -0
- package/dist/cjs/useStoreDebug.native.js +65 -0
- package/dist/cjs/useStoreDebug.native.js.map +1 -0
- package/dist/esm/comparators.mjs +14 -0
- package/dist/esm/comparators.mjs.map +1 -0
- package/dist/esm/comparators.native.js +20 -0
- package/dist/esm/comparators.native.js.map +1 -0
- package/dist/esm/configureUseStore.mjs +6 -0
- package/dist/esm/configureUseStore.mjs.map +1 -0
- package/dist/esm/configureUseStore.native.js +6 -0
- package/dist/esm/configureUseStore.native.js.map +1 -0
- package/dist/esm/constants.mjs +7 -0
- package/dist/esm/constants.mjs.map +1 -0
- package/dist/esm/constants.native.js +7 -0
- package/dist/esm/constants.native.js.map +1 -0
- package/dist/esm/decorators.mjs +7 -0
- package/dist/esm/decorators.mjs.map +1 -0
- package/dist/esm/decorators.native.js +7 -0
- package/dist/esm/decorators.native.js.map +1 -0
- package/dist/esm/helpers.mjs +26 -0
- package/dist/esm/helpers.mjs.map +1 -0
- package/dist/esm/helpers.native.js +33 -0
- package/dist/esm/helpers.native.js.map +1 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +14 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +25 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/interfaces.mjs +2 -0
- package/dist/esm/interfaces.mjs.map +1 -0
- package/dist/esm/interfaces.native.js +2 -0
- package/dist/esm/interfaces.native.js.map +1 -0
- package/dist/esm/observe.mjs +85 -0
- package/dist/esm/observe.mjs.map +1 -0
- package/dist/esm/observe.native.js +148 -0
- package/dist/esm/observe.native.js.map +1 -0
- package/dist/esm/useStore.mjs +342 -0
- package/dist/esm/useStore.mjs.map +1 -0
- package/dist/esm/useStore.native.js +493 -0
- package/dist/esm/useStore.native.js.map +1 -0
- package/dist/esm/useStoreDebug.mjs +18 -0
- package/dist/esm/useStoreDebug.mjs.map +1 -0
- package/dist/esm/useStoreDebug.native.js +24 -0
- package/dist/esm/useStoreDebug.native.js.map +1 -0
- package/package.json +47 -0
- package/src/comparators.tsx +18 -0
- package/src/configureUseStore.tsx +7 -0
- package/src/constants.tsx +6 -0
- package/src/decorators.tsx +8 -0
- package/src/helpers.tsx +56 -0
- package/src/index.ts +12 -0
- package/src/interfaces.tsx +46 -0
- package/src/observe.tsx +160 -0
- package/src/useStore.tsx +705 -0
- package/src/useStoreDebug.tsx +41 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { isEqualSubsetShallow } from "./comparators.mjs";
|
|
3
|
+
import { configureOpts } from "./configureUseStore.mjs";
|
|
4
|
+
import { UNWRAP_PROXY, defaultOptions } from "./constants.mjs";
|
|
5
|
+
import { UNWRAP_STORE_INFO, cache, getStoreDescriptors, getStoreUid, simpleStr } from "./helpers.mjs";
|
|
6
|
+
import { DebugStores, shouldDebug, useCurrentComponent } from "./useStoreDebug.mjs";
|
|
7
|
+
const idFn = _ => _;
|
|
8
|
+
function useStore(StoreKlass, props, options = defaultOptions) {
|
|
9
|
+
const info = getOrCreateStoreInfo(StoreKlass, props, options);
|
|
10
|
+
return useStoreFromInfo(info, options.selector, options);
|
|
11
|
+
}
|
|
12
|
+
function useStoreDebug(StoreKlass, props) {
|
|
13
|
+
return useStore(StoreKlass, props, {
|
|
14
|
+
debug: !0
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function createStore(StoreKlass, props, options) {
|
|
18
|
+
return getOrCreateStoreInfo(StoreKlass, props, options)?.store;
|
|
19
|
+
}
|
|
20
|
+
function useGlobalStore(instance, debug) {
|
|
21
|
+
const store = instance[UNWRAP_PROXY],
|
|
22
|
+
uid = getStoreUid(store.constructor, store.props),
|
|
23
|
+
info = cache.get(uid);
|
|
24
|
+
if (!info) throw new Error("This store not created using createStore()");
|
|
25
|
+
return useStoreFromInfo(info, void 0, {
|
|
26
|
+
debug
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function useGlobalStoreSelector(instance, selector, debug) {
|
|
30
|
+
const store = instance[UNWRAP_PROXY],
|
|
31
|
+
uid = getStoreUid(store.constructor, store.props),
|
|
32
|
+
info = cache.get(uid);
|
|
33
|
+
if (!info) throw new Error("This store not created using createStore()");
|
|
34
|
+
return useStoreFromInfo(info, selector, {
|
|
35
|
+
debug
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function createUseStore(StoreKlass) {
|
|
39
|
+
return (props, options) => useStore(StoreKlass, props, options);
|
|
40
|
+
}
|
|
41
|
+
function createUseStoreSelector(StoreKlass, selector) {
|
|
42
|
+
return props => useStore(StoreKlass, props, {
|
|
43
|
+
selector
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function useStoreSelector(StoreKlass, selector, props) {
|
|
47
|
+
return useStore(StoreKlass, props, {
|
|
48
|
+
selector
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
const storeAccessTrackers = /* @__PURE__ */new Set();
|
|
52
|
+
function trackStoresAccess(cb) {
|
|
53
|
+
return storeAccessTrackers.add(cb), () => {
|
|
54
|
+
storeAccessTrackers.delete(cb);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function getStore(StoreKlass, props) {
|
|
58
|
+
return getStoreInfo(StoreKlass, props)?.store;
|
|
59
|
+
}
|
|
60
|
+
function getOrCreateStore(StoreKlass, props) {
|
|
61
|
+
return getOrCreateStoreInfo(StoreKlass, props, {
|
|
62
|
+
refuseCreation: !1
|
|
63
|
+
})?.store;
|
|
64
|
+
}
|
|
65
|
+
function getStoreInfo(StoreKlass, props) {
|
|
66
|
+
return getOrCreateStoreInfo(StoreKlass, props, {
|
|
67
|
+
refuseCreation: !0
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const onCreateListeners = /* @__PURE__ */new Set();
|
|
71
|
+
function onCreateStore(cb) {
|
|
72
|
+
return onCreateListeners.add(cb), () => {
|
|
73
|
+
onCreateListeners.delete(cb);
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {
|
|
77
|
+
if (!StoreKlass) return null;
|
|
78
|
+
const uid = getStoreUid(StoreKlass, propsKeyCalculated ?? props);
|
|
79
|
+
if (!options?.avoidCache && cache.has(uid)) return cache.get(uid);
|
|
80
|
+
if (options?.refuseCreation) throw new Error(`No store exists (${StoreKlass.name}) with props: ${props}`);
|
|
81
|
+
const storeInstance = new StoreKlass(props);
|
|
82
|
+
storeInstance.props = props;
|
|
83
|
+
const getters = {},
|
|
84
|
+
actions = {},
|
|
85
|
+
stateKeys = /* @__PURE__ */new Set(),
|
|
86
|
+
descriptors = getStoreDescriptors(storeInstance);
|
|
87
|
+
for (const key in descriptors) {
|
|
88
|
+
const descriptor = descriptors[key];
|
|
89
|
+
typeof descriptor.value == "function" ? actions[key] = descriptor.value : typeof descriptor.get == "function" ? getters[key] = descriptor.get : key !== "props" && key[0] !== "_" && stateKeys.add(key);
|
|
90
|
+
}
|
|
91
|
+
const keyComparators = storeInstance._comparators,
|
|
92
|
+
listeners = /* @__PURE__ */new Set(),
|
|
93
|
+
storeInfo = {
|
|
94
|
+
uid,
|
|
95
|
+
keyComparators,
|
|
96
|
+
storeInstance,
|
|
97
|
+
getters,
|
|
98
|
+
stateKeys,
|
|
99
|
+
props,
|
|
100
|
+
actions,
|
|
101
|
+
debug: options?.debug,
|
|
102
|
+
disableTracking: !1,
|
|
103
|
+
gettersState: {
|
|
104
|
+
getCache: /* @__PURE__ */new Map(),
|
|
105
|
+
depsToGetter: /* @__PURE__ */new Map(),
|
|
106
|
+
curGetKeys: /* @__PURE__ */new Set(),
|
|
107
|
+
isGetting: !1
|
|
108
|
+
},
|
|
109
|
+
listeners,
|
|
110
|
+
trackers: /* @__PURE__ */new Set(),
|
|
111
|
+
version: 0,
|
|
112
|
+
subscribe: onChanged => (listeners.add(onChanged), () => {
|
|
113
|
+
listeners.delete(onChanged);
|
|
114
|
+
}),
|
|
115
|
+
triggerUpdate: () => {
|
|
116
|
+
storeInfo.version = (storeInfo.version + 1) % Number.MAX_SAFE_INTEGER;
|
|
117
|
+
for (const cb of listeners) cb();
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
store = createProxiedStore(
|
|
121
|
+
// we assign store right after and proxiedStore never accesses it until later on
|
|
122
|
+
storeInfo);
|
|
123
|
+
process.env.NODE_ENV === "development" && (allStores[StoreKlass.name + uid] = store), store.mount?.(), storeInfo.store = store;
|
|
124
|
+
const result = storeInfo;
|
|
125
|
+
return cache.set(uid, result), onCreateListeners.forEach(cb => cb(result)), result;
|
|
126
|
+
}
|
|
127
|
+
const allStores = {};
|
|
128
|
+
process.env.NODE_ENV === "development" && (globalThis.Store ||= allStores);
|
|
129
|
+
const emptyObj = {},
|
|
130
|
+
selectKeys = (obj, keys) => {
|
|
131
|
+
if (!keys.length) return emptyObj;
|
|
132
|
+
const res = {};
|
|
133
|
+
for (const key of keys) res[key] = obj[key];
|
|
134
|
+
return res;
|
|
135
|
+
};
|
|
136
|
+
let isInReaction = !1;
|
|
137
|
+
const setIsInReaction = val => {
|
|
138
|
+
isInReaction = val;
|
|
139
|
+
};
|
|
140
|
+
function useStoreFromInfo(info, userSelector, options) {
|
|
141
|
+
const store = info?.store,
|
|
142
|
+
internal = React.useRef(void 0),
|
|
143
|
+
component = useCurrentComponent();
|
|
144
|
+
internal.current || (internal.current = {
|
|
145
|
+
component,
|
|
146
|
+
tracked: /* @__PURE__ */new Set(),
|
|
147
|
+
last: null,
|
|
148
|
+
lastKeys: null
|
|
149
|
+
});
|
|
150
|
+
const curInternal = internal.current,
|
|
151
|
+
shouldPrintDebug = options?.debug,
|
|
152
|
+
getSnapshot = React.useCallback(() => {
|
|
153
|
+
if (!info || !store) return;
|
|
154
|
+
const curInternal2 = internal.current,
|
|
155
|
+
isTracking = curInternal2.tracked.size,
|
|
156
|
+
keys = [...(isTracking ? curInternal2.tracked : info.stateKeys)],
|
|
157
|
+
nextKeys = `${info.version}${keys.join("")}${userSelector || ""}`,
|
|
158
|
+
lastKeys = curInternal2.lastKeys;
|
|
159
|
+
if (nextKeys === curInternal2.lastKeys) return curInternal2.last;
|
|
160
|
+
curInternal2.lastKeys = nextKeys;
|
|
161
|
+
let snap;
|
|
162
|
+
info.disableTracking = !0;
|
|
163
|
+
const last = curInternal2.last;
|
|
164
|
+
userSelector ? snap = userSelector(store) : snap = selectKeys(store, keys), info.disableTracking = !1;
|
|
165
|
+
const isUnchanged = !userSelector && !isTracking && last || typeof last < "u" && isEqualSubsetShallow(last, snap, {
|
|
166
|
+
keyComparators: info.keyComparators
|
|
167
|
+
});
|
|
168
|
+
return shouldPrintDebug && console.info("\u{1F311} getSnapshot", {
|
|
169
|
+
storeState: selectKeys(store, Object.keys(store)),
|
|
170
|
+
userSelector,
|
|
171
|
+
info,
|
|
172
|
+
isUnchanged,
|
|
173
|
+
component,
|
|
174
|
+
keys,
|
|
175
|
+
last,
|
|
176
|
+
snap,
|
|
177
|
+
curInternal: curInternal2,
|
|
178
|
+
nextKeys,
|
|
179
|
+
lastKeys
|
|
180
|
+
}), isUnchanged ? last : (curInternal2.last = snap, snap);
|
|
181
|
+
}, [store]),
|
|
182
|
+
state = React.useSyncExternalStore(info?.subscribe || idFn, getSnapshot, getSnapshot);
|
|
183
|
+
return !info || !store || !state || userSelector ? state : new Proxy(store, {
|
|
184
|
+
get(target, key) {
|
|
185
|
+
const curVal = Reflect.get(target, key);
|
|
186
|
+
if (isInReaction) return curVal;
|
|
187
|
+
const keyString = key;
|
|
188
|
+
return (info.stateKeys.has(keyString) || keyString in info.getters) && (shouldPrintDebug && console.info("\u{1F440} tracking", keyString), curInternal.tracked.add(keyString)), Reflect.has(state, key) ? Reflect.get(state, key) : curVal;
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
let setters = /* @__PURE__ */new Set();
|
|
193
|
+
const logStack = /* @__PURE__ */new Set();
|
|
194
|
+
function createProxiedStore(storeInfo) {
|
|
195
|
+
const {
|
|
196
|
+
actions,
|
|
197
|
+
storeInstance,
|
|
198
|
+
getters,
|
|
199
|
+
gettersState
|
|
200
|
+
} = storeInfo,
|
|
201
|
+
{
|
|
202
|
+
getCache,
|
|
203
|
+
curGetKeys,
|
|
204
|
+
depsToGetter
|
|
205
|
+
} = gettersState,
|
|
206
|
+
constr = storeInstance.constructor,
|
|
207
|
+
shouldDebug2 = storeInfo.debug ?? DebugStores.has(constr);
|
|
208
|
+
let didSet = !1;
|
|
209
|
+
const wrappedActions = {};
|
|
210
|
+
for (const key in actions) {
|
|
211
|
+
if (key === "subscribe") continue;
|
|
212
|
+
const actionFn = actions[key],
|
|
213
|
+
isGetFn = key.startsWith("get");
|
|
214
|
+
if (wrappedActions[key] = function (...args) {
|
|
215
|
+
let res;
|
|
216
|
+
return isGetFn || gettersState.isGetting ? Reflect.apply(actionFn, proxiedStore, args) : (process.env.NODE_ENV === "development" && shouldDebug2 && console.info("(debug) startAction", key), res = Reflect.apply(actionFn, proxiedStore, args), res instanceof Promise ? res.then(finishAction) : (finishAction(), res));
|
|
217
|
+
}, process.env.NODE_ENV === "development") {
|
|
218
|
+
let hashCode = function (str) {
|
|
219
|
+
let hash = 0;
|
|
220
|
+
for (let i = 0; i < str.length; i++) hash = str.charCodeAt(i) + ((hash << 5) - hash);
|
|
221
|
+
return hash;
|
|
222
|
+
},
|
|
223
|
+
strColor = function (str) {
|
|
224
|
+
return `hsl(${hashCode(str) % 360}, 90%, 40%)`;
|
|
225
|
+
};
|
|
226
|
+
if (!key.startsWith("get") && !key.startsWith("_") && key !== "subscribe") {
|
|
227
|
+
const ogAction = wrappedActions[key];
|
|
228
|
+
wrappedActions[key] = new Proxy(ogAction, {
|
|
229
|
+
apply(target, thisArg, args) {
|
|
230
|
+
const isDebugging = shouldDebug2 || storeInfo.debug;
|
|
231
|
+
if (!(process.env.LOG_LEVEL !== "0" && (isDebugging || configureOpts.logLevel !== "error"))) return Reflect.apply(target, thisArg, args);
|
|
232
|
+
setters = /* @__PURE__ */new Set();
|
|
233
|
+
const curSetters = setters,
|
|
234
|
+
isTopLevelLogger = logStack.size == 0,
|
|
235
|
+
logs = /* @__PURE__ */new Set();
|
|
236
|
+
logStack.add(logs);
|
|
237
|
+
let res;
|
|
238
|
+
const id = counter++;
|
|
239
|
+
try {
|
|
240
|
+
res = Reflect.apply(target, thisArg, args);
|
|
241
|
+
} catch (err) {
|
|
242
|
+
throw console.error("Error", err), err;
|
|
243
|
+
} finally {
|
|
244
|
+
logStack.add("end");
|
|
245
|
+
const name = constr.name,
|
|
246
|
+
color = strColor(name),
|
|
247
|
+
simpleArgs = args.map(simpleStr);
|
|
248
|
+
if (logs.add([`%c \u{1F311} ${id} ${name.padStart(isTopLevelLogger ? 8 : 4)}%c.${key}(${simpleArgs.join(", ")})${isTopLevelLogger && logStack.size > 1 ? ` (+${logStack.size - 1})` : ""}`, `color: ${color};`, "color: black;"]), curSetters.size && curSetters.forEach(({
|
|
249
|
+
key: key2,
|
|
250
|
+
value
|
|
251
|
+
}) => {
|
|
252
|
+
typeof value == "string" || typeof value == "number" || typeof value == "boolean" ? logs.add([` SET ${key2} ${value}`, value]) : logs.add([` SET ${key2}`, value]);
|
|
253
|
+
}), isTopLevelLogger) {
|
|
254
|
+
let error = null;
|
|
255
|
+
try {
|
|
256
|
+
for (const item of logStack) {
|
|
257
|
+
if (item === "end") {
|
|
258
|
+
console.groupEnd();
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
const [head, ...rest] = item;
|
|
262
|
+
if (head) {
|
|
263
|
+
console.groupCollapsed(...head), console.groupCollapsed("..."), console.info("args", args), console.info("response", res), console.groupCollapsed("trace"), console.trace(), console.groupEnd(), console.groupEnd();
|
|
264
|
+
for (const [name2, ...log] of rest) console.groupCollapsed(name2), console.info(...log), console.groupEnd();
|
|
265
|
+
} else console.info("Weird log", head, ...rest);
|
|
266
|
+
}
|
|
267
|
+
} catch (err) {
|
|
268
|
+
error = err;
|
|
269
|
+
}
|
|
270
|
+
for (const _ of logStack) console.groupEnd();
|
|
271
|
+
error && console.error("error loggin", error), logStack.clear();
|
|
272
|
+
}
|
|
273
|
+
return res;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const finishAction = val => (process.env.NODE_ENV === "development" && shouldDebug2 && console.info("(debug) finishAction", {
|
|
281
|
+
didSet
|
|
282
|
+
}), didSet && (storeInfo.triggerUpdate(), didSet = !1), val);
|
|
283
|
+
let isTriggering = !1;
|
|
284
|
+
const proxiedStore = new Proxy(storeInstance, {
|
|
285
|
+
// GET
|
|
286
|
+
get(_, key) {
|
|
287
|
+
if (key in wrappedActions) return wrappedActions[key];
|
|
288
|
+
if (key in passThroughKeys) return Reflect.get(storeInstance, key);
|
|
289
|
+
if (key === UNWRAP_PROXY) return storeInstance;
|
|
290
|
+
if (key === UNWRAP_STORE_INFO) return storeInfo;
|
|
291
|
+
if (storeAccessTrackers.size && storeAccessTrackers.forEach(cb => cb(storeInfo)), typeof key != "string") return Reflect.get(storeInstance, key);
|
|
292
|
+
if (storeInfo.disableTracking || gettersState.isGetting && gettersState.curGetKeys.add(key), key in getters) {
|
|
293
|
+
if (getCache.has(key)) return getCache.get(key);
|
|
294
|
+
curGetKeys.clear();
|
|
295
|
+
const isSubGetter = gettersState.isGetting;
|
|
296
|
+
gettersState.isGetting = !0;
|
|
297
|
+
const res = getters[key].call(proxiedStore);
|
|
298
|
+
isSubGetter || (gettersState.isGetting = !1);
|
|
299
|
+
for (const gk of curGetKeys) depsToGetter.has(gk) || depsToGetter.set(gk, /* @__PURE__ */new Set()), depsToGetter.get(gk).add(key);
|
|
300
|
+
return getCache.set(key, res), res;
|
|
301
|
+
}
|
|
302
|
+
return Reflect.get(storeInstance, key);
|
|
303
|
+
},
|
|
304
|
+
// SET
|
|
305
|
+
set(target, key, value, receiver) {
|
|
306
|
+
const cur = Reflect.get(target, key),
|
|
307
|
+
res = Reflect.set(target, key, value, receiver);
|
|
308
|
+
return res && cur !== value && (typeof key == "string" && (clearGetterCache(key), shouldDebug2 && (setters.add({
|
|
309
|
+
key,
|
|
310
|
+
value
|
|
311
|
+
}), getShouldDebug(storeInfo) && console.info("(debug) SET", res, key, value)), process.env.NODE_ENV === "development" && shouldDebug2 && console.info("SET...", {
|
|
312
|
+
key,
|
|
313
|
+
value
|
|
314
|
+
})), isTriggering || (isTriggering = !0, waitForEventLoop(() => {
|
|
315
|
+
storeInfo.triggerUpdate(), isTriggering = !1;
|
|
316
|
+
}))), res;
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
function clearGetterCache(setKey) {
|
|
320
|
+
const parentGetters = depsToGetter.get(setKey);
|
|
321
|
+
if (getCache.delete(setKey), !!parentGetters) for (const gk of parentGetters) getCache.delete(gk), depsToGetter.has(gk) && clearGetterCache(gk);
|
|
322
|
+
}
|
|
323
|
+
return proxiedStore;
|
|
324
|
+
}
|
|
325
|
+
const waitForEventLoop = process.env.NODE_ENV === "test" ? cb => cb() : queueMicrotask;
|
|
326
|
+
let counter = 0;
|
|
327
|
+
const passThroughKeys = {
|
|
328
|
+
subscribe: !0,
|
|
329
|
+
_version: !0,
|
|
330
|
+
_trackers: !0,
|
|
331
|
+
$$typeof: !0,
|
|
332
|
+
_listeners: !0,
|
|
333
|
+
_enableTracking: !0
|
|
334
|
+
};
|
|
335
|
+
function getShouldDebug(storeInfo) {
|
|
336
|
+
const info = {
|
|
337
|
+
storeInstance: storeInfo.store
|
|
338
|
+
};
|
|
339
|
+
return [...storeInfo.trackers].some(tracker => tracker.component && shouldDebug(tracker.component, info));
|
|
340
|
+
}
|
|
341
|
+
export { allStores, createStore, createUseStore, createUseStoreSelector, getOrCreateStore, getStore, getStoreInfo, onCreateStore, setIsInReaction, trackStoresAccess, useGlobalStore, useGlobalStoreSelector, useStore, useStoreDebug, useStoreSelector };
|
|
342
|
+
//# sourceMappingURL=useStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","isEqualSubsetShallow","configureOpts","UNWRAP_PROXY","defaultOptions","UNWRAP_STORE_INFO","cache","getStoreDescriptors","getStoreUid","simpleStr","DebugStores","shouldDebug","useCurrentComponent","idFn","_","useStore","StoreKlass","props","options","info","getOrCreateStoreInfo","useStoreFromInfo","selector","useStoreDebug","debug","createStore","store","useGlobalStore","instance","uid","constructor","get","Error","useGlobalStoreSelector","createUseStore","createUseStoreSelector","useStoreSelector","storeAccessTrackers","Set","trackStoresAccess","cb","add","delete","getStore","getStoreInfo","getOrCreateStore","refuseCreation","onCreateListeners","onCreateStore","propsKeyCalculated","avoidCache","has","name","storeInstance","getters","actions","stateKeys","descriptors","key","descriptor","value","keyComparators","_comparators","listeners","storeInfo","disableTracking","gettersState","getCache","Map","depsToGetter","curGetKeys","isGetting","trackers","version","subscribe","onChanged","triggerUpdate","Number","MAX_SAFE_INTEGER","createProxiedStore","process","env","NODE_ENV","allStores","mount","result","set","forEach","globalThis","Store","emptyObj","selectKeys","obj","keys","length","res","isInReaction","setIsInReaction","val","userSelector","internal","useRef","component","current","tracked","last","lastKeys","curInternal","shouldPrintDebug","getSnapshot","useCallback","curInternal2","isTracking","size","nextKeys","join","snap","isUnchanged","console","storeState","Object","state","useSyncExternalStore","Proxy","target","curVal","Reflect","keyString","setters","logStack","constr","shouldDebug2","didSet","wrappedActions","actionFn","isGetFn","startsWith","args","apply","proxiedStore","Promise","then","finishAction","hashCode","str","hash","i","charCodeAt","strColor","ogAction","thisArg","isDebugging","LOG_LEVEL","logLevel","curSetters","isTopLevelLogger","logs","id","counter","err","error","color","simpleArgs","map","padStart","key2","item","groupEnd","head","rest","groupCollapsed","trace","name2","log","clear","isTriggering","passThroughKeys","isSubGetter","call","gk","receiver","cur","clearGetterCache","getShouldDebug","waitForEventLoop","setKey","parentGetters","queueMicrotask","_version","_trackers","$$typeof","_listeners","_enableTracking","some","tracker"],"sources":["../../src/useStore.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|