@api3/contracts
Version:
Contracts through which API3 services are delivered
30 lines • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deepEqual = deepEqual;
// This could be done with something like lodash's deepEqual, but in order
// to try to reduce dependencies, it has purposefully not been included.
// If requirements change and a library is added that has some kind of
// deepEqual function available, that should probably be used instead.
function deepEqual(obj1, obj2) {
if (obj1 === obj2) {
return true;
}
if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 === null || 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;
}
if (!deepEqual(obj1[key], obj2[key])) {
return false;
}
}
return true;
}
//# sourceMappingURL=deep-equal.js.map