Files
xrpl-hooks-ide/utils/object.ts
2022-08-17 11:50:49 +05:30

22 lines
642 B
TypeScript

export const deepEqual = (object1: any, object2: any) => {
if (!isObject(object1) || !isObject(object2)) return object1 === object2
const keys1 = Object.keys(object1)
const keys2 = Object.keys(object2)
if (keys1.length !== keys2.length) {
return false
}
for (const key of keys1) {
const val1 = object1[key]
const val2 = object2[key]
const areObjects = isObject(val1) && isObject(val2)
if ((areObjects && !deepEqual(val1, val2)) || (!areObjects && val1 !== val2)) {
return false
}
}
return true
}
export const isObject = (object: any) => {
return object != null && typeof object === 'object'
}