1 | import _typeof from "@babel/runtime/helpers/esm/typeof";
|
2 | export function dataToArray(vars) {
|
3 | if (!vars && vars !== 0) {
|
4 | return [];
|
5 | }
|
6 |
|
7 | if (Array.isArray(vars)) {
|
8 | return vars;
|
9 | }
|
10 |
|
11 | return [vars];
|
12 | }
|
13 |
|
14 | function deepEql(a, b) {
|
15 | if (!a || !b) {
|
16 | return false;
|
17 | }
|
18 |
|
19 | var $a = Object.keys(a);
|
20 | var $b = Object.keys(b);
|
21 |
|
22 | if ($a.length && $b.length && $a.length === $b.length) {
|
23 | return !$a.some(function (key) {
|
24 | var aa = a[key];
|
25 | var bb = b[key];
|
26 |
|
27 | if (Array.isArray(aa) && Array.isArray(bb)) {
|
28 | var aaa = aa.join();
|
29 | var bbb = bb.join();
|
30 |
|
31 | if (aaa === bbb && !aaa.match(/\[object object\]/gi)) {
|
32 | aa = aaa;
|
33 | bb = bbb;
|
34 | }
|
35 | }
|
36 |
|
37 | return aa !== bb;
|
38 | });
|
39 | }
|
40 |
|
41 | return false;
|
42 | }
|
43 |
|
44 | export function objectEqual(obj1, obj2) {
|
45 | if (obj1 === obj2 || deepEql(obj1, obj2)) {
|
46 | return true;
|
47 | }
|
48 |
|
49 | if (!obj1 || !obj2 || Object.keys(obj1).length !== Object.keys(obj2).length) {
|
50 | return false;
|
51 | }
|
52 |
|
53 |
|
54 | var equalBool = true;
|
55 |
|
56 | var setEqualBool = function setEqualBool($a, $b) {
|
57 | var objA = Object.keys($a).length > Object.keys($b).length ? $a : $b;
|
58 | var objB = Object.keys($a).length > Object.keys($b).length ? $b : $a;
|
59 | Object.keys(objA).forEach(function (key) {
|
60 |
|
61 | if (!equalBool) {
|
62 | return;
|
63 | }
|
64 |
|
65 | if (!(key in objB)) {
|
66 | equalBool = false;
|
67 | }
|
68 |
|
69 | if (_typeof(objA[key]) === 'object' && _typeof(objB[key]) === 'object') {
|
70 | equalBool = objectEqual(objA[key], objB[key]);
|
71 | } else if (typeof objA[key] === 'function' && typeof objB[key] === 'function') {
|
72 | if (objA[key].toString().replace(/\s+/g, '') !== objB[key].toString().replace(/\s+/g, '')) {
|
73 | equalBool = false;
|
74 | }
|
75 | } else if (objA[key] !== objB[key]) {
|
76 | equalBool = false;
|
77 | }
|
78 | });
|
79 | };
|
80 |
|
81 | if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
82 | obj1.forEach(function (item, i) {
|
83 | setEqualBool(item, obj2[i]);
|
84 | });
|
85 | } else {
|
86 | setEqualBool(obj1, obj2);
|
87 | }
|
88 |
|
89 | return equalBool;
|
90 | } |
\ | No newline at end of file |