@hanzogui/use-store 2.0.0-rc.41-hanzoai.3

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.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +91 -0
  3. package/dist/cjs/comparators.cjs +41 -0
  4. package/dist/cjs/comparators.native.js +50 -0
  5. package/dist/cjs/comparators.native.js.map +1 -0
  6. package/dist/cjs/configureUseStore.cjs +32 -0
  7. package/dist/cjs/configureUseStore.native.js +35 -0
  8. package/dist/cjs/configureUseStore.native.js.map +1 -0
  9. package/dist/cjs/constants.cjs +33 -0
  10. package/dist/cjs/constants.native.js +36 -0
  11. package/dist/cjs/constants.native.js.map +1 -0
  12. package/dist/cjs/decorators.cjs +33 -0
  13. package/dist/cjs/decorators.native.js +36 -0
  14. package/dist/cjs/decorators.native.js.map +1 -0
  15. package/dist/cjs/helpers.cjs +62 -0
  16. package/dist/cjs/helpers.native.js +71 -0
  17. package/dist/cjs/helpers.native.js.map +1 -0
  18. package/dist/cjs/index.cjs +43 -0
  19. package/dist/cjs/index.native.js +65 -0
  20. package/dist/cjs/index.native.js.map +1 -0
  21. package/dist/cjs/interfaces.cjs +18 -0
  22. package/dist/cjs/interfaces.native.js +21 -0
  23. package/dist/cjs/interfaces.native.js.map +1 -0
  24. package/dist/cjs/observe.cjs +166 -0
  25. package/dist/cjs/observe.native.js +234 -0
  26. package/dist/cjs/observe.native.js.map +1 -0
  27. package/dist/cjs/useStore.cjs +467 -0
  28. package/dist/cjs/useStore.native.js +608 -0
  29. package/dist/cjs/useStore.native.js.map +1 -0
  30. package/dist/cjs/useStoreDebug.cjs +67 -0
  31. package/dist/cjs/useStoreDebug.native.js +71 -0
  32. package/dist/cjs/useStoreDebug.native.js.map +1 -0
  33. package/dist/esm/comparators.mjs +16 -0
  34. package/dist/esm/comparators.mjs.map +1 -0
  35. package/dist/esm/comparators.native.js +22 -0
  36. package/dist/esm/comparators.native.js.map +1 -0
  37. package/dist/esm/configureUseStore.mjs +6 -0
  38. package/dist/esm/configureUseStore.mjs.map +1 -0
  39. package/dist/esm/configureUseStore.native.js +6 -0
  40. package/dist/esm/configureUseStore.native.js.map +1 -0
  41. package/dist/esm/constants.mjs +7 -0
  42. package/dist/esm/constants.mjs.map +1 -0
  43. package/dist/esm/constants.native.js +7 -0
  44. package/dist/esm/constants.native.js.map +1 -0
  45. package/dist/esm/decorators.mjs +8 -0
  46. package/dist/esm/decorators.mjs.map +1 -0
  47. package/dist/esm/decorators.native.js +8 -0
  48. package/dist/esm/decorators.native.js.map +1 -0
  49. package/dist/esm/helpers.mjs +31 -0
  50. package/dist/esm/helpers.mjs.map +1 -0
  51. package/dist/esm/helpers.native.js +37 -0
  52. package/dist/esm/helpers.native.js.map +1 -0
  53. package/dist/esm/index.js +15 -0
  54. package/dist/esm/index.js.map +1 -0
  55. package/dist/esm/index.mjs +15 -0
  56. package/dist/esm/index.mjs.map +1 -0
  57. package/dist/esm/index.native.js +34 -0
  58. package/dist/esm/index.native.js.map +1 -0
  59. package/dist/esm/interfaces.mjs +2 -0
  60. package/dist/esm/interfaces.mjs.map +1 -0
  61. package/dist/esm/interfaces.native.js +2 -0
  62. package/dist/esm/interfaces.native.js.map +1 -0
  63. package/dist/esm/observe.mjs +129 -0
  64. package/dist/esm/observe.mjs.map +1 -0
  65. package/dist/esm/observe.native.js +194 -0
  66. package/dist/esm/observe.native.js.map +1 -0
  67. package/dist/esm/useStore.mjs +417 -0
  68. package/dist/esm/useStore.mjs.map +1 -0
  69. package/dist/esm/useStore.native.js +555 -0
  70. package/dist/esm/useStore.native.js.map +1 -0
  71. package/dist/esm/useStoreDebug.mjs +27 -0
  72. package/dist/esm/useStoreDebug.mjs.map +1 -0
  73. package/dist/esm/useStoreDebug.native.js +28 -0
  74. package/dist/esm/useStoreDebug.native.js.map +1 -0
  75. package/package.json +47 -0
  76. package/src/comparators.tsx +18 -0
  77. package/src/configureUseStore.tsx +7 -0
  78. package/src/constants.tsx +6 -0
  79. package/src/decorators.tsx +8 -0
  80. package/src/helpers.tsx +56 -0
  81. package/src/index.ts +12 -0
  82. package/src/interfaces.tsx +46 -0
  83. package/src/observe.tsx +160 -0
  84. package/src/useStore.tsx +705 -0
  85. package/src/useStoreDebug.tsx +41 -0
@@ -0,0 +1,608 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
36
+ var useStore_exports = {};
37
+ __export(useStore_exports, {
38
+ allStores: () => allStores,
39
+ createStore: () => createStore,
40
+ createUseStore: () => createUseStore,
41
+ createUseStoreSelector: () => createUseStoreSelector,
42
+ getOrCreateStore: () => getOrCreateStore,
43
+ getStore: () => getStore,
44
+ getStoreInfo: () => getStoreInfo,
45
+ onCreateStore: () => onCreateStore,
46
+ setIsInReaction: () => setIsInReaction,
47
+ trackStoresAccess: () => trackStoresAccess,
48
+ useGlobalStore: () => useGlobalStore,
49
+ useGlobalStoreSelector: () => useGlobalStoreSelector,
50
+ useStore: () => useStore,
51
+ useStoreDebug: () => useStoreDebug,
52
+ useStoreSelector: () => useStoreSelector
53
+ });
54
+ module.exports = __toCommonJS(useStore_exports);
55
+ var import_react = __toESM(require("react"), 1);
56
+ var import_comparators = require("./comparators.native.js");
57
+ var import_configureUseStore = require("./configureUseStore.native.js");
58
+ var import_constants = require("./constants.native.js");
59
+ var import_helpers = require("./helpers.native.js");
60
+ var import_useStoreDebug = require("./useStoreDebug.native.js");
61
+ function _instanceof(left, right) {
62
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) return !!right[Symbol.hasInstance](left);else return left instanceof right;
63
+ }
64
+ var idFn = function (_) {
65
+ return _;
66
+ };
67
+ function useStore(StoreKlass, props) {
68
+ var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : import_constants.defaultOptions;
69
+ return useStoreFromInfo(getOrCreateStoreInfo(StoreKlass, props, options), options.selector, options);
70
+ }
71
+ function useStoreDebug(StoreKlass, props) {
72
+ return useStore(StoreKlass, props, {
73
+ debug: true
74
+ });
75
+ }
76
+ function createStore(StoreKlass, props, options) {
77
+ var _getOrCreateStoreInfo;
78
+ return (_getOrCreateStoreInfo = getOrCreateStoreInfo(StoreKlass, props, options)) === null || _getOrCreateStoreInfo === void 0 ? void 0 : _getOrCreateStoreInfo.store;
79
+ }
80
+ function useGlobalStore(instance, debug) {
81
+ var store = instance[import_constants.UNWRAP_PROXY];
82
+ var uid = (0, import_helpers.getStoreUid)(store.constructor, store.props);
83
+ var info = import_helpers.cache.get(uid);
84
+ if (!info) throw new Error(`This store not created using createStore()`);
85
+ return useStoreFromInfo(info, void 0, {
86
+ debug
87
+ });
88
+ }
89
+ function useGlobalStoreSelector(instance, selector, debug) {
90
+ var store = instance[import_constants.UNWRAP_PROXY];
91
+ var uid = (0, import_helpers.getStoreUid)(store.constructor, store.props);
92
+ var info = import_helpers.cache.get(uid);
93
+ if (!info) throw new Error(`This store not created using createStore()`);
94
+ return useStoreFromInfo(info, selector, {
95
+ debug
96
+ });
97
+ }
98
+ function createUseStore(StoreKlass) {
99
+ return function (props, options) {
100
+ return useStore(StoreKlass, props, options);
101
+ };
102
+ }
103
+ function createUseStoreSelector(StoreKlass, selector) {
104
+ return function (props) {
105
+ return useStore(StoreKlass, props, {
106
+ selector
107
+ });
108
+ };
109
+ }
110
+ function useStoreSelector(StoreKlass, selector, props) {
111
+ return useStore(StoreKlass, props, {
112
+ selector
113
+ });
114
+ }
115
+ var storeAccessTrackers = /* @__PURE__ */new Set();
116
+ function trackStoresAccess(cb) {
117
+ storeAccessTrackers.add(cb);
118
+ return function () {
119
+ storeAccessTrackers.delete(cb);
120
+ };
121
+ }
122
+ function getStore(StoreKlass, props) {
123
+ var _getStoreInfo;
124
+ return (_getStoreInfo = getStoreInfo(StoreKlass, props)) === null || _getStoreInfo === void 0 ? void 0 : _getStoreInfo.store;
125
+ }
126
+ function getOrCreateStore(StoreKlass, props) {
127
+ var _getOrCreateStoreInfo;
128
+ return (_getOrCreateStoreInfo = getOrCreateStoreInfo(StoreKlass, props, {
129
+ refuseCreation: false
130
+ })) === null || _getOrCreateStoreInfo === void 0 ? void 0 : _getOrCreateStoreInfo.store;
131
+ }
132
+ function getStoreInfo(StoreKlass, props) {
133
+ return getOrCreateStoreInfo(StoreKlass, props, {
134
+ refuseCreation: true
135
+ });
136
+ }
137
+ var onCreateListeners = /* @__PURE__ */new Set();
138
+ function onCreateStore(cb) {
139
+ onCreateListeners.add(cb);
140
+ return function () {
141
+ onCreateListeners.delete(cb);
142
+ };
143
+ }
144
+ function getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {
145
+ var _store_mount;
146
+ if (!StoreKlass) return null;
147
+ var uid = (0, import_helpers.getStoreUid)(StoreKlass, propsKeyCalculated !== null && propsKeyCalculated !== void 0 ? propsKeyCalculated : props);
148
+ if (!(options === null || options === void 0 ? void 0 : options.avoidCache) && import_helpers.cache.has(uid)) return import_helpers.cache.get(uid);
149
+ if (options === null || options === void 0 ? void 0 : options.refuseCreation) throw new Error(`No store exists (${StoreKlass.name}) with props: ${props}`);
150
+ var storeInstance = new StoreKlass(props);
151
+ storeInstance.props = props;
152
+ var getters = {};
153
+ var actions = {};
154
+ var stateKeys = /* @__PURE__ */new Set();
155
+ var descriptors = (0, import_helpers.getStoreDescriptors)(storeInstance);
156
+ for (var key in descriptors) {
157
+ var descriptor = descriptors[key];
158
+ if (typeof descriptor.value === "function") actions[key] = descriptor.value;else if (typeof descriptor.get === "function") getters[key] = descriptor.get;else if (key !== "props" && key[0] !== "_") stateKeys.add(key);
159
+ }
160
+ var keyComparators = storeInstance["_comparators"];
161
+ var listeners = /* @__PURE__ */new Set();
162
+ var storeInfo = {
163
+ uid,
164
+ keyComparators,
165
+ storeInstance,
166
+ getters,
167
+ stateKeys,
168
+ props,
169
+ actions,
170
+ debug: options === null || options === void 0 ? void 0 : options.debug,
171
+ disableTracking: false,
172
+ gettersState: {
173
+ getCache: /* @__PURE__ */new Map(),
174
+ depsToGetter: /* @__PURE__ */new Map(),
175
+ curGetKeys: /* @__PURE__ */new Set(),
176
+ isGetting: false
177
+ },
178
+ listeners,
179
+ trackers: /* @__PURE__ */new Set(),
180
+ version: 0,
181
+ subscribe: function (onChanged) {
182
+ listeners.add(onChanged);
183
+ return function () {
184
+ listeners.delete(onChanged);
185
+ };
186
+ },
187
+ triggerUpdate: function () {
188
+ storeInfo.version = (storeInfo.version + 1) % Number.MAX_SAFE_INTEGER;
189
+ var _iteratorNormalCompletion = true,
190
+ _didIteratorError = false,
191
+ _iteratorError = void 0;
192
+ try {
193
+ for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
194
+ var cb = _step.value;
195
+ cb();
196
+ }
197
+ } catch (err) {
198
+ _didIteratorError = true;
199
+ _iteratorError = err;
200
+ } finally {
201
+ try {
202
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
203
+ } finally {
204
+ if (_didIteratorError) throw _iteratorError;
205
+ }
206
+ }
207
+ }
208
+ };
209
+ var store = createProxiedStore(
210
+ // we assign store right after and proxiedStore never accesses it until later on
211
+ storeInfo);
212
+ if (process.env.NODE_ENV === "development") allStores[StoreKlass.name + uid] = store;
213
+ (_store_mount = store.mount) === null || _store_mount === void 0 || _store_mount.call(store);
214
+ storeInfo.store = store;
215
+ var result = storeInfo;
216
+ import_helpers.cache.set(uid, result);
217
+ onCreateListeners.forEach(function (cb) {
218
+ return cb(result);
219
+ });
220
+ return result;
221
+ }
222
+ var allStores = {};
223
+ if (process.env.NODE_ENV === "development") {
224
+ var _globalThis, _Store;
225
+ (_globalThis = globalThis)[_Store = "Store"] || (_globalThis[_Store] = allStores);
226
+ }
227
+ var emptyObj = {};
228
+ var selectKeys = function (obj, keys) {
229
+ if (!keys.length) return emptyObj;
230
+ var res = {};
231
+ var _iteratorNormalCompletion = true,
232
+ _didIteratorError = false,
233
+ _iteratorError = void 0;
234
+ try {
235
+ for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
236
+ var key = _step.value;
237
+ res[key] = obj[key];
238
+ }
239
+ } catch (err) {
240
+ _didIteratorError = true;
241
+ _iteratorError = err;
242
+ } finally {
243
+ try {
244
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
245
+ } finally {
246
+ if (_didIteratorError) throw _iteratorError;
247
+ }
248
+ }
249
+ return res;
250
+ };
251
+ var isInReaction = false;
252
+ var setIsInReaction = function (val) {
253
+ isInReaction = val;
254
+ };
255
+ function useStoreFromInfo(info, userSelector, options) {
256
+ var store = info === null || info === void 0 ? void 0 : info.store;
257
+ var internal = import_react.default.useRef(void 0);
258
+ var component = (0, import_useStoreDebug.useCurrentComponent)();
259
+ if (!internal.current) internal.current = {
260
+ component,
261
+ tracked: /* @__PURE__ */new Set(),
262
+ last: null,
263
+ lastKeys: null
264
+ };
265
+ var curInternal = internal.current;
266
+ var shouldPrintDebug = options === null || options === void 0 ? void 0 : options.debug;
267
+ var getSnapshot = import_react.default.useCallback(function () {
268
+ if (!info || !store) return;
269
+ var curInternal2 = internal.current;
270
+ var isTracking = curInternal2.tracked.size;
271
+ var keys = [...(!isTracking ? info.stateKeys : curInternal2.tracked)];
272
+ var nextKeys = `${info.version}${keys.join("")}${userSelector || ""}`;
273
+ var lastKeys = curInternal2.lastKeys;
274
+ if (nextKeys === curInternal2.lastKeys) return curInternal2.last;
275
+ curInternal2.lastKeys = nextKeys;
276
+ var snap;
277
+ info.disableTracking = true;
278
+ var last = curInternal2.last;
279
+ if (userSelector) snap = userSelector(store);else snap = selectKeys(store, keys);
280
+ info.disableTracking = false;
281
+ var isUnchanged = !userSelector && !isTracking && last || typeof last !== "undefined" && (0, import_comparators.isEqualSubsetShallow)(last, snap, {
282
+ keyComparators: info.keyComparators
283
+ });
284
+ if (shouldPrintDebug) console.info("🌑 getSnapshot", {
285
+ storeState: selectKeys(store, Object.keys(store)),
286
+ userSelector,
287
+ info,
288
+ isUnchanged,
289
+ component,
290
+ keys,
291
+ last,
292
+ snap,
293
+ curInternal: curInternal2,
294
+ nextKeys,
295
+ lastKeys
296
+ });
297
+ if (isUnchanged) return last;
298
+ curInternal2.last = snap;
299
+ return snap;
300
+ }, [store]);
301
+ var state = import_react.default.useSyncExternalStore((info === null || info === void 0 ? void 0 : info.subscribe) || idFn, getSnapshot, getSnapshot);
302
+ if (!info || !store || !state) return state;
303
+ if (userSelector) return state;
304
+ return new Proxy(store, {
305
+ get(target, key) {
306
+ var curVal = Reflect.get(target, key);
307
+ if (isInReaction) return curVal;
308
+ var keyString = key;
309
+ if (info.stateKeys.has(keyString) || keyString in info.getters) {
310
+ if (shouldPrintDebug) console.info("👀 tracking", keyString);
311
+ curInternal.tracked.add(keyString);
312
+ }
313
+ if (Reflect.has(state, key)) return Reflect.get(state, key);
314
+ return curVal;
315
+ }
316
+ });
317
+ }
318
+ var setters = /* @__PURE__ */new Set();
319
+ var logStack = /* @__PURE__ */new Set();
320
+ function createProxiedStore(storeInfo) {
321
+ var _loop = function (key2) {
322
+ if (key2 === "subscribe") return "continue";
323
+ var actionFn = actions[key2];
324
+ var isGetFn = key2.startsWith("get");
325
+ wrappedActions[key2] = function useStoreAction() {
326
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
327
+ var res;
328
+ if (isGetFn || gettersState.isGetting) return Reflect.apply(actionFn, proxiedStore, args);
329
+ if (process.env.NODE_ENV === "development" && shouldDebug2) console.info("(debug) startAction", key2);
330
+ res = Reflect.apply(actionFn, proxiedStore, args);
331
+ if (_instanceof(res, Promise)) return res.then(finishAction);
332
+ finishAction();
333
+ return res;
334
+ };
335
+ if (process.env.NODE_ENV === "development") {
336
+ let hashCode2 = function (str) {
337
+ var hash = 0;
338
+ for (var i = 0; i < str.length; i++) hash = str.charCodeAt(i) + ((hash << 5) - hash);
339
+ return hash;
340
+ },
341
+ strColor2 = function (str) {
342
+ return `hsl(${hashCode2(str) % 360}, 90%, 40%)`;
343
+ };
344
+ if (!key2.startsWith("get") && !key2.startsWith("_") && key2 !== "subscribe") {
345
+ var ogAction = wrappedActions[key2];
346
+ wrappedActions[key2] = new Proxy(ogAction, {
347
+ apply(target, thisArg, args) {
348
+ var isDebugging = shouldDebug2 || storeInfo.debug;
349
+ if (!(process.env.LOG_LEVEL !== "0" && (isDebugging || import_configureUseStore.configureOpts.logLevel !== "error"))) return Reflect.apply(target, thisArg, args);
350
+ setters = /* @__PURE__ */new Set();
351
+ var curSetters = setters;
352
+ var isTopLevelLogger = logStack.size == 0;
353
+ var logs = /* @__PURE__ */new Set();
354
+ logStack.add(logs);
355
+ var res;
356
+ var id = counter++;
357
+ try {
358
+ res = Reflect.apply(target, thisArg, args);
359
+ } catch (err) {
360
+ console.error("Error", err);
361
+ throw err;
362
+ } finally {
363
+ logStack.add("end");
364
+ var name = constr.name;
365
+ var color = strColor2(name);
366
+ var simpleArgs = args.map(import_helpers.simpleStr);
367
+ logs.add([`%c \u{1F311} ${id} ${name.padStart(isTopLevelLogger ? 8 : 4)}%c.${key2}(${simpleArgs.join(", ")})${isTopLevelLogger && logStack.size > 1 ? ` (+${logStack.size - 1})` : ""}`, `color: ${color};`, "color: black;"]);
368
+ if (curSetters.size) curSetters.forEach(function (param) {
369
+ var {
370
+ key: key3,
371
+ value
372
+ } = param;
373
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") logs.add([` SET ${key3} ${value}`, value]);else logs.add([` SET ${key3}`, value]);
374
+ });
375
+ if (isTopLevelLogger) {
376
+ var error = null;
377
+ try {
378
+ var _iteratorNormalCompletion = true,
379
+ _didIteratorError = false,
380
+ _iteratorError = void 0;
381
+ try {
382
+ for (var _iterator = logStack[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
383
+ var item = _step.value;
384
+ if (item === "end") {
385
+ console.groupEnd();
386
+ continue;
387
+ }
388
+ var [head, ...rest] = item;
389
+ if (head) {
390
+ console.groupCollapsed(...head);
391
+ console.groupCollapsed("...");
392
+ console.info("args", args);
393
+ console.info("response", res);
394
+ console.groupCollapsed("trace");
395
+ console.trace();
396
+ console.groupEnd();
397
+ console.groupEnd();
398
+ var _iteratorNormalCompletion1 = true,
399
+ _didIteratorError1 = false,
400
+ _iteratorError1 = void 0;
401
+ try {
402
+ for (var _iterator1 = rest[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
403
+ var [name1, ...log] = _step1.value;
404
+ console.groupCollapsed(name1);
405
+ console.info(...log);
406
+ console.groupEnd();
407
+ }
408
+ } catch (err) {
409
+ _didIteratorError1 = true;
410
+ _iteratorError1 = err;
411
+ } finally {
412
+ try {
413
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();
414
+ } finally {
415
+ if (_didIteratorError1) throw _iteratorError1;
416
+ }
417
+ }
418
+ } else console.info("Weird log", head, ...rest);
419
+ }
420
+ } catch (err) {
421
+ _didIteratorError = true;
422
+ _iteratorError = err;
423
+ } finally {
424
+ try {
425
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
426
+ } finally {
427
+ if (_didIteratorError) throw _iteratorError;
428
+ }
429
+ }
430
+ } catch (err) {
431
+ error = err;
432
+ }
433
+ var _iteratorNormalCompletion2 = true,
434
+ _didIteratorError2 = false,
435
+ _iteratorError2 = void 0;
436
+ try {
437
+ for (var _iterator2 = logStack[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
438
+ _step2.value;
439
+ console.groupEnd();
440
+ }
441
+ } catch (err) {
442
+ _didIteratorError2 = true;
443
+ _iteratorError2 = err;
444
+ } finally {
445
+ try {
446
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) _iterator2.return();
447
+ } finally {
448
+ if (_didIteratorError2) throw _iteratorError2;
449
+ }
450
+ }
451
+ if (error) console.error(`error loggin`, error);
452
+ logStack.clear();
453
+ }
454
+ return res;
455
+ }
456
+ }
457
+ });
458
+ }
459
+ }
460
+ };
461
+ var {
462
+ actions,
463
+ storeInstance,
464
+ getters,
465
+ gettersState
466
+ } = storeInfo;
467
+ var {
468
+ getCache,
469
+ curGetKeys,
470
+ depsToGetter
471
+ } = gettersState;
472
+ var constr = storeInstance.constructor;
473
+ var _storeInfo_debug;
474
+ var shouldDebug2 = (_storeInfo_debug = storeInfo.debug) !== null && _storeInfo_debug !== void 0 ? _storeInfo_debug : import_useStoreDebug.DebugStores.has(constr);
475
+ var didSet = false;
476
+ var wrappedActions = {};
477
+ for (var key in actions) _loop(key);
478
+ var finishAction = function (val) {
479
+ if (process.env.NODE_ENV === "development" && shouldDebug2) console.info("(debug) finishAction", {
480
+ didSet
481
+ });
482
+ if (didSet) {
483
+ storeInfo.triggerUpdate();
484
+ didSet = false;
485
+ }
486
+ return val;
487
+ };
488
+ var isTriggering = false;
489
+ var proxiedStore = new Proxy(storeInstance, {
490
+ get(_, key2) {
491
+ if (key2 in wrappedActions) return wrappedActions[key2];
492
+ if (key2 in passThroughKeys) return Reflect.get(storeInstance, key2);
493
+ if (key2 === import_constants.UNWRAP_PROXY) return storeInstance;
494
+ if (key2 === import_helpers.UNWRAP_STORE_INFO) return storeInfo;
495
+ if (storeAccessTrackers.size) storeAccessTrackers.forEach(function (cb) {
496
+ return cb(storeInfo);
497
+ });
498
+ if (typeof key2 !== "string") return Reflect.get(storeInstance, key2);
499
+ if (!storeInfo.disableTracking) {
500
+ if (gettersState.isGetting) gettersState.curGetKeys.add(key2);
501
+ }
502
+ if (key2 in getters) {
503
+ if (getCache.has(key2)) return getCache.get(key2);
504
+ curGetKeys.clear();
505
+ var isSubGetter = gettersState.isGetting;
506
+ gettersState.isGetting = true;
507
+ var res = getters[key2].call(proxiedStore);
508
+ if (!isSubGetter) gettersState.isGetting = false;
509
+ var _iteratorNormalCompletion = true,
510
+ _didIteratorError = false,
511
+ _iteratorError = void 0;
512
+ try {
513
+ for (var _iterator = curGetKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
514
+ var gk = _step.value;
515
+ if (!depsToGetter.has(gk)) depsToGetter.set(gk, /* @__PURE__ */new Set());
516
+ depsToGetter.get(gk).add(key2);
517
+ }
518
+ } catch (err) {
519
+ _didIteratorError = true;
520
+ _iteratorError = err;
521
+ } finally {
522
+ try {
523
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
524
+ } finally {
525
+ if (_didIteratorError) throw _iteratorError;
526
+ }
527
+ }
528
+ getCache.set(key2, res);
529
+ return res;
530
+ }
531
+ return Reflect.get(storeInstance, key2);
532
+ },
533
+ set(target, key2, value, receiver) {
534
+ var cur = Reflect.get(target, key2);
535
+ var res = Reflect.set(target, key2, value, receiver);
536
+ if (res && cur !== value) {
537
+ if (typeof key2 === "string") {
538
+ clearGetterCache(key2);
539
+ if (shouldDebug2) {
540
+ setters.add({
541
+ key: key2,
542
+ value
543
+ });
544
+ if (getShouldDebug(storeInfo)) console.info("(debug) SET", res, key2, value);
545
+ }
546
+ if (process.env.NODE_ENV === "development" && shouldDebug2) console.info("SET...", {
547
+ key: key2,
548
+ value
549
+ });
550
+ }
551
+ if (!isTriggering) {
552
+ isTriggering = true;
553
+ waitForEventLoop(function () {
554
+ storeInfo.triggerUpdate();
555
+ isTriggering = false;
556
+ });
557
+ }
558
+ }
559
+ return res;
560
+ }
561
+ });
562
+ function clearGetterCache(setKey) {
563
+ var parentGetters = depsToGetter.get(setKey);
564
+ getCache.delete(setKey);
565
+ if (!parentGetters) return;
566
+ var _iteratorNormalCompletion = true,
567
+ _didIteratorError = false,
568
+ _iteratorError = void 0;
569
+ try {
570
+ for (var _iterator = parentGetters[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
571
+ var gk = _step.value;
572
+ getCache.delete(gk);
573
+ if (depsToGetter.has(gk)) clearGetterCache(gk);
574
+ }
575
+ } catch (err) {
576
+ _didIteratorError = true;
577
+ _iteratorError = err;
578
+ } finally {
579
+ try {
580
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
581
+ } finally {
582
+ if (_didIteratorError) throw _iteratorError;
583
+ }
584
+ }
585
+ }
586
+ return proxiedStore;
587
+ }
588
+ var waitForEventLoop = (process.env.NODE_ENV, function (cb) {
589
+ return cb();
590
+ });
591
+ var counter = 0;
592
+ var passThroughKeys = {
593
+ subscribe: true,
594
+ _version: true,
595
+ _trackers: true,
596
+ $$typeof: true,
597
+ _listeners: true,
598
+ _enableTracking: true
599
+ };
600
+ function getShouldDebug(storeInfo) {
601
+ var info = {
602
+ storeInstance: storeInfo.store
603
+ };
604
+ return [...storeInfo.trackers].some(function (tracker) {
605
+ return tracker.component && (0, import_useStoreDebug.shouldDebug)(tracker.component, info);
606
+ });
607
+ }
608
+ //# sourceMappingURL=useStore.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isNodeMode","mod","__esModule","__defProp","target","value","enumerable","__toCommonJS","__copyProps","useStore_exports","__export","allStores","createStore","createUseStore","createUseStoreSelector","getOrCreateStore","getStore","getStoreInfo","onCreateStore","setIsInReaction","trackStoresAccess","useGlobalStore","useGlobalStoreSelector","useStore","useStoreDebug","useStoreSelector","module","exports","import_react","__toESM","require","import_comparators","import_configureUseStore","import_constants","import_helpers","import_useStoreDebug","_instanceof","left","right","Symbol","hasInstance","idFn","_","StoreKlass","props","options","arguments","length","defaultOptions","useStoreFromInfo","getOrCreateStoreInfo","selector","debug","_getOrCreateStoreInfo","store","instance","UNWRAP_PROXY","uid","getStoreUid","constructor","info","cache","get","Error","storeAccessTrackers","Set","cb","add","delete","_getStoreInfo","refuseCreation","onCreateListeners","propsKeyCalculated","_store_mount","avoidCache","has","name","storeInstance","getters","actions","stateKeys","descriptors","getStoreDescriptors","key","descriptor","keyComparators","listeners","storeInfo","disableTracking","gettersState","getCache","Map","depsToGetter","curGetKeys","isGetting","trackers","version","subscribe","onChanged","triggerUpdate","Number","MAX_SAFE_INTEGER","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","err","return","createProxiedStore","process","env","NODE_ENV","mount","call","result","set","forEach","_globalThis","_Store","globalThis","emptyObj","selectKeys","obj","keys","res","isInReaction","val","curInternal","userSelector","internal","default","useRef","component","useCurrentComponent","current","tracked","last","lastKeys","shouldPrintDebug","getSnapshot","useCallback","curInternal2","isTracking","size","nextKeys","join","snap","isUnchanged","isEqualSubsetShallow","console","storeState","Object","state","useSyncExternalStore","Proxy","curVal","Reflect","keyString","setters","logStack","_loop","key2","actionFn","isGetFn","startsWith","wrappedActions","useStoreAction","_len","args","Array","_key","apply","proxiedStore","shouldDebug2","Promise","then","finishAction","hashCode2","str","hash","i","charCodeAt","strColor2","ogAction","thisArg","isDebugging","LOG_LEVEL","configureOpts","logLevel","curSetters","isTopLevelLogger","logs","id","counter","error","constr","color","simpleArgs","map","simpleStr","padStart","param","key3","item","groupEnd","head","rest","groupCollapsed","trace","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","name1","log","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","clear","_storeInfo_debug","DebugStores","didSet","isTriggering","passThroughKeys","UNWRAP_STORE_INFO","isSubGetter","gk","receiver","cur","clearGetterCache","getShouldDebug","waitForEventLoop","setKey","parentGetters"],"sources":["../../src/useStore.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}