@tamagui/use-store 2.7.7 → 3.0.0-beta.643.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/cjs/comparators.cjs +27 -30
  2. package/dist/cjs/comparators.native.cjs +45 -0
  3. package/dist/cjs/comparators.native.js +31 -34
  4. package/dist/cjs/comparators.native.js.map +1 -1
  5. package/dist/cjs/configureUseStore.cjs +17 -18
  6. package/dist/cjs/configureUseStore.native.cjs +33 -0
  7. package/dist/cjs/configureUseStore.native.js +17 -17
  8. package/dist/cjs/configureUseStore.native.js.map +1 -1
  9. package/dist/cjs/constants.cjs +19 -20
  10. package/dist/cjs/constants.native.cjs +34 -0
  11. package/dist/cjs/constants.native.js +19 -19
  12. package/dist/cjs/constants.native.js.map +1 -1
  13. package/dist/cjs/decorators.cjs +19 -22
  14. package/dist/cjs/decorators.native.cjs +32 -0
  15. package/dist/cjs/decorators.native.js +19 -21
  16. package/dist/cjs/decorators.native.js.map +1 -1
  17. package/dist/cjs/helpers.cjs +39 -40
  18. package/dist/cjs/helpers.native.cjs +68 -0
  19. package/dist/cjs/helpers.native.js +42 -43
  20. package/dist/cjs/helpers.native.js.map +1 -1
  21. package/dist/cjs/index.cjs +22 -23
  22. package/dist/cjs/index.native.cjs +62 -0
  23. package/dist/cjs/index.native.js +35 -36
  24. package/dist/cjs/index.native.js.map +1 -1
  25. package/dist/cjs/interfaces.cjs +10 -11
  26. package/dist/cjs/interfaces.native.cjs +19 -0
  27. package/dist/cjs/interfaces.native.js +10 -10
  28. package/dist/cjs/interfaces.native.js.map +1 -1
  29. package/dist/cjs/observe.cjs +132 -138
  30. package/dist/cjs/observe.native.cjs +221 -0
  31. package/dist/cjs/observe.native.js +192 -203
  32. package/dist/cjs/observe.native.js.map +1 -1
  33. package/dist/cjs/useStore.cjs +366 -403
  34. package/dist/cjs/useStore.native.cjs +557 -0
  35. package/dist/cjs/useStore.native.js +487 -536
  36. package/dist/cjs/useStore.native.js.map +1 -1
  37. package/dist/cjs/useStoreDebug.cjs +39 -45
  38. package/dist/cjs/useStoreDebug.native.cjs +64 -0
  39. package/dist/cjs/useStoreDebug.native.js +43 -48
  40. package/dist/cjs/useStoreDebug.native.js.map +1 -1
  41. package/dist/esm/comparators.mjs +13 -12
  42. package/dist/esm/comparators.mjs.map +1 -1
  43. package/dist/esm/comparators.native.js +17 -17
  44. package/dist/esm/comparators.native.js.map +1 -1
  45. package/dist/esm/configureUseStore.mjs +2 -1
  46. package/dist/esm/configureUseStore.mjs.map +1 -1
  47. package/dist/esm/configureUseStore.native.js +2 -1
  48. package/dist/esm/configureUseStore.native.js.map +1 -1
  49. package/dist/esm/constants.mjs +4 -3
  50. package/dist/esm/constants.mjs.map +1 -1
  51. package/dist/esm/constants.native.js +4 -3
  52. package/dist/esm/constants.native.js.map +1 -1
  53. package/dist/esm/decorators.mjs +5 -4
  54. package/dist/esm/decorators.mjs.map +1 -1
  55. package/dist/esm/decorators.native.js +5 -4
  56. package/dist/esm/decorators.native.js.map +1 -1
  57. package/dist/esm/helpers.mjs +20 -18
  58. package/dist/esm/helpers.mjs.map +1 -1
  59. package/dist/esm/helpers.native.js +23 -22
  60. package/dist/esm/helpers.native.js.map +1 -1
  61. package/dist/esm/index.js +18 -11
  62. package/dist/esm/index.js.map +1 -1
  63. package/dist/esm/index.mjs +18 -11
  64. package/dist/esm/index.mjs.map +1 -1
  65. package/dist/esm/index.native.js +30 -24
  66. package/dist/esm/index.native.js.map +1 -1
  67. package/dist/esm/interfaces.mjs +0 -2
  68. package/dist/esm/interfaces.native.js +0 -2
  69. package/dist/esm/observe.mjs +115 -113
  70. package/dist/esm/observe.mjs.map +1 -1
  71. package/dist/esm/observe.native.js +175 -179
  72. package/dist/esm/observe.native.js.map +1 -1
  73. package/dist/esm/useStore.mjs +336 -363
  74. package/dist/esm/useStore.mjs.map +1 -1
  75. package/dist/esm/useStore.native.js +457 -497
  76. package/dist/esm/useStore.native.js.map +1 -1
  77. package/dist/esm/useStoreDebug.mjs +20 -18
  78. package/dist/esm/useStoreDebug.mjs.map +1 -1
  79. package/dist/esm/useStoreDebug.native.js +23 -21
  80. package/dist/esm/useStoreDebug.native.js.map +1 -1
  81. package/package.json +3 -3
  82. package/dist/esm/interfaces.mjs.map +0 -1
  83. package/dist/esm/interfaces.native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","isEqualSubsetShallow","UNWRAP_PROXY","trackStoresAccess","logUpdate","process","env","NODE_ENV","fn","stores","last","next","getStoreLogName","store","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","queueMicrotask","disableTracking","push","forEach","x"],"sources":["../../src/observe.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"observe.js","names":[],"sources":["esm/observe.js"],"sourcesContent":["import React from \"react\";\nimport { isEqualSubsetShallow } from \"./comparators\";\nimport { UNWRAP_PROXY } from \"./constants\";\nimport { trackStoresAccess } from \"./useStore\";\nconst logUpdate = process.env.NODE_ENV === \"development\" ? (fn, stores, last, next) => {\n const getStoreLogName = (store) => {\n const str = store[UNWRAP_PROXY] ?? store;\n return `${str.constructor.name}${store.props?.id ? `:${store.props.id}` : \"\"}`;\n };\n const storeNames = stores.map(getStoreLogName).join(\", \");\n const name = `\\u{1F311} \\u25B6\\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;\n console.groupCollapsed(name, \"color: tomato;\");\n console.groupCollapsed(\"trace >\");\n console.trace();\n console.groupEnd();\n console.info(\" next\", next);\n console.groupEnd();\n} : null;\nfunction observe(fn) {\n let prev = getObserverValueAndStoresAccessed(fn);\n let disposeValue = null;\n const subscribe = () => {\n const stores = [...prev.storeInfos];\n return subscribeToStores(stores, () => {\n disposeValue?.();\n const next = getObserverValueAndStoresAccessed(fn);\n if (typeof next.value === \"function\") {\n disposeValue = next.value;\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [...next.storeInfos], \"(fn)\", \"(fn)\");\n }\n return;\n }\n if (isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [...next.storeInfos], prev.value, next.value);\n }\n prev = next;\n dispose();\n dispose = subscribe();\n });\n };\n let dispose = subscribe();\n return {\n dispose: () => {\n dispose();\n disposeValue?.();\n },\n getValue: () => prev.value\n };\n}\nfunction useObserve(fn) {\n const [state, setState] = React.useState(() => {\n return getObserverValueAndStoresAccessed(fn);\n });\n React.useEffect(() => {\n let dispose;\n const unsub = subscribeToStores([...state.storeInfos], () => {\n dispose?.();\n const next = getObserverValueAndStoresAccessed(fn);\n const nextStoreInfos = [...next.storeInfos];\n const prevStoreInfos = [...state.storeInfos];\n if (typeof next.value === \"function\") {\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, \"(fn)\", \"(fn)\");\n }\n dispose = next.value;\n return;\n }\n setState((prev) => {\n if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return prev;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, prev.value, next.value);\n }\n return next;\n });\n });\n return () => {\n unsub();\n dispose?.();\n };\n }, [[...state.storeInfos].map((i) => i.uid).join(\",\")]);\n return state.value;\n}\nfunction getObserverValueAndStoresAccessed(selector) {\n const storeInfos = /* @__PURE__ */ new Set();\n const dispose = trackStoresAccess((storeInfo) => {\n storeInfos.add(storeInfo);\n });\n const value = selector();\n dispose();\n return {\n value,\n storeInfos\n };\n}\nfunction subscribeToStores(storeInfos, onUpdate) {\n const disposes = [];\n let isUpdating = false;\n const onUpdateDebouncedWithoutTracking = () => {\n if (isUpdating) return;\n isUpdating = true;\n queueMicrotask(() => {\n try {\n for (const storeInfo of storeInfos) {\n storeInfo.disableTracking = true;\n }\n onUpdate();\n } finally {\n isUpdating = false;\n for (const storeInfo of storeInfos) {\n storeInfo.disableTracking = false;\n }\n }\n });\n };\n for (const storeInfo of storeInfos) {\n disposes.push(storeInfo.subscribe(onUpdateDebouncedWithoutTracking));\n }\n return () => {\n disposes.forEach((x) => x());\n };\n}\nexport {\n observe,\n useObserve\n};\n//# sourceMappingURL=observe.js.map\n"],"mappings":"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"}
@@ -2,193 +2,189 @@ import React from "react";
2
2
  import { isEqualSubsetShallow } from "./comparators.native.js";
3
3
  import { UNWRAP_PROXY } from "./constants.native.js";
4
4
  import { trackStoresAccess } from "./useStore.native.js";
5
- 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();
5
+
6
+ var logUpdate = process.env.NODE_ENV === "development" ? function(fn, stores, last, next) {
7
+ var getStoreLogName = function(store) {
8
+ var _store_props;
9
+ var _store_UNWRAP_PROXY;
10
+ var str = (_store_UNWRAP_PROXY = store[UNWRAP_PROXY]) !== null && _store_UNWRAP_PROXY !== void 0 ? _store_UNWRAP_PROXY : store;
11
+ return `${str.constructor.name}${((_store_props = store.props) === null || _store_props === void 0 ? void 0 : _store_props.id) ? `:${store.props.id}` : ""}`;
12
+ };
13
+ var storeNames = stores.map(getStoreLogName).join(", ");
14
+ var name = `\u{1F311} \u25B6\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;
15
+ console.groupCollapsed(name, "color: tomato;");
16
+ console.groupCollapsed("trace >");
17
+ console.trace();
18
+ console.groupEnd();
19
+ console.info(" next", next);
20
+ console.groupEnd();
20
21
  } : null;
21
22
  function observe(fn) {
22
- 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
- };
23
+ var prev = getObserverValueAndStoresAccessed(fn);
24
+ var disposeValue = null;
25
+ var subscribe = function() {
26
+ var stores = [...prev.storeInfos];
27
+ return subscribeToStores(stores, function() {
28
+ disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();
29
+ var next = getObserverValueAndStoresAccessed(fn);
30
+ if (typeof next.value === "function") {
31
+ disposeValue = next.value;
32
+ if (process.env.NODE_ENV === "development") {
33
+ logUpdate(fn, [...next.storeInfos], "(fn)", "(fn)");
34
+ }
35
+ return;
36
+ }
37
+ if (isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value)) {
38
+ return;
39
+ }
40
+ if (process.env.NODE_ENV === "development") {
41
+ logUpdate(fn, [...next.storeInfos], prev.value, next.value);
42
+ }
43
+ prev = next;
44
+ dispose();
45
+ dispose = subscribe();
46
+ });
47
+ };
48
+ var dispose = subscribe();
49
+ return {
50
+ dispose: function() {
51
+ dispose();
52
+ disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();
53
+ },
54
+ getValue: function() {
55
+ return prev.value;
56
+ }
57
+ };
57
58
  }
58
59
  function useObserve(fn) {
59
- 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;
60
+ var [state, setState] = React.useState(function() {
61
+ return getObserverValueAndStoresAccessed(fn);
62
+ });
63
+ React.useEffect(function() {
64
+ var dispose;
65
+ var unsub = subscribeToStores([...state.storeInfos], function() {
66
+ dispose === null || dispose === void 0 ? void 0 : dispose();
67
+ var next = getObserverValueAndStoresAccessed(fn);
68
+ var nextStoreInfos = [...next.storeInfos];
69
+ var prevStoreInfos = [...state.storeInfos];
70
+ if (typeof next.value === "function") {
71
+ if (process.env.NODE_ENV === "development") {
72
+ logUpdate(fn, nextStoreInfos, "(fn)", "(fn)");
73
+ }
74
+ dispose = next.value;
75
+ return;
76
+ }
77
+ setState(function(prev) {
78
+ if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {
79
+ return prev;
80
+ }
81
+ if (process.env.NODE_ENV === "development") {
82
+ logUpdate(fn, nextStoreInfos, prev.value, next.value);
83
+ }
84
+ return next;
85
+ });
86
+ });
87
+ return function() {
88
+ unsub();
89
+ dispose === null || dispose === void 0 ? void 0 : dispose();
90
+ };
91
+ }, [[...state.storeInfos].map(function(i) {
92
+ return i.uid;
93
+ }).join(",")]);
94
+ return state.value;
94
95
  }
95
96
  function getObserverValueAndStoresAccessed(selector) {
96
- 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
- };
97
+ var storeInfos = /* @__PURE__ */ new Set();
98
+ var dispose = trackStoresAccess(function(storeInfo) {
99
+ storeInfos.add(storeInfo);
100
+ });
101
+ var value = selector();
102
+ dispose();
103
+ return {
104
+ value,
105
+ storeInfos
106
+ };
106
107
  }
107
108
  function subscribeToStores(storeInfos, onUpdate) {
108
- 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
- };
109
+ var disposes = [];
110
+ var isUpdating = false;
111
+ var onUpdateDebouncedWithoutTracking = function() {
112
+ if (isUpdating) return;
113
+ isUpdating = true;
114
+ queueMicrotask(function() {
115
+ try {
116
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
117
+ try {
118
+ for (var _iterator2 = storeInfos[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
119
+ var storeInfo2 = _step2.value;
120
+ storeInfo2.disableTracking = true;
121
+ }
122
+ } catch (err) {
123
+ _didIteratorError2 = true;
124
+ _iteratorError2 = err;
125
+ } finally {
126
+ try {
127
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
128
+ _iterator2.return();
129
+ }
130
+ } finally {
131
+ if (_didIteratorError2) {
132
+ throw _iteratorError2;
133
+ }
134
+ }
135
+ }
136
+ onUpdate();
137
+ } finally {
138
+ isUpdating = false;
139
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
140
+ try {
141
+ for (var _iterator1 = storeInfos[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
142
+ var storeInfo1 = _step1.value;
143
+ storeInfo1.disableTracking = false;
144
+ }
145
+ } catch (err) {
146
+ _didIteratorError1 = true;
147
+ _iteratorError1 = err;
148
+ } finally {
149
+ try {
150
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
151
+ _iterator1.return();
152
+ }
153
+ } finally {
154
+ if (_didIteratorError1) {
155
+ throw _iteratorError1;
156
+ }
157
+ }
158
+ }
159
+ }
160
+ });
161
+ };
162
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
163
+ try {
164
+ for (var _iterator = storeInfos[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
165
+ var storeInfo = _step.value;
166
+ disposes.push(storeInfo.subscribe(onUpdateDebouncedWithoutTracking));
167
+ }
168
+ } catch (err) {
169
+ _didIteratorError = true;
170
+ _iteratorError = err;
171
+ } finally {
172
+ try {
173
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
174
+ _iterator.return();
175
+ }
176
+ } finally {
177
+ if (_didIteratorError) {
178
+ throw _iteratorError;
179
+ }
180
+ }
181
+ }
182
+ return function() {
183
+ disposes.forEach(function(x) {
184
+ return x();
185
+ });
186
+ };
192
187
  }
188
+
193
189
  export { observe, useObserve };
194
190
  //# sourceMappingURL=observe.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","isEqualSubsetShallow","UNWRAP_PROXY","trackStoresAccess","logUpdate","process","env","NODE_ENV","fn","stores","last","next","getStoreLogName","store","_store_props","_store_UNWRAP_PROXY","str","constructor","name","props","id","storeNames","map","join","console","groupCollapsed","trace","groupEnd","info","observe","prev","getObserverValueAndStoresAccessed","disposeValue","subscribe","storeInfos","subscribeToStores","value","dispose","getValue","useObserve","state","setState","useState","useEffect","unsub","nextStoreInfos","prevStoreInfos","i","uid","selector","Set","storeInfo","add","onUpdate","disposes","isUpdating","onUpdateDebouncedWithoutTracking"],"sources":["../../src/observe.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"observe.native.js","names":[],"sources":["esm/observe.native.js"],"sourcesContent":["import React from \"react\";\nimport { isEqualSubsetShallow } from \"./comparators\";\nimport { UNWRAP_PROXY } from \"./constants\";\nimport { trackStoresAccess } from \"./useStore\";\nvar logUpdate = process.env.NODE_ENV === \"development\" ? function(fn, stores, last, next) {\n var getStoreLogName = function(store) {\n var _store_props;\n var _store_UNWRAP_PROXY;\n var str = (_store_UNWRAP_PROXY = store[UNWRAP_PROXY]) !== null && _store_UNWRAP_PROXY !== void 0 ? _store_UNWRAP_PROXY : store;\n return `${str.constructor.name}${((_store_props = store.props) === null || _store_props === void 0 ? void 0 : _store_props.id) ? `:${store.props.id}` : \"\"}`;\n };\n var storeNames = stores.map(getStoreLogName).join(\", \");\n var name = `\\u{1F311} \\u25B6\\uFE0F %c${fn.name} ${storeNames} () ${last} => ${next}`;\n console.groupCollapsed(name, \"color: tomato;\");\n console.groupCollapsed(\"trace >\");\n console.trace();\n console.groupEnd();\n console.info(\" next\", next);\n console.groupEnd();\n} : null;\nfunction observe(fn) {\n var prev = getObserverValueAndStoresAccessed(fn);\n var disposeValue = null;\n var subscribe = function() {\n var stores = [\n ...prev.storeInfos\n ];\n return subscribeToStores(stores, function() {\n disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();\n var next = getObserverValueAndStoresAccessed(fn);\n if (typeof next.value === \"function\") {\n disposeValue = next.value;\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [\n ...next.storeInfos\n ], \"(fn)\", \"(fn)\");\n }\n return;\n }\n if (isEqualSubsetShallow(prev.storeInfos, next.storeInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, [\n ...next.storeInfos\n ], prev.value, next.value);\n }\n prev = next;\n dispose();\n dispose = subscribe();\n });\n };\n var dispose = subscribe();\n return {\n dispose: function() {\n dispose();\n disposeValue === null || disposeValue === void 0 ? void 0 : disposeValue();\n },\n getValue: function() {\n return prev.value;\n }\n };\n}\nfunction useObserve(fn) {\n var [state, setState] = React.useState(function() {\n return getObserverValueAndStoresAccessed(fn);\n });\n React.useEffect(function() {\n var dispose;\n var unsub = subscribeToStores([\n ...state.storeInfos\n ], function() {\n dispose === null || dispose === void 0 ? void 0 : dispose();\n var next = getObserverValueAndStoresAccessed(fn);\n var nextStoreInfos = [\n ...next.storeInfos\n ];\n var prevStoreInfos = [\n ...state.storeInfos\n ];\n if (typeof next.value === \"function\") {\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, \"(fn)\", \"(fn)\");\n }\n dispose = next.value;\n return;\n }\n setState(function(prev) {\n if (isEqualSubsetShallow(prevStoreInfos, nextStoreInfos) && isEqualSubsetShallow(prev.value, next.value)) {\n return prev;\n }\n if (process.env.NODE_ENV === \"development\") {\n logUpdate(fn, nextStoreInfos, prev.value, next.value);\n }\n return next;\n });\n });\n return function() {\n unsub();\n dispose === null || dispose === void 0 ? void 0 : dispose();\n };\n }, [\n [\n ...state.storeInfos\n ].map(function(i) {\n return i.uid;\n }).join(\",\")\n ]);\n return state.value;\n}\nfunction getObserverValueAndStoresAccessed(selector) {\n var storeInfos = /* @__PURE__ */ new Set();\n var dispose = trackStoresAccess(function(storeInfo) {\n storeInfos.add(storeInfo);\n });\n var value = selector();\n dispose();\n return {\n value,\n storeInfos\n };\n}\nfunction subscribeToStores(storeInfos, onUpdate) {\n var disposes = [];\n var isUpdating = false;\n var onUpdateDebouncedWithoutTracking = function() {\n if (isUpdating) return;\n isUpdating = true;\n queueMicrotask(function() {\n try {\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = storeInfos[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var storeInfo2 = _step2.value;\n storeInfo2.disableTracking = true;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n onUpdate();\n } finally {\n isUpdating = false;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = storeInfos[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var storeInfo1 = _step1.value;\n storeInfo1.disableTracking = false;\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n });\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = storeInfos[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var storeInfo = _step.value;\n disposes.push(storeInfo.subscribe(onUpdateDebouncedWithoutTracking));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return function() {\n disposes.forEach(function(x) {\n return x();\n });\n };\n}\nexport {\n observe,\n useObserve\n};\n//# sourceMappingURL=observe.js.map\n"],"mappings":";;;;;;AAIA,IAAI,YAAY,QAAQ,IAAI,aAAa,gBAAgB,SAAS,IAAI,QAAQ,MAAM,MAAM;CACxF,IAAI,kBAAkB,SAAS,OAAO;EACpC,IAAI;EACJ,IAAI;EACJ,IAAI,OAAO,sBAAsB,MAAM,mBAAmB,QAAQ,wBAAwB,KAAK,IAAI,sBAAsB;EACzH,OAAO,GAAG,IAAI,YAAY,SAAS,eAAe,MAAM,WAAW,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,MAAM,IAAI,MAAM,MAAM,OAAO;CAC1J;CACA,IAAI,aAAa,OAAO,IAAI,eAAe,EAAE,KAAK,IAAI;CACtD,IAAI,OAAO,6BAA6B,GAAG,KAAK,GAAG,WAAW,MAAM,KAAK,MAAM;CAC/E,QAAQ,eAAe,MAAM,gBAAgB;CAC7C,QAAQ,eAAe,SAAS;CAChC,QAAQ,MAAM;CACd,QAAQ,SAAS;CACjB,QAAQ,KAAK,UAAU,IAAI;CAC3B,QAAQ,SAAS;AACnB,IAAI;AACJ,SAAS,QAAQ,IAAI;CACnB,IAAI,OAAO,kCAAkC,EAAE;CAC/C,IAAI,eAAe;CACnB,IAAI,YAAY,WAAW;EACzB,IAAI,SAAS,CACX,GAAG,KAAK,UACV;EACA,OAAO,kBAAkB,QAAQ,WAAW;GAC1C,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa;GACzE,IAAI,OAAO,kCAAkC,EAAE;GAC/C,IAAI,OAAO,KAAK,UAAU,YAAY;IACpC,eAAe,KAAK;IACpB,IAAI,QAAQ,IAAI,aAAa,eAAe;KAC1C,UAAU,IAAI,CACZ,GAAG,KAAK,UACV,GAAG,QAAQ,MAAM;IACnB;IACA;GACF;GACA,IAAI,qBAAqB,KAAK,YAAY,KAAK,UAAU,KAAK,qBAAqB,KAAK,OAAO,KAAK,KAAK,GAAG;IAC1G;GACF;GACA,IAAI,QAAQ,IAAI,aAAa,eAAe;IAC1C,UAAU,IAAI,CACZ,GAAG,KAAK,UACV,GAAG,KAAK,OAAO,KAAK,KAAK;GAC3B;GACA,OAAO;GACP,QAAQ;GACR,UAAU,UAAU;EACtB,CAAC;CACH;CACA,IAAI,UAAU,UAAU;CACxB,OAAO;EACL,SAAS,WAAW;GAClB,QAAQ;GACR,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa;EAC3E;EACA,UAAU,WAAW;GACnB,OAAO,KAAK;EACd;CACF;AACF;AACA,SAAS,WAAW,IAAI;CACtB,IAAI,CAAC,OAAO,YAAY,MAAM,SAAS,WAAW;EAChD,OAAO,kCAAkC,EAAE;CAC7C,CAAC;CACD,MAAM,UAAU,WAAW;EACzB,IAAI;EACJ,IAAI,QAAQ,kBAAkB,CAC5B,GAAG,MAAM,UACX,GAAG,WAAW;GACZ,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ;GAC1D,IAAI,OAAO,kCAAkC,EAAE;GAC/C,IAAI,iBAAiB,CACnB,GAAG,KAAK,UACV;GACA,IAAI,iBAAiB,CACnB,GAAG,MAAM,UACX;GACA,IAAI,OAAO,KAAK,UAAU,YAAY;IACpC,IAAI,QAAQ,IAAI,aAAa,eAAe;KAC1C,UAAU,IAAI,gBAAgB,QAAQ,MAAM;IAC9C;IACA,UAAU,KAAK;IACf;GACF;GACA,SAAS,SAAS,MAAM;IACtB,IAAI,qBAAqB,gBAAgB,cAAc,KAAK,qBAAqB,KAAK,OAAO,KAAK,KAAK,GAAG;KACxG,OAAO;IACT;IACA,IAAI,QAAQ,IAAI,aAAa,eAAe;KAC1C,UAAU,IAAI,gBAAgB,KAAK,OAAO,KAAK,KAAK;IACtD;IACA,OAAO;GACT,CAAC;EACH,CAAC;EACD,OAAO,WAAW;GAChB,MAAM;GACN,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ;EAC5D;CACF,GAAG,CACD,CACE,GAAG,MAAM,UACX,EAAE,IAAI,SAAS,GAAG;EAChB,OAAO,EAAE;CACX,CAAC,EAAE,KAAK,GAAG,CACb,CAAC;CACD,OAAO,MAAM;AACf;AACA,SAAS,kCAAkC,UAAU;CACnD,IAAI,6BAA6B,IAAI,IAAI;CACzC,IAAI,UAAU,kBAAkB,SAAS,WAAW;EAClD,WAAW,IAAI,SAAS;CAC1B,CAAC;CACD,IAAI,QAAQ,SAAS;CACrB,QAAQ;CACR,OAAO;EACL;EACA;CACF;AACF;AACA,SAAS,kBAAkB,YAAY,UAAU;CAC/C,IAAI,WAAW,CAAC;CAChB,IAAI,aAAa;CACjB,IAAI,mCAAmC,WAAW;EAChD,IAAI,YAAY;EAChB,aAAa;EACb,eAAe,WAAW;GACxB,IAAI;IACF,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;IAC1F,IAAI;KACF,KAAK,IAAI,aAAa,WAAW,OAAO,UAAU,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,GAAG,OAAO,6BAA6B,MAAM;MACjK,IAAI,aAAa,OAAO;MACxB,WAAW,kBAAkB;KAC/B;IACF,SAAS,KAAK;KACZ,qBAAqB;KACrB,kBAAkB;IACpB,UAAU;KACR,IAAI;MACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;OAC5D,WAAW,OAAO;MACpB;KACF,UAAU;MACR,IAAI,oBAAoB;OACtB,MAAM;MACR;KACF;IACF;IACA,SAAS;GACX,UAAU;IACR,aAAa;IACb,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;IAC1F,IAAI;KACF,KAAK,IAAI,aAAa,WAAW,OAAO,UAAU,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,GAAG,OAAO,6BAA6B,MAAM;MACjK,IAAI,aAAa,OAAO;MACxB,WAAW,kBAAkB;KAC/B;IACF,SAAS,KAAK;KACZ,qBAAqB;KACrB,kBAAkB;IACpB,UAAU;KACR,IAAI;MACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;OAC5D,WAAW,OAAO;MACpB;KACF,UAAU;MACR,IAAI,oBAAoB;OACtB,MAAM;MACR;KACF;IACF;GACF;EACF,CAAC;CACH;CACA,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,WAAW,OAAO,UAAU,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,GAAG,OAAO,4BAA4B,MAAM;GAC3J,IAAI,YAAY,MAAM;GACtB,SAAS,KAAK,UAAU,UAAU,gCAAgC,CAAC;EACrE;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO,WAAW;EAChB,SAAS,QAAQ,SAAS,GAAG;GAC3B,OAAO,EAAE;EACX,CAAC;CACH;AACF"}