@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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @everipedia/iq-utils
2
2
 
3
+ ## 0.2.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 75ea28e: Resolve issue with import error
8
+
9
+ ## 0.2.6
10
+
11
+ ### Patch Changes
12
+
13
+ - 2516a5c: Create lib for deep comparison
14
+
3
15
  ## 0.2.4
4
16
 
5
17
  ### Patch Changes
@@ -1,3 +1,4 @@
1
1
  export * from './lib/wikiScore';
2
+ export * from './lib/isDeepEqual';
2
3
  export * from './types/wiki';
3
4
  export * from './types/wikiBuilder';
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQywrQ0FBNkI7QUFDN0Isc0RBQW9DIn0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxvREFBa0M7QUFDbEMsK0NBQTZCO0FBQzdCLHNEQUFvQyJ9
@@ -0,0 +1,2 @@
1
+ declare function isDeepEqual(obj1: any, obj2: any): boolean;
2
+ export default isDeepEqual;
@@ -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=
@@ -1,3 +1,4 @@
1
1
  export * from './lib/wikiScore';
2
+ export * from './lib/isDeepEqual';
2
3
  export * from './types/wiki';
3
4
  export * from './types/wikiBuilder';
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDIn0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ declare function isDeepEqual(obj1: any, obj2: any): boolean;
2
+ export default isDeepEqual;
@@ -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=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everipedia/iq-utils",
3
- "version": "0.2.4",
3
+ "version": "0.2.7",
4
4
  "description": "Common utility library for IQ projects",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",