@everipedia/iq-utils 0.2.4 → 0.2.7
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/CHANGELOG.md +12 -0
- package/build/main/index.d.ts +1 -0
- package/build/main/index.js +2 -1
- package/build/main/lib/isDeepEqual.d.ts +2 -0
- package/build/main/lib/isDeepEqual.js +47 -0
- package/build/module/index.d.ts +1 -0
- package/build/module/index.js +2 -1
- package/build/module/lib/isDeepEqual.d.ts +2 -0
- package/build/module/lib/isDeepEqual.js +45 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/build/main/index.d.ts
CHANGED
package/build/main/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./lib/wikiScore"), exports);
|
|
18
|
+
__exportStar(require("./lib/isDeepEqual"), exports);
|
|
18
19
|
__exportStar(require("./types/wiki"), exports);
|
|
19
20
|
__exportStar(require("./types/wikiBuilder"), exports);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxvREFBa0M7QUFDbEMsK0NBQTZCO0FBQzdCLHNEQUFvQyJ9
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isDeepEqual(obj1, obj2) {
|
|
4
|
+
// If both are strings, compare them ignoring whitespace
|
|
5
|
+
if (typeof obj1 === 'string' && typeof obj2 === 'string') {
|
|
6
|
+
return obj1.replace(/\s+/g, '') === obj2.replace(/\s+/g, '');
|
|
7
|
+
}
|
|
8
|
+
// Check if they are the same reference or both null/undefined
|
|
9
|
+
if (obj1 === obj2) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
// Check if either is null/undefined, or not both are objects (including functions)
|
|
13
|
+
if (typeof obj1 !== 'object' ||
|
|
14
|
+
obj1 === null ||
|
|
15
|
+
typeof obj2 !== 'object' ||
|
|
16
|
+
obj2 === null) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
// Get the keys of both objects
|
|
20
|
+
const keysA = Object.keys(obj1);
|
|
21
|
+
const keysB = Object.keys(obj2);
|
|
22
|
+
// Check if the number of properties is different
|
|
23
|
+
if (keysA.length !== keysB.length) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
// Check if obj2 has all keys present in obj1 and compare each key
|
|
27
|
+
for (const key of keysA) {
|
|
28
|
+
if (!keysB.includes(key)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
// Check if the property is a function and compare the function's code
|
|
32
|
+
if (typeof obj1[key] === 'function' || typeof obj2[key] === 'function') {
|
|
33
|
+
if (obj1[key].toString() !== obj2[key].toString()) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// Recursive call for nested objects or arrays
|
|
39
|
+
if (!isDeepEqual(obj1[key], obj2[key])) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
exports.default = isDeepEqual;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNEZWVwRXF1YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lzRGVlcEVxdWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBUyxXQUFXLENBQUMsSUFBUyxFQUFFLElBQVM7SUFDdkMsd0RBQXdEO0lBQ3hELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlEO0lBRUQsOERBQThEO0lBQzlELElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsbUZBQW1GO0lBQ25GLElBQ0UsT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN4QixJQUFJLEtBQUssSUFBSTtRQUNiLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsSUFBSSxLQUFLLElBQUksRUFDYjtRQUNBLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCwrQkFBK0I7SUFDL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhDLGlEQUFpRDtJQUNqRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsa0VBQWtFO0lBQ2xFLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxzRUFBc0U7UUFDdEUsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQ3RFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakQsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO2FBQU07WUFDTCw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsa0JBQWUsV0FBVyxDQUFDIn0=
|
package/build/module/index.d.ts
CHANGED
package/build/module/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './lib/wikiScore';
|
|
2
|
+
export * from './lib/isDeepEqual';
|
|
2
3
|
export * from './types/wiki';
|
|
3
4
|
export * from './types/wikiBuilder';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUMifQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
function isDeepEqual(obj1, obj2) {
|
|
2
|
+
// If both are strings, compare them ignoring whitespace
|
|
3
|
+
if (typeof obj1 === 'string' && typeof obj2 === 'string') {
|
|
4
|
+
return obj1.replace(/\s+/g, '') === obj2.replace(/\s+/g, '');
|
|
5
|
+
}
|
|
6
|
+
// Check if they are the same reference or both null/undefined
|
|
7
|
+
if (obj1 === obj2) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
// Check if either is null/undefined, or not both are objects (including functions)
|
|
11
|
+
if (typeof obj1 !== 'object' ||
|
|
12
|
+
obj1 === null ||
|
|
13
|
+
typeof obj2 !== 'object' ||
|
|
14
|
+
obj2 === null) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
// Get the keys of both objects
|
|
18
|
+
const keysA = Object.keys(obj1);
|
|
19
|
+
const keysB = Object.keys(obj2);
|
|
20
|
+
// Check if the number of properties is different
|
|
21
|
+
if (keysA.length !== keysB.length) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
// Check if obj2 has all keys present in obj1 and compare each key
|
|
25
|
+
for (const key of keysA) {
|
|
26
|
+
if (!keysB.includes(key)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
// Check if the property is a function and compare the function's code
|
|
30
|
+
if (typeof obj1[key] === 'function' || typeof obj2[key] === 'function') {
|
|
31
|
+
if (obj1[key].toString() !== obj2[key].toString()) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Recursive call for nested objects or arrays
|
|
37
|
+
if (!isDeepEqual(obj1[key], obj2[key])) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
export default isDeepEqual;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNEZWVwRXF1YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lzRGVlcEVxdWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsV0FBVyxDQUFDLElBQVMsRUFBRSxJQUFTO0lBQ3ZDLHdEQUF3RDtJQUN4RCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDeEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5RDtJQUVELDhEQUE4RDtJQUM5RCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELG1GQUFtRjtJQUNuRixJQUNFLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsSUFBSSxLQUFLLElBQUk7UUFDYixPQUFPLElBQUksS0FBSyxRQUFRO1FBQ3hCLElBQUksS0FBSyxJQUFJLEVBQ2I7UUFDQSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsK0JBQStCO0lBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyxpREFBaUQ7SUFDakQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDakMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELGtFQUFrRTtJQUNsRSxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsc0VBQXNFO1FBQ3RFLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsRUFBRTtZQUN0RSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjthQUFNO1lBQ0wsOENBQThDO1lBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELGVBQWUsV0FBVyxDQUFDIn0=
|