in packages/sqrl/src/jslib/deepEqual.ts [6:30]
export default function deepEqual(left, right) {
if (left === right) {
return true;
} else if (Array.isArray(left) && Array.isArray(right)) {
return (
left.length === right.length &&
left.every((el, idx) => {
return deepEqual(el, right[idx]);
})
);
} else if (typeof left === "object" && typeof right === "object") {
if (left === null || right === null) {
return false;
}
const keys = Object.keys(left).sort();
return (
deepEqual(keys, Object.keys(right).sort()) &&
keys.every((key?) => {
return deepEqual(left[key], right[key]);
})
);
} else {
return false;
}
}