UNPKG

@featurevisor/core

Version:

Core package of Featurevisor for Node.js usage

71 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkIfObjectsAreEqual = checkIfObjectsAreEqual; exports.checkIfArraysAreEqual = checkIfArraysAreEqual; function checkIfObjectsAreEqual(obj1, obj2) { if (obj1 === obj2) { return true; } if (typeof obj1 !== "object" || obj1 === null || typeof obj2 !== "object" || obj2 === null) { return false; } const keys1 = Object.keys(obj1); const keys2 = Object.keys(obj2); if (keys1.length !== keys2.length) { return false; } for (const key of keys1) { if (!keys2.includes(key)) { return false; } const val1 = obj1[key]; const val2 = obj2[key]; if (Array.isArray(val1) && Array.isArray(val2)) { if (!checkIfArraysAreEqual(val1, val2)) { return false; } } else if (typeof val1 === "object" && typeof val2 === "object") { if (!checkIfObjectsAreEqual(val1, val2)) { return false; } } else if (val1 !== val2) { return false; } } return true; } function checkIfArraysAreEqual(arr1, arr2) { if (arr1 === arr2) { return true; } if (!Array.isArray(arr1) || !Array.isArray(arr2)) { return false; } if (arr1.length !== arr2.length) { return false; } for (let i = 0; i < arr1.length; i++) { const val1 = arr1[i]; const val2 = arr2[i]; if (Array.isArray(val1) && Array.isArray(val2)) { if (!checkIfArraysAreEqual(val1, val2)) { return false; } } else if (typeof val1 === "object" && typeof val2 === "object" && val1 !== null && val2 !== null) { if (!checkIfObjectsAreEqual(val1, val2)) { return false; } } else if (val1 !== val2) { return false; } } return true; } //# sourceMappingURL=helpers.js.map