@tamagui/use-store 1.15.40
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/README.md +91 -0
- package/dist/cjs/Store.js +99 -0
- package/dist/cjs/Store.js.map +6 -0
- package/dist/cjs/comparators.js +45 -0
- package/dist/cjs/comparators.js.map +6 -0
- package/dist/cjs/configureUseStore.js +34 -0
- package/dist/cjs/configureUseStore.js.map +6 -0
- package/dist/cjs/constants.js +35 -0
- package/dist/cjs/constants.js.map +6 -0
- package/dist/cjs/decorators.js +34 -0
- package/dist/cjs/decorators.js.map +6 -0
- package/dist/cjs/fastCompare.js +168 -0
- package/dist/cjs/fastCompare.js.map +6 -0
- package/dist/cjs/helpers.js +101 -0
- package/dist/cjs/helpers.js.map +6 -0
- package/dist/cjs/index.js +47 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/interfaces.js +17 -0
- package/dist/cjs/interfaces.js.map +6 -0
- package/dist/cjs/reaction.js +78 -0
- package/dist/cjs/reaction.js.map +6 -0
- package/dist/cjs/selector.js +139 -0
- package/dist/cjs/selector.js.map +6 -0
- package/dist/cjs/useStore.js +534 -0
- package/dist/cjs/useStore.js.map +6 -0
- package/dist/cjs/useStoreDebug.js +73 -0
- package/dist/cjs/useStoreDebug.js.map +6 -0
- package/dist/esm/Store.js +69 -0
- package/dist/esm/Store.js.map +6 -0
- package/dist/esm/Store.mjs +69 -0
- package/dist/esm/Store.mjs.map +6 -0
- package/dist/esm/comparators.js +21 -0
- package/dist/esm/comparators.js.map +6 -0
- package/dist/esm/comparators.mjs +21 -0
- package/dist/esm/comparators.mjs.map +6 -0
- package/dist/esm/configureUseStore.js +9 -0
- package/dist/esm/configureUseStore.js.map +6 -0
- package/dist/esm/configureUseStore.mjs +9 -0
- package/dist/esm/configureUseStore.mjs.map +6 -0
- package/dist/esm/constants.js +10 -0
- package/dist/esm/constants.js.map +6 -0
- package/dist/esm/constants.mjs +10 -0
- package/dist/esm/constants.mjs.map +6 -0
- package/dist/esm/decorators.js +10 -0
- package/dist/esm/decorators.js.map +6 -0
- package/dist/esm/decorators.mjs +10 -0
- package/dist/esm/decorators.mjs.map +6 -0
- package/dist/esm/fastCompare.js +143 -0
- package/dist/esm/fastCompare.js.map +6 -0
- package/dist/esm/fastCompare.mjs +143 -0
- package/dist/esm/fastCompare.mjs.map +6 -0
- package/dist/esm/helpers.js +70 -0
- package/dist/esm/helpers.js.map +6 -0
- package/dist/esm/helpers.mjs +70 -0
- package/dist/esm/helpers.mjs.map +6 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +14 -0
- package/dist/esm/index.mjs.map +6 -0
- package/dist/esm/interfaces.js +1 -0
- package/dist/esm/interfaces.js.map +6 -0
- package/dist/esm/interfaces.mjs +1 -0
- package/dist/esm/interfaces.mjs.map +6 -0
- package/dist/esm/reaction.js +53 -0
- package/dist/esm/reaction.js.map +6 -0
- package/dist/esm/reaction.mjs +53 -0
- package/dist/esm/reaction.mjs.map +6 -0
- package/dist/esm/selector.js +114 -0
- package/dist/esm/selector.js.map +6 -0
- package/dist/esm/selector.mjs +114 -0
- package/dist/esm/selector.mjs.map +6 -0
- package/dist/esm/useStore.js +516 -0
- package/dist/esm/useStore.js.map +6 -0
- package/dist/esm/useStore.mjs +516 -0
- package/dist/esm/useStore.mjs.map +6 -0
- package/dist/esm/useStoreDebug.js +35 -0
- package/dist/esm/useStoreDebug.js.map +6 -0
- package/dist/esm/useStoreDebug.mjs +35 -0
- package/dist/esm/useStoreDebug.mjs.map +6 -0
- package/package.json +44 -0
- package/src/Store.tsx +77 -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 +87 -0
- package/src/index.ts +9 -0
- package/src/interfaces.tsx +32 -0
- package/src/reaction.tsx +109 -0
- package/src/selector.tsx +129 -0
- package/src/useStore.tsx +705 -0
- package/src/useStoreDebug.tsx +40 -0
- package/types/Store.d.ts +28 -0
- package/types/Store.d.ts.map +1 -0
- package/types/comparators.d.ts +6 -0
- package/types/comparators.d.ts.map +1 -0
- package/types/configureUseStore.d.ts +4 -0
- package/types/configureUseStore.d.ts.map +1 -0
- package/types/constants.d.ts +6 -0
- package/types/constants.d.ts.map +1 -0
- package/types/decorators.d.ts +3 -0
- package/types/decorators.d.ts.map +1 -0
- package/types/fastCompare.d.ts +13 -0
- package/types/fastCompare.d.ts.map +1 -0
- package/types/helpers.d.ts +13 -0
- package/types/helpers.d.ts.map +1 -0
- package/types/index.d.ts +10 -0
- package/types/index.d.ts.map +1 -0
- package/types/interfaces.d.ts +30 -0
- package/types/interfaces.d.ts.map +1 -0
- package/types/reaction.d.ts +4 -0
- package/types/reaction.d.ts.map +1 -0
- package/types/selector.d.ts +3 -0
- package/types/selector.d.ts.map +1 -0
- package/types/useStore.d.ts +18 -0
- package/types/useStore.d.ts.map +1 -0
- package/types/useStoreDebug.d.ts +7 -0
- package/types/useStoreDebug.d.ts.map +1 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { UNWRAP_PROXY } from "./constants";
|
|
2
|
+
import { shouldDebug } from "./useStoreDebug";
|
|
3
|
+
const TRIGGER_UPDATE = Symbol();
|
|
4
|
+
const ADD_TRACKER = Symbol();
|
|
5
|
+
const TRACK = Symbol();
|
|
6
|
+
const SHOULD_DEBUG = Symbol();
|
|
7
|
+
const disableTracking = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
const setDisableStoreTracking = (storeInstance, val) => {
|
|
9
|
+
const store = storeInstance[UNWRAP_PROXY] ?? storeInstance;
|
|
10
|
+
disableTracking.set(store, val);
|
|
11
|
+
};
|
|
12
|
+
class Store {
|
|
13
|
+
constructor(props) {
|
|
14
|
+
this.props = props;
|
|
15
|
+
this._listeners = /* @__PURE__ */ new Set();
|
|
16
|
+
this._trackers = /* @__PURE__ */ new Set();
|
|
17
|
+
this._version = 0;
|
|
18
|
+
this.subscribe = (onChanged) => {
|
|
19
|
+
this._listeners.add(onChanged);
|
|
20
|
+
return () => {
|
|
21
|
+
this._listeners.delete(onChanged);
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
[TRIGGER_UPDATE]() {
|
|
26
|
+
this._version = (this._version + 1) % Number.MAX_SAFE_INTEGER;
|
|
27
|
+
for (const cb of this._listeners) {
|
|
28
|
+
cb();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
[ADD_TRACKER](tracker) {
|
|
32
|
+
this._trackers.add(tracker);
|
|
33
|
+
return () => {
|
|
34
|
+
this._trackers.delete(tracker);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
[TRACK](key, debug) {
|
|
38
|
+
if (key[0] === "_" || key[0] === "$" || key === "props" || key === "toJSON") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (debug) {
|
|
42
|
+
console.log("(debug) CHECK TRACKERS FOR", key);
|
|
43
|
+
}
|
|
44
|
+
for (const tracker of this._trackers) {
|
|
45
|
+
if (tracker.isTracking) {
|
|
46
|
+
tracker.tracked.add(key);
|
|
47
|
+
if (debug) {
|
|
48
|
+
console.log("(debug) TRACK", key, tracker);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
[SHOULD_DEBUG]() {
|
|
54
|
+
const info = { storeInstance: this };
|
|
55
|
+
return [...this._trackers].some(
|
|
56
|
+
(tracker) => tracker.component && shouldDebug(tracker.component, info)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
ADD_TRACKER,
|
|
62
|
+
SHOULD_DEBUG,
|
|
63
|
+
Store,
|
|
64
|
+
TRACK,
|
|
65
|
+
TRIGGER_UPDATE,
|
|
66
|
+
disableTracking,
|
|
67
|
+
setDisableStoreTracking
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=Store.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Store.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAErB,MAAM,iBAAiB,OAAO;AAC9B,MAAM,cAAc,OAAO;AAC3B,MAAM,QAAQ,OAAO;AACrB,MAAM,eAAe,OAAO;AAY5B,MAAM,kBAAkB,oBAAI,QAAQ;AAEpC,MAAM,0BAA0B,CAAC,eAAoB,QAAiB;AAC3E,QAAM,QAAQ,cAAc,YAAY,KAAK;AAC7C,kBAAgB,IAAI,OAAO,GAAG;AAChC;AAEO,MAAM,MAAiC;AAAA,EAK5C,YAAmB,OAAc;AAAd;AAJnB,SAAQ,aAAa,oBAAI,IAAc;AACvC,SAAQ,YAAY,oBAAI,IAAkB;AAC1C,oBAAW;AAIX,qBAAY,CAAC,cAAwB;AACnC,WAAK,WAAW,IAAI,SAAS;AAC7B,aAAO,MAAM;AACX,aAAK,WAAW,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EAPkC;AAAA,EASlC,CAAC,cAAc,IAAI;AACjB,SAAK,YAAY,KAAK,WAAW,KAAK,OAAO;AAC7C,eAAW,MAAM,KAAK,YAAY;AAChC,SAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,CAAC,WAAW,EAAE,SAAuB;AACnC,SAAK,UAAU,IAAI,OAAO;AAC1B,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,OAAO;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,CAAC,KAAK,EAAE,KAAa,OAAiB;AACpC,QAAI,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,OAAO,QAAQ,WAAW,QAAQ,UAAU;AAC3E;AAAA,IACF;AACA,QAAI,OAAO;AACT,cAAQ,IAAI,8BAA8B,GAAG;AAAA,IAC/C;AACA,eAAW,WAAW,KAAK,WAAW;AACpC,UAAI,QAAQ,YAAY;AACtB,gBAAQ,QAAQ,IAAI,GAAG;AACvB,YAAI,OAAO;AACT,kBAAQ,IAAI,iBAAiB,KAAK,OAAO;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,CAAC,YAAY,IAAI;AACf,UAAM,OAAO,EAAE,eAAe,KAAK;AACnC,WAAO,CAAC,GAAG,KAAK,SAAS,EAAE;AAAA,MACzB,CAAC,YAAY,QAAQ,aAAa,YAAY,QAAQ,WAAW,IAAI;AAAA,IACvE;AAAA,EACF;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { UNWRAP_PROXY } from "./constants";
|
|
2
|
+
import { shouldDebug } from "./useStoreDebug";
|
|
3
|
+
const TRIGGER_UPDATE = Symbol();
|
|
4
|
+
const ADD_TRACKER = Symbol();
|
|
5
|
+
const TRACK = Symbol();
|
|
6
|
+
const SHOULD_DEBUG = Symbol();
|
|
7
|
+
const disableTracking = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
const setDisableStoreTracking = (storeInstance, val) => {
|
|
9
|
+
const store = storeInstance[UNWRAP_PROXY] ?? storeInstance;
|
|
10
|
+
disableTracking.set(store, val);
|
|
11
|
+
};
|
|
12
|
+
class Store {
|
|
13
|
+
constructor(props) {
|
|
14
|
+
this.props = props;
|
|
15
|
+
this._listeners = /* @__PURE__ */ new Set();
|
|
16
|
+
this._trackers = /* @__PURE__ */ new Set();
|
|
17
|
+
this._version = 0;
|
|
18
|
+
this.subscribe = (onChanged) => {
|
|
19
|
+
this._listeners.add(onChanged);
|
|
20
|
+
return () => {
|
|
21
|
+
this._listeners.delete(onChanged);
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
[TRIGGER_UPDATE]() {
|
|
26
|
+
this._version = (this._version + 1) % Number.MAX_SAFE_INTEGER;
|
|
27
|
+
for (const cb of this._listeners) {
|
|
28
|
+
cb();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
[ADD_TRACKER](tracker) {
|
|
32
|
+
this._trackers.add(tracker);
|
|
33
|
+
return () => {
|
|
34
|
+
this._trackers.delete(tracker);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
[TRACK](key, debug) {
|
|
38
|
+
if (key[0] === "_" || key[0] === "$" || key === "props" || key === "toJSON") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (debug) {
|
|
42
|
+
console.log("(debug) CHECK TRACKERS FOR", key);
|
|
43
|
+
}
|
|
44
|
+
for (const tracker of this._trackers) {
|
|
45
|
+
if (tracker.isTracking) {
|
|
46
|
+
tracker.tracked.add(key);
|
|
47
|
+
if (debug) {
|
|
48
|
+
console.log("(debug) TRACK", key, tracker);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
[SHOULD_DEBUG]() {
|
|
54
|
+
const info = { storeInstance: this };
|
|
55
|
+
return [...this._trackers].some(
|
|
56
|
+
(tracker) => tracker.component && shouldDebug(tracker.component, info)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
ADD_TRACKER,
|
|
62
|
+
SHOULD_DEBUG,
|
|
63
|
+
Store,
|
|
64
|
+
TRACK,
|
|
65
|
+
TRIGGER_UPDATE,
|
|
66
|
+
disableTracking,
|
|
67
|
+
setDisableStoreTracking
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=Store.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Store.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAErB,MAAM,iBAAiB,OAAO;AAC9B,MAAM,cAAc,OAAO;AAC3B,MAAM,QAAQ,OAAO;AACrB,MAAM,eAAe,OAAO;AAY5B,MAAM,kBAAkB,oBAAI,QAAQ;AAEpC,MAAM,0BAA0B,CAAC,eAAoB,QAAiB;AAC3E,QAAM,QAAQ,cAAc,YAAY,KAAK;AAC7C,kBAAgB,IAAI,OAAO,GAAG;AAChC;AAEO,MAAM,MAAiC;AAAA,EAK5C,YAAmB,OAAc;AAAd;AAJnB,SAAQ,aAAa,oBAAI,IAAc;AACvC,SAAQ,YAAY,oBAAI,IAAkB;AAC1C,oBAAW;AAIX,qBAAY,CAAC,cAAwB;AACnC,WAAK,WAAW,IAAI,SAAS;AAC7B,aAAO,MAAM;AACX,aAAK,WAAW,OAAO,SAAS;AAAA,MAClC;AAAA,IACF;AAAA,EAPkC;AAAA,EASlC,CAAC,cAAc,IAAI;AACjB,SAAK,YAAY,KAAK,WAAW,KAAK,OAAO;AAC7C,eAAW,MAAM,KAAK,YAAY;AAChC,SAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,CAAC,WAAW,EAAE,SAAuB;AACnC,SAAK,UAAU,IAAI,OAAO;AAC1B,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,OAAO;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,CAAC,KAAK,EAAE,KAAa,OAAiB;AACpC,QAAI,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,OAAO,QAAQ,WAAW,QAAQ,UAAU;AAC3E;AAAA,IACF;AACA,QAAI,OAAO;AACT,cAAQ,IAAI,8BAA8B,GAAG;AAAA,IAC/C;AACA,eAAW,WAAW,KAAK,WAAW;AACpC,UAAI,QAAQ,YAAY;AACtB,gBAAQ,QAAQ,IAAI,GAAG;AACvB,YAAI,OAAO;AACT,kBAAQ,IAAI,iBAAiB,KAAK,OAAO;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,CAAC,YAAY,IAAI;AACf,UAAM,OAAO,EAAE,eAAe,KAAK;AACnC,WAAO,CAAC,GAAG,KAAK,SAAS,EAAE;AAAA,MACzB,CAAC,YAAY,QAAQ,aAAa,YAAY,QAAQ,WAAW,IAAI;AAAA,IACvE;AAAA,EACF;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const isEqualSubsetShallow = (a, b, opts) => {
|
|
2
|
+
var _a;
|
|
3
|
+
if (b == null || a == null)
|
|
4
|
+
return a === b;
|
|
5
|
+
if (typeof a !== typeof b)
|
|
6
|
+
return false;
|
|
7
|
+
if (typeof b === "object") {
|
|
8
|
+
for (const key in b) {
|
|
9
|
+
const compare = (_a = opts == null ? void 0 : opts.keyComparators) == null ? void 0 : _a[key];
|
|
10
|
+
if (compare ? !compare(a[key], b[key]) : b[key] !== a[key]) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return a === b;
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
isEqualSubsetShallow
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=comparators.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/comparators.tsx"],
|
|
4
|
+
"mappings": "AAAO,MAAM,uBAAuB,CAClC,GACA,GACA,SACG;AAJL;AAKE,MAAI,KAAK,QAAQ,KAAK;AAAM,WAAO,MAAM;AACzC,MAAI,OAAO,MAAM,OAAO;AAAG,WAAO;AAClC,MAAI,OAAO,MAAM,UAAU;AACzB,eAAW,OAAO,GAAG;AACnB,YAAM,WAAU,kCAAM,mBAAN,mBAAuB;AACvC,UAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,GAAG;AAC1D,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,MAAM;AACf;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const isEqualSubsetShallow = (a, b, opts) => {
|
|
2
|
+
var _a;
|
|
3
|
+
if (b == null || a == null)
|
|
4
|
+
return a === b;
|
|
5
|
+
if (typeof a !== typeof b)
|
|
6
|
+
return false;
|
|
7
|
+
if (typeof b === "object") {
|
|
8
|
+
for (const key in b) {
|
|
9
|
+
const compare = (_a = opts == null ? void 0 : opts.keyComparators) == null ? void 0 : _a[key];
|
|
10
|
+
if (compare ? !compare(a[key], b[key]) : b[key] !== a[key]) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return a === b;
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
isEqualSubsetShallow
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=comparators.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/comparators.tsx"],
|
|
4
|
+
"mappings": "AAAO,MAAM,uBAAuB,CAClC,GACA,GACA,SACG;AAJL;AAKE,MAAI,KAAK,QAAQ,KAAK;AAAM,WAAO,MAAM;AACzC,MAAI,OAAO,MAAM,OAAO;AAAG,WAAO;AAClC,MAAI,OAAO,MAAM,UAAU;AACzB,eAAW,OAAO,GAAG;AACnB,YAAM,WAAU,kCAAM,mBAAN,mBAAuB;AACvC,UAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,GAAG;AAC1D,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,MAAM;AACf;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
const isArray = Array.isArray;
|
|
2
|
+
const keyList = Object.keys;
|
|
3
|
+
const hasProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
const hasElementType = typeof Element !== "undefined";
|
|
5
|
+
const EQUALITY_KEY = Symbol();
|
|
6
|
+
function isEqual(a, b, options) {
|
|
7
|
+
if (process.env.NODE_ENV !== "development") {
|
|
8
|
+
return isEqualInner(a, b, options);
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
return isEqualInner(a, b, options);
|
|
12
|
+
} catch (err) {
|
|
13
|
+
if (err.message && err.message.match(/stack|recursion/i) || err.number === -2146828260) {
|
|
14
|
+
if (process.env.NODE_ENV === "development") {
|
|
15
|
+
console.warn(
|
|
16
|
+
"Warning: @dish/fast-compare does not handle circular references.",
|
|
17
|
+
err.name,
|
|
18
|
+
err.message
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
throw err;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function isEqualInner(a, b, options) {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
if (a === b)
|
|
29
|
+
return true;
|
|
30
|
+
const maxDepth = options == null ? void 0 : options.maxDepth;
|
|
31
|
+
if (options && options.maxDepth) {
|
|
32
|
+
options.maxDepth -= 1;
|
|
33
|
+
}
|
|
34
|
+
if (a && b && typeof a == "object" && typeof b == "object") {
|
|
35
|
+
if (a[EQUALITY_KEY] && a[EQUALITY_KEY] === b[EQUALITY_KEY])
|
|
36
|
+
return true;
|
|
37
|
+
let arrA = isArray(a), arrB = isArray(b), i, length, key;
|
|
38
|
+
if (arrA && arrB) {
|
|
39
|
+
length = a.length;
|
|
40
|
+
if (length != b.length)
|
|
41
|
+
return false;
|
|
42
|
+
if (length > 200 || b.length > 200) {
|
|
43
|
+
console.warn("comparing large props! ignoring this, may want to fix");
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (maxDepth === 0) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
for (i = length; i-- !== 0; ) {
|
|
50
|
+
if (!isEqualInner(a[i], b[i], options))
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
if (arrA != arrB)
|
|
56
|
+
return false;
|
|
57
|
+
var dateA = a instanceof Date, dateB = b instanceof Date;
|
|
58
|
+
if (dateA != dateB)
|
|
59
|
+
return false;
|
|
60
|
+
if (dateA && dateB)
|
|
61
|
+
return a.getTime() == b.getTime();
|
|
62
|
+
var regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;
|
|
63
|
+
if (regexpA != regexpB)
|
|
64
|
+
return false;
|
|
65
|
+
if (regexpA && regexpB)
|
|
66
|
+
return a.toString() == b.toString();
|
|
67
|
+
let setA = a instanceof Set;
|
|
68
|
+
let setB = b instanceof Set;
|
|
69
|
+
if (setA != setB)
|
|
70
|
+
return false;
|
|
71
|
+
if (setA && setB) {
|
|
72
|
+
if (a.size !== b.size)
|
|
73
|
+
return false;
|
|
74
|
+
if (maxDepth === 0) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
for (let item of a) {
|
|
78
|
+
if (!b.has(item))
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
var keys = keyList(a);
|
|
84
|
+
length = keys.length;
|
|
85
|
+
const log = options && options.log || false;
|
|
86
|
+
const keysB = keyList(b);
|
|
87
|
+
if (length !== keysB.length) {
|
|
88
|
+
if (log)
|
|
89
|
+
console.log("diff keylist", keysB);
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
for (i = length; i-- !== 0; ) {
|
|
93
|
+
if (!hasProp.call(b, keys[i])) {
|
|
94
|
+
if (log)
|
|
95
|
+
console.log("diff no key in", keys[i]);
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (hasElementType && a instanceof Element && b instanceof Element) {
|
|
100
|
+
if (log)
|
|
101
|
+
console.log("diff dom not equal");
|
|
102
|
+
return a === b;
|
|
103
|
+
}
|
|
104
|
+
if (maxDepth === 0) {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
for (i = length; i-- !== 0; ) {
|
|
108
|
+
key = keys[i];
|
|
109
|
+
if (options) {
|
|
110
|
+
if ((_a = options.ignoreKeys) == null ? void 0 : _a[key]) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const compare = (_b = options.keyComparators) == null ? void 0 : _b[key];
|
|
114
|
+
if (compare) {
|
|
115
|
+
if (compare(a[key], b[key])) {
|
|
116
|
+
continue;
|
|
117
|
+
} else {
|
|
118
|
+
if (log)
|
|
119
|
+
console.log("diff simplecomapre", key);
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (key === "_owner" && a.$$typeof) {
|
|
125
|
+
continue;
|
|
126
|
+
} else {
|
|
127
|
+
if (!isEqualInner(a[key], b[key], options)) {
|
|
128
|
+
if (log) {
|
|
129
|
+
console.log("diff", key, a[key], b[key]);
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
return a !== a && b !== b;
|
|
138
|
+
}
|
|
139
|
+
export {
|
|
140
|
+
EQUALITY_KEY,
|
|
141
|
+
isEqual
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=fastCompare.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/fastCompare.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
const isArray = Array.isArray;
|
|
2
|
+
const keyList = Object.keys;
|
|
3
|
+
const hasProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
const hasElementType = typeof Element !== "undefined";
|
|
5
|
+
const EQUALITY_KEY = Symbol();
|
|
6
|
+
function isEqual(a, b, options) {
|
|
7
|
+
if (process.env.NODE_ENV !== "development") {
|
|
8
|
+
return isEqualInner(a, b, options);
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
return isEqualInner(a, b, options);
|
|
12
|
+
} catch (err) {
|
|
13
|
+
if (err.message && err.message.match(/stack|recursion/i) || err.number === -2146828260) {
|
|
14
|
+
if (process.env.NODE_ENV === "development") {
|
|
15
|
+
console.warn(
|
|
16
|
+
"Warning: @dish/fast-compare does not handle circular references.",
|
|
17
|
+
err.name,
|
|
18
|
+
err.message
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
throw err;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function isEqualInner(a, b, options) {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
if (a === b)
|
|
29
|
+
return true;
|
|
30
|
+
const maxDepth = options == null ? void 0 : options.maxDepth;
|
|
31
|
+
if (options && options.maxDepth) {
|
|
32
|
+
options.maxDepth -= 1;
|
|
33
|
+
}
|
|
34
|
+
if (a && b && typeof a == "object" && typeof b == "object") {
|
|
35
|
+
if (a[EQUALITY_KEY] && a[EQUALITY_KEY] === b[EQUALITY_KEY])
|
|
36
|
+
return true;
|
|
37
|
+
let arrA = isArray(a), arrB = isArray(b), i, length, key;
|
|
38
|
+
if (arrA && arrB) {
|
|
39
|
+
length = a.length;
|
|
40
|
+
if (length != b.length)
|
|
41
|
+
return false;
|
|
42
|
+
if (length > 200 || b.length > 200) {
|
|
43
|
+
console.warn("comparing large props! ignoring this, may want to fix");
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (maxDepth === 0) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
for (i = length; i-- !== 0; ) {
|
|
50
|
+
if (!isEqualInner(a[i], b[i], options))
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
if (arrA != arrB)
|
|
56
|
+
return false;
|
|
57
|
+
var dateA = a instanceof Date, dateB = b instanceof Date;
|
|
58
|
+
if (dateA != dateB)
|
|
59
|
+
return false;
|
|
60
|
+
if (dateA && dateB)
|
|
61
|
+
return a.getTime() == b.getTime();
|
|
62
|
+
var regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;
|
|
63
|
+
if (regexpA != regexpB)
|
|
64
|
+
return false;
|
|
65
|
+
if (regexpA && regexpB)
|
|
66
|
+
return a.toString() == b.toString();
|
|
67
|
+
let setA = a instanceof Set;
|
|
68
|
+
let setB = b instanceof Set;
|
|
69
|
+
if (setA != setB)
|
|
70
|
+
return false;
|
|
71
|
+
if (setA && setB) {
|
|
72
|
+
if (a.size !== b.size)
|
|
73
|
+
return false;
|
|
74
|
+
if (maxDepth === 0) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
for (let item of a) {
|
|
78
|
+
if (!b.has(item))
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
var keys = keyList(a);
|
|
84
|
+
length = keys.length;
|
|
85
|
+
const log = options && options.log || false;
|
|
86
|
+
const keysB = keyList(b);
|
|
87
|
+
if (length !== keysB.length) {
|
|
88
|
+
if (log)
|
|
89
|
+
console.log("diff keylist", keysB);
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
for (i = length; i-- !== 0; ) {
|
|
93
|
+
if (!hasProp.call(b, keys[i])) {
|
|
94
|
+
if (log)
|
|
95
|
+
console.log("diff no key in", keys[i]);
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (hasElementType && a instanceof Element && b instanceof Element) {
|
|
100
|
+
if (log)
|
|
101
|
+
console.log("diff dom not equal");
|
|
102
|
+
return a === b;
|
|
103
|
+
}
|
|
104
|
+
if (maxDepth === 0) {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
for (i = length; i-- !== 0; ) {
|
|
108
|
+
key = keys[i];
|
|
109
|
+
if (options) {
|
|
110
|
+
if ((_a = options.ignoreKeys) == null ? void 0 : _a[key]) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const compare = (_b = options.keyComparators) == null ? void 0 : _b[key];
|
|
114
|
+
if (compare) {
|
|
115
|
+
if (compare(a[key], b[key])) {
|
|
116
|
+
continue;
|
|
117
|
+
} else {
|
|
118
|
+
if (log)
|
|
119
|
+
console.log("diff simplecomapre", key);
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (key === "_owner" && a.$$typeof) {
|
|
125
|
+
continue;
|
|
126
|
+
} else {
|
|
127
|
+
if (!isEqualInner(a[key], b[key], options)) {
|
|
128
|
+
if (log) {
|
|
129
|
+
console.log("diff", key, a[key], b[key]);
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
return a !== a && b !== b;
|
|
138
|
+
}
|
|
139
|
+
export {
|
|
140
|
+
EQUALITY_KEY,
|
|
141
|
+
isEqual
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=fastCompare.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/fastCompare.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|