@hanzogui/use-store 8.3.0 → 8.3.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.
Files changed (139) hide show
  1. package/dist/cjs/comparators.js +21 -0
  2. package/dist/cjs/comparators.js.map +1 -0
  3. package/dist/cjs/configureUseStore.js +9 -0
  4. package/dist/cjs/configureUseStore.js.map +1 -0
  5. package/dist/cjs/constants.js +9 -0
  6. package/dist/cjs/constants.js.map +1 -0
  7. package/dist/cjs/decorators.js +10 -0
  8. package/dist/cjs/decorators.js.map +1 -0
  9. package/dist/cjs/helpers.js +50 -0
  10. package/dist/cjs/helpers.js.map +1 -0
  11. package/dist/cjs/index.js +21 -0
  12. package/dist/cjs/index.js.map +1 -0
  13. package/dist/cjs/interfaces.js +3 -0
  14. package/dist/cjs/interfaces.js.map +1 -0
  15. package/dist/cjs/observe.js +141 -0
  16. package/dist/cjs/observe.js.map +1 -0
  17. package/dist/cjs/package.json +1 -0
  18. package/dist/cjs/useStore.js +574 -0
  19. package/dist/cjs/useStore.js.map +1 -0
  20. package/dist/cjs/useStoreDebug.js +41 -0
  21. package/dist/cjs/useStoreDebug.js.map +1 -0
  22. package/dist/esm/comparators.js +17 -0
  23. package/dist/esm/comparators.js.map +1 -0
  24. package/dist/esm/configureUseStore.js +5 -0
  25. package/dist/esm/configureUseStore.js.map +1 -0
  26. package/dist/esm/constants.js +6 -0
  27. package/dist/esm/constants.js.map +1 -0
  28. package/dist/esm/decorators.js +7 -0
  29. package/dist/esm/decorators.js.map +1 -0
  30. package/dist/esm/helpers.js +42 -0
  31. package/dist/esm/helpers.js.map +1 -0
  32. package/dist/esm/index.js +13 -14
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/interfaces.js +2 -0
  35. package/dist/esm/interfaces.js.map +1 -0
  36. package/dist/esm/observe.js +136 -0
  37. package/dist/esm/observe.js.map +1 -0
  38. package/dist/esm/useStore.js +556 -0
  39. package/dist/esm/useStore.js.map +1 -0
  40. package/dist/esm/useStoreDebug.js +34 -0
  41. package/dist/esm/useStoreDebug.js.map +1 -0
  42. package/package.json +18 -18
  43. package/src/configureUseStore.tsx +1 -1
  44. package/src/helpers.tsx +1 -1
  45. package/src/index.ts +7 -7
  46. package/src/interfaces.tsx +1 -1
  47. package/src/observe.tsx +4 -4
  48. package/src/useStore.tsx +6 -6
  49. package/src/useStoreDebug.tsx +1 -1
  50. package/types/comparators.d.ts +6 -0
  51. package/types/comparators.d.ts.map +1 -0
  52. package/types/configureUseStore.d.ts +4 -0
  53. package/types/configureUseStore.d.ts.map +1 -0
  54. package/types/constants.d.ts +6 -0
  55. package/types/constants.d.ts.map +1 -0
  56. package/types/decorators.d.ts +3 -0
  57. package/types/decorators.d.ts.map +1 -0
  58. package/types/helpers.d.ts +11 -0
  59. package/types/helpers.d.ts.map +1 -0
  60. package/types/index.d.ts +12 -0
  61. package/types/index.d.ts.map +1 -0
  62. package/types/interfaces.d.ts +43 -0
  63. package/types/interfaces.d.ts.map +1 -0
  64. package/types/observe.d.ts +6 -0
  65. package/types/observe.d.ts.map +1 -0
  66. package/types/useStore.d.ts +26 -0
  67. package/types/useStore.d.ts.map +1 -0
  68. package/types/useStoreDebug.d.ts +7 -0
  69. package/types/useStoreDebug.d.ts.map +1 -0
  70. package/dist/cjs/comparators.cjs +0 -41
  71. package/dist/cjs/comparators.native.js +0 -50
  72. package/dist/cjs/comparators.native.js.map +0 -1
  73. package/dist/cjs/configureUseStore.cjs +0 -32
  74. package/dist/cjs/configureUseStore.native.js +0 -35
  75. package/dist/cjs/configureUseStore.native.js.map +0 -1
  76. package/dist/cjs/constants.cjs +0 -33
  77. package/dist/cjs/constants.native.js +0 -36
  78. package/dist/cjs/constants.native.js.map +0 -1
  79. package/dist/cjs/decorators.cjs +0 -33
  80. package/dist/cjs/decorators.native.js +0 -36
  81. package/dist/cjs/decorators.native.js.map +0 -1
  82. package/dist/cjs/helpers.cjs +0 -62
  83. package/dist/cjs/helpers.native.js +0 -71
  84. package/dist/cjs/helpers.native.js.map +0 -1
  85. package/dist/cjs/index.cjs +0 -43
  86. package/dist/cjs/index.native.js +0 -65
  87. package/dist/cjs/index.native.js.map +0 -1
  88. package/dist/cjs/interfaces.cjs +0 -18
  89. package/dist/cjs/interfaces.native.js +0 -21
  90. package/dist/cjs/interfaces.native.js.map +0 -1
  91. package/dist/cjs/observe.cjs +0 -166
  92. package/dist/cjs/observe.native.js +0 -234
  93. package/dist/cjs/observe.native.js.map +0 -1
  94. package/dist/cjs/useStore.cjs +0 -467
  95. package/dist/cjs/useStore.native.js +0 -608
  96. package/dist/cjs/useStore.native.js.map +0 -1
  97. package/dist/cjs/useStoreDebug.cjs +0 -67
  98. package/dist/cjs/useStoreDebug.native.js +0 -71
  99. package/dist/cjs/useStoreDebug.native.js.map +0 -1
  100. package/dist/esm/comparators.mjs +0 -16
  101. package/dist/esm/comparators.mjs.map +0 -1
  102. package/dist/esm/comparators.native.js +0 -22
  103. package/dist/esm/comparators.native.js.map +0 -1
  104. package/dist/esm/configureUseStore.mjs +0 -6
  105. package/dist/esm/configureUseStore.mjs.map +0 -1
  106. package/dist/esm/configureUseStore.native.js +0 -6
  107. package/dist/esm/configureUseStore.native.js.map +0 -1
  108. package/dist/esm/constants.mjs +0 -7
  109. package/dist/esm/constants.mjs.map +0 -1
  110. package/dist/esm/constants.native.js +0 -7
  111. package/dist/esm/constants.native.js.map +0 -1
  112. package/dist/esm/decorators.mjs +0 -8
  113. package/dist/esm/decorators.mjs.map +0 -1
  114. package/dist/esm/decorators.native.js +0 -8
  115. package/dist/esm/decorators.native.js.map +0 -1
  116. package/dist/esm/helpers.mjs +0 -31
  117. package/dist/esm/helpers.mjs.map +0 -1
  118. package/dist/esm/helpers.native.js +0 -37
  119. package/dist/esm/helpers.native.js.map +0 -1
  120. package/dist/esm/index.mjs +0 -15
  121. package/dist/esm/index.mjs.map +0 -1
  122. package/dist/esm/index.native.js +0 -34
  123. package/dist/esm/index.native.js.map +0 -1
  124. package/dist/esm/interfaces.mjs +0 -2
  125. package/dist/esm/interfaces.mjs.map +0 -1
  126. package/dist/esm/interfaces.native.js +0 -2
  127. package/dist/esm/interfaces.native.js.map +0 -1
  128. package/dist/esm/observe.mjs +0 -129
  129. package/dist/esm/observe.mjs.map +0 -1
  130. package/dist/esm/observe.native.js +0 -194
  131. package/dist/esm/observe.native.js.map +0 -1
  132. package/dist/esm/useStore.mjs +0 -415
  133. package/dist/esm/useStore.mjs.map +0 -1
  134. package/dist/esm/useStore.native.js +0 -553
  135. package/dist/esm/useStore.native.js.map +0 -1
  136. package/dist/esm/useStoreDebug.mjs +0 -27
  137. package/dist/esm/useStoreDebug.mjs.map +0 -1
  138. package/dist/esm/useStoreDebug.native.js +0 -28
  139. package/dist/esm/useStoreDebug.native.js.map +0 -1
@@ -0,0 +1,556 @@
1
+ import React from 'react';
2
+ import { isEqualSubsetShallow } from './comparators.js';
3
+ import { configureOpts } from './configureUseStore.js';
4
+ import { UNWRAP_PROXY, defaultOptions } from './constants.js';
5
+ import { UNWRAP_STORE_INFO, cache, getStoreDescriptors, getStoreUid, simpleStr, } from './helpers.js';
6
+ import { DebugStores, shouldDebug, useCurrentComponent } from './useStoreDebug.js';
7
+ const idFn = (_) => _;
8
+ // no singleton, just react
9
+ export function useStore(StoreKlass, props, options = defaultOptions) {
10
+ const info = getOrCreateStoreInfo(StoreKlass, props, options);
11
+ return useStoreFromInfo(info, options.selector, options);
12
+ }
13
+ export function useStoreDebug(StoreKlass, props) {
14
+ return useStore(StoreKlass, props, { debug: true });
15
+ }
16
+ // singleton
17
+ export function createStore(StoreKlass, props, options) {
18
+ return getOrCreateStoreInfo(StoreKlass, props, options)?.store;
19
+ }
20
+ // use singleton with react
21
+ // TODO selector support with types...
22
+ export function useGlobalStore(instance, debug) {
23
+ const store = instance[UNWRAP_PROXY];
24
+ const uid = getStoreUid(store.constructor, store.props);
25
+ const info = cache.get(uid);
26
+ if (!info) {
27
+ throw new Error(`This store not created using createStore()`);
28
+ }
29
+ return useStoreFromInfo(info, undefined, { debug });
30
+ }
31
+ export function useGlobalStoreSelector(instance, selector, debug) {
32
+ const store = instance[UNWRAP_PROXY];
33
+ const uid = getStoreUid(store.constructor, store.props);
34
+ const info = cache.get(uid);
35
+ if (!info) {
36
+ throw new Error(`This store not created using createStore()`);
37
+ }
38
+ return useStoreFromInfo(info, selector, { debug });
39
+ }
40
+ // for creating a usable store hook
41
+ export function createUseStore(StoreKlass) {
42
+ return (props, options) => useStore(StoreKlass, props, options);
43
+ }
44
+ // for creating a usable selector hook
45
+ export function createUseStoreSelector(StoreKlass, selector) {
46
+ return (props) => {
47
+ return useStore(StoreKlass, props, { selector });
48
+ };
49
+ }
50
+ // selector hook
51
+ export function useStoreSelector(StoreKlass, selector, props) {
52
+ return useStore(StoreKlass, props, { selector });
53
+ }
54
+ const storeAccessTrackers = new Set();
55
+ export function trackStoresAccess(cb) {
56
+ storeAccessTrackers.add(cb);
57
+ return () => {
58
+ storeAccessTrackers.delete(cb);
59
+ };
60
+ }
61
+ export function getStore(StoreKlass, props) {
62
+ return getStoreInfo(StoreKlass, props)?.store;
63
+ }
64
+ export function getOrCreateStore(StoreKlass, props) {
65
+ return getOrCreateStoreInfo(StoreKlass, props, {
66
+ refuseCreation: false,
67
+ })?.store;
68
+ }
69
+ // just like getOrCreateStoreInfo but refuses to create
70
+ export function getStoreInfo(StoreKlass, props) {
71
+ return getOrCreateStoreInfo(StoreKlass, props, {
72
+ refuseCreation: true,
73
+ });
74
+ }
75
+ const onCreateListeners = new Set();
76
+ export function onCreateStore(cb) {
77
+ onCreateListeners.add(cb);
78
+ return () => {
79
+ onCreateListeners.delete(cb);
80
+ };
81
+ }
82
+ function getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {
83
+ if (!StoreKlass) {
84
+ return null;
85
+ }
86
+ const uid = getStoreUid(StoreKlass, propsKeyCalculated ?? props);
87
+ if (!options?.avoidCache && cache.has(uid)) {
88
+ return cache.get(uid);
89
+ }
90
+ if (options?.refuseCreation) {
91
+ throw new Error(`No store exists (${StoreKlass.name}) with props: ${props}`);
92
+ }
93
+ // init
94
+ const storeInstance = new StoreKlass(props);
95
+ // add props
96
+ storeInstance.props = props;
97
+ const getters = {};
98
+ const actions = {};
99
+ const stateKeys = new Set();
100
+ const descriptors = getStoreDescriptors(storeInstance);
101
+ for (const key in descriptors) {
102
+ const descriptor = descriptors[key];
103
+ if (typeof descriptor.value === 'function') {
104
+ // actions
105
+ actions[key] = descriptor.value;
106
+ }
107
+ else if (typeof descriptor.get === 'function') {
108
+ getters[key] = descriptor.get;
109
+ }
110
+ else {
111
+ if (key !== 'props' && key[0] !== '_') {
112
+ stateKeys.add(key);
113
+ }
114
+ }
115
+ }
116
+ const keyComparators = storeInstance['_comparators'];
117
+ const listeners = new Set();
118
+ const storeInfo = {
119
+ uid,
120
+ keyComparators,
121
+ storeInstance,
122
+ getters,
123
+ stateKeys,
124
+ props,
125
+ actions,
126
+ debug: options?.debug,
127
+ disableTracking: false,
128
+ gettersState: {
129
+ getCache: new Map(),
130
+ depsToGetter: new Map(),
131
+ curGetKeys: new Set(),
132
+ isGetting: false,
133
+ },
134
+ listeners,
135
+ trackers: new Set(),
136
+ version: 0,
137
+ subscribe: (onChanged) => {
138
+ listeners.add(onChanged);
139
+ return () => {
140
+ listeners.delete(onChanged);
141
+ };
142
+ },
143
+ triggerUpdate: () => {
144
+ storeInfo.version = (storeInfo.version + 1) % Number.MAX_SAFE_INTEGER;
145
+ for (const cb of listeners) {
146
+ cb();
147
+ }
148
+ },
149
+ };
150
+ const store = createProxiedStore(
151
+ // we assign store right after and proxiedStore never accesses it until later on
152
+ storeInfo);
153
+ // uses more memory when on
154
+ if (process.env.NODE_ENV === 'development') {
155
+ allStores[StoreKlass.name + uid] = store;
156
+ }
157
+ // if has a mount function call it
158
+ store.mount?.();
159
+ // @ts-ignore
160
+ storeInfo.store = store;
161
+ const result = storeInfo;
162
+ // still set even when avoidCache is true (hmr)
163
+ cache.set(uid, result);
164
+ onCreateListeners.forEach((cb) => cb(result));
165
+ return result;
166
+ }
167
+ export const allStores = {};
168
+ if (process.env.NODE_ENV === 'development') {
169
+ globalThis['Store'] || (globalThis['Store'] = allStores);
170
+ }
171
+ const emptyObj = {};
172
+ const selectKeys = (obj, keys) => {
173
+ if (!keys.length) {
174
+ return emptyObj;
175
+ }
176
+ const res = {};
177
+ for (const key of keys) {
178
+ res[key] = obj[key];
179
+ }
180
+ return res;
181
+ };
182
+ let isInReaction = false;
183
+ export const setIsInReaction = (val) => {
184
+ isInReaction = val;
185
+ };
186
+ function useStoreFromInfo(info, userSelector, options) {
187
+ const store = info?.store;
188
+ const internal = React.useRef(undefined);
189
+ const component = useCurrentComponent();
190
+ if (!internal.current) {
191
+ internal.current = {
192
+ component,
193
+ tracked: new Set(),
194
+ last: null,
195
+ lastKeys: null,
196
+ };
197
+ }
198
+ const curInternal = internal.current;
199
+ const shouldPrintDebug = options?.debug;
200
+ const getSnapshot = React.useCallback(() => {
201
+ if (!info || !store)
202
+ return;
203
+ const curInternal = internal.current;
204
+ const isTracking = curInternal.tracked.size;
205
+ const keys = [...(!isTracking ? info.stateKeys : curInternal.tracked)];
206
+ const nextKeys = `${info.version}${keys.join('')}${userSelector || ''}`;
207
+ const lastKeys = curInternal.lastKeys;
208
+ // avoid updates
209
+ if (nextKeys === curInternal.lastKeys) {
210
+ return curInternal.last;
211
+ }
212
+ curInternal.lastKeys = nextKeys;
213
+ let snap;
214
+ // dont track during selector
215
+ info.disableTracking = true;
216
+ const last = curInternal.last;
217
+ if (userSelector) {
218
+ snap = userSelector(store);
219
+ }
220
+ else {
221
+ snap = selectKeys(store, keys);
222
+ }
223
+ info.disableTracking = false;
224
+ // this wasn't updating in AnimationsStore
225
+ const isUnchanged = (!userSelector && !isTracking && last) ||
226
+ (typeof last !== 'undefined' &&
227
+ isEqualSubsetShallow(last, snap, {
228
+ keyComparators: info.keyComparators,
229
+ }));
230
+ if (shouldPrintDebug) {
231
+ console.info('🌑 getSnapshot', {
232
+ storeState: selectKeys(store, Object.keys(store)),
233
+ userSelector,
234
+ info,
235
+ isUnchanged,
236
+ component,
237
+ keys,
238
+ last,
239
+ snap,
240
+ curInternal,
241
+ nextKeys,
242
+ lastKeys,
243
+ });
244
+ }
245
+ if (isUnchanged) {
246
+ return last;
247
+ }
248
+ curInternal.last = snap;
249
+ return snap;
250
+ }, [store]);
251
+ // sync by default
252
+ const state = React.useSyncExternalStore(info?.subscribe || idFn, getSnapshot, getSnapshot);
253
+ if (!info || !store || !state) {
254
+ return state;
255
+ }
256
+ if (userSelector) {
257
+ return state;
258
+ }
259
+ return new Proxy(store, {
260
+ get(target, key) {
261
+ // be sure to touch the value for tracking purposes
262
+ const curVal = Reflect.get(target, key);
263
+ // while in reactions, don't proxy to old state as they aren't inside of react render
264
+ if (isInReaction) {
265
+ return curVal;
266
+ }
267
+ const keyString = key; // fine for our uses
268
+ if (info.stateKeys.has(keyString) || keyString in info.getters) {
269
+ if (shouldPrintDebug) {
270
+ console.info('👀 tracking', keyString);
271
+ }
272
+ curInternal.tracked.add(keyString);
273
+ }
274
+ if (Reflect.has(state, key)) {
275
+ return Reflect.get(state, key);
276
+ }
277
+ return curVal;
278
+ },
279
+ });
280
+ }
281
+ let setters = new Set();
282
+ const logStack = new Set();
283
+ function createProxiedStore(storeInfo) {
284
+ const { actions, storeInstance, getters, gettersState } = storeInfo;
285
+ const { getCache, curGetKeys, depsToGetter } = gettersState;
286
+ const constr = storeInstance.constructor;
287
+ const shouldDebug = storeInfo.debug ?? DebugStores.has(constr);
288
+ let didSet = false;
289
+ const wrappedActions = {};
290
+ // pre-setup actions
291
+ for (const key in actions) {
292
+ if (key === 'subscribe') {
293
+ continue;
294
+ }
295
+ // wrap action and call didSet after
296
+ const actionFn = actions[key];
297
+ // yes its odd but bug in router needs to be figured out to fix
298
+ // and all it does is deopt slightly and silence get
299
+ const isGetFn = key.startsWith('get');
300
+ // wrap actions for tracking
301
+ wrappedActions[key] = function useStoreAction(...args) {
302
+ let res;
303
+ if (isGetFn || gettersState.isGetting) {
304
+ return Reflect.apply(actionFn, proxiedStore, args);
305
+ }
306
+ if (process.env.NODE_ENV === 'development' && shouldDebug) {
307
+ console.info('(debug) startAction', key);
308
+ }
309
+ res = Reflect.apply(actionFn, proxiedStore, args);
310
+ if (res instanceof Promise) {
311
+ return res.then(finishAction);
312
+ }
313
+ finishAction();
314
+ return res;
315
+ };
316
+ // dev mode do nice logging
317
+ if (process.env.NODE_ENV === 'development') {
318
+ if (!key.startsWith('get') && !key.startsWith('_') && key !== 'subscribe') {
319
+ const ogAction = wrappedActions[key];
320
+ wrappedActions[key] = new Proxy(ogAction, {
321
+ apply(target, thisArg, args) {
322
+ const isDebugging = shouldDebug || storeInfo.debug;
323
+ const shouldLog = process.env.LOG_LEVEL !== '0' &&
324
+ (isDebugging || configureOpts.logLevel !== 'error');
325
+ if (!shouldLog) {
326
+ return Reflect.apply(target, thisArg, args);
327
+ }
328
+ setters = new Set();
329
+ const curSetters = setters;
330
+ const isTopLevelLogger = logStack.size == 0;
331
+ const logs = new Set();
332
+ logStack.add(logs);
333
+ let res;
334
+ const id = counter++;
335
+ try {
336
+ // 🏃‍♀️ run action here now
337
+ res = Reflect.apply(target, thisArg, args);
338
+ }
339
+ catch (err) {
340
+ console.error('Error', err);
341
+ throw err;
342
+ }
343
+ finally {
344
+ logStack.add('end');
345
+ const name = constr.name;
346
+ const color = strColor(name);
347
+ const simpleArgs = args.map(simpleStr);
348
+ logs.add([
349
+ `%c 🌑 ${id} ${name.padStart(isTopLevelLogger ? 8 : 4)}%c.${key}(${simpleArgs.join(', ')})${isTopLevelLogger && logStack.size > 1 ? ` (+${logStack.size - 1})` : ''}`,
350
+ `color: ${color};`,
351
+ 'color: black;',
352
+ ]);
353
+ if (curSetters.size) {
354
+ curSetters.forEach(({ key, value }) => {
355
+ if (typeof value === 'string' ||
356
+ typeof value === 'number' ||
357
+ typeof value === 'boolean') {
358
+ logs.add([` SET ${key} ${value}`, value]);
359
+ }
360
+ else {
361
+ logs.add([` SET ${key}`, value]);
362
+ }
363
+ });
364
+ }
365
+ if (isTopLevelLogger) {
366
+ let error = null;
367
+ try {
368
+ for (const item of logStack) {
369
+ if (item === 'end') {
370
+ console.groupEnd();
371
+ continue;
372
+ }
373
+ const [head, ...rest] = item;
374
+ if (head) {
375
+ console.groupCollapsed(...head);
376
+ console.groupCollapsed('...');
377
+ console.info('args', args);
378
+ console.info('response', res);
379
+ console.groupCollapsed('trace');
380
+ console.trace();
381
+ console.groupEnd();
382
+ console.groupEnd();
383
+ for (const [name, ...log] of rest) {
384
+ console.groupCollapsed(name);
385
+ console.info(...log);
386
+ console.groupEnd();
387
+ }
388
+ }
389
+ else {
390
+ console.info('Weird log', head, ...rest);
391
+ }
392
+ }
393
+ }
394
+ catch (err) {
395
+ error = err;
396
+ }
397
+ for (const _ of logStack) {
398
+ console.groupEnd();
399
+ }
400
+ if (error) {
401
+ console.error(`error loggin`, error);
402
+ }
403
+ logStack.clear();
404
+ }
405
+ return res;
406
+ }
407
+ },
408
+ });
409
+ }
410
+ function hashCode(str) {
411
+ let hash = 0;
412
+ for (let i = 0; i < str.length; i++) {
413
+ hash = str.charCodeAt(i) + ((hash << 5) - hash);
414
+ }
415
+ return hash;
416
+ }
417
+ function strColor(str) {
418
+ return `hsl(${hashCode(str) % 360}, 90%, 40%)`;
419
+ }
420
+ }
421
+ }
422
+ const finishAction = (val) => {
423
+ if (process.env.NODE_ENV === 'development' && shouldDebug) {
424
+ console.info('(debug) finishAction', { didSet });
425
+ }
426
+ if (didSet) {
427
+ storeInfo.triggerUpdate();
428
+ didSet = false;
429
+ }
430
+ return val;
431
+ };
432
+ let isTriggering = false;
433
+ const proxiedStore = new Proxy(storeInstance, {
434
+ // GET
435
+ get(_, key) {
436
+ // setup action one time
437
+ if (key in wrappedActions) {
438
+ return wrappedActions[key];
439
+ }
440
+ if (key in passThroughKeys) {
441
+ return Reflect.get(storeInstance, key);
442
+ }
443
+ if (key === UNWRAP_PROXY) {
444
+ return storeInstance;
445
+ }
446
+ if (key === UNWRAP_STORE_INFO) {
447
+ return storeInfo;
448
+ }
449
+ if (storeAccessTrackers.size) {
450
+ storeAccessTrackers.forEach((cb) => cb(storeInfo));
451
+ }
452
+ if (typeof key !== 'string') {
453
+ return Reflect.get(storeInstance, key);
454
+ }
455
+ // non-actions...
456
+ if (!storeInfo.disableTracking) {
457
+ if (gettersState.isGetting) {
458
+ gettersState.curGetKeys.add(key);
459
+ }
460
+ else {
461
+ // storeInstance[TRACK](key, shouldDebug)
462
+ }
463
+ }
464
+ if (key in getters) {
465
+ if (getCache.has(key)) {
466
+ return getCache.get(key);
467
+ }
468
+ // track get deps
469
+ curGetKeys.clear();
470
+ const isSubGetter = gettersState.isGetting;
471
+ gettersState.isGetting = true;
472
+ const res = getters[key].call(proxiedStore);
473
+ if (!isSubGetter) {
474
+ gettersState.isGetting = false;
475
+ }
476
+ // store inverse lookup
477
+ for (const gk of curGetKeys) {
478
+ if (!depsToGetter.has(gk)) {
479
+ depsToGetter.set(gk, new Set());
480
+ }
481
+ const cur = depsToGetter.get(gk);
482
+ cur.add(key);
483
+ }
484
+ // TODO i added this !isSubGetter, seems logical but haven't validated
485
+ // has diff performance tradeoffs, not sure whats desirable
486
+ // if (!isSubGetter) {
487
+ getCache.set(key, res);
488
+ // }
489
+ return res;
490
+ }
491
+ return Reflect.get(storeInstance, key);
492
+ },
493
+ // SET
494
+ set(target, key, value, receiver) {
495
+ const cur = Reflect.get(target, key);
496
+ const res = Reflect.set(target, key, value, receiver);
497
+ // only update if changed, simple compare
498
+ if (res && cur !== value) {
499
+ // clear getters cache that rely on this
500
+ if (typeof key === 'string') {
501
+ clearGetterCache(key);
502
+ if (shouldDebug) {
503
+ setters.add({ key, value });
504
+ if (getShouldDebug(storeInfo)) {
505
+ console.info('(debug) SET', res, key, value);
506
+ }
507
+ }
508
+ if (process.env.NODE_ENV === 'development' && shouldDebug) {
509
+ console.info('SET...', { key, value });
510
+ }
511
+ }
512
+ if (!isTriggering) {
513
+ // trigger only once per event loop
514
+ isTriggering = true;
515
+ waitForEventLoop(() => {
516
+ storeInfo.triggerUpdate();
517
+ isTriggering = false;
518
+ });
519
+ }
520
+ }
521
+ return res;
522
+ },
523
+ });
524
+ function clearGetterCache(setKey) {
525
+ const parentGetters = depsToGetter.get(setKey);
526
+ getCache.delete(setKey);
527
+ if (!parentGetters) {
528
+ return;
529
+ }
530
+ for (const gk of parentGetters) {
531
+ getCache.delete(gk);
532
+ if (depsToGetter.has(gk)) {
533
+ clearGetterCache(gk);
534
+ }
535
+ }
536
+ }
537
+ return proxiedStore;
538
+ }
539
+ const waitForEventLoop = process.env.NODE_ENV === 'test' || "web" === 'native'
540
+ ? (cb) => cb()
541
+ : queueMicrotask;
542
+ let counter = 0;
543
+ const passThroughKeys = {
544
+ subscribe: true,
545
+ _version: true,
546
+ _trackers: true,
547
+ $$typeof: true,
548
+ _listeners: true,
549
+ _enableTracking: true,
550
+ };
551
+ function getShouldDebug(storeInfo) {
552
+ const info = { storeInstance: storeInfo.store };
553
+ const trackers = storeInfo.trackers;
554
+ return [...trackers].some((tracker) => tracker.component && shouldDebug(tracker.component, info));
555
+ }
556
+ //# sourceMappingURL=useStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStore.js","sourceRoot":"","sources":["../../src/useStore.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ // const { ReactCurrentOwner } = (React as any)
3
+ // .__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
4
+ export const useCurrentComponent = () => {
5
+ return {};
6
+ // return ReactCurrentOwner &&
7
+ // ReactCurrentOwner.current &&
8
+ // ReactCurrentOwner.current.elementType
9
+ // ? ReactCurrentOwner.current.elementType
10
+ // : {}
11
+ };
12
+ export function useDebugStoreComponent(StoreCons) {
13
+ const cmp = useCurrentComponent();
14
+ // add in outer loop to pickup immediately
15
+ DebugStores.add(StoreCons);
16
+ if (!DebugComponents.has(cmp)) {
17
+ DebugComponents.set(cmp, new Set());
18
+ }
19
+ const stores = DebugComponents.get(cmp);
20
+ stores.add(StoreCons);
21
+ React.useLayoutEffect(() => {
22
+ return () => {
23
+ DebugStores.delete(StoreCons);
24
+ stores.delete(StoreCons);
25
+ };
26
+ }, []);
27
+ }
28
+ export const shouldDebug = (component, info) => {
29
+ const StoreCons = info.storeInstance?.constructor;
30
+ return DebugComponents.get(component)?.has(StoreCons);
31
+ };
32
+ export const DebugComponents = new Map();
33
+ export const DebugStores = new Set();
34
+ //# sourceMappingURL=useStoreDebug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStoreDebug.js","sourceRoot":"","sources":["../../src/useStoreDebug.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,+CAA+C;AAC/C,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,OAAO,EAAE,CAAA;IACT,8BAA8B;IAC9B,iCAAiC;IACjC,0CAA0C;IAC1C,4CAA4C;IAC5C,SAAS;AACX,CAAC,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAc;IACnD,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAA;IAEjC,0CAA0C;IAC1C,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IACrC,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;IACxC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAErB,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,OAAO,GAAG,EAAE;YACV,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAc,EAAE,IAAsC,EAAE,EAAE;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAA;IACjD,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAiB,CAAA;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAO,CAAA"}