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