UNPKG

@olton/latte

Version:

Simple test framework for JavaScript and TypeScript with DOM supports

59 lines (46 loc) 1.15 kB
export const deepEqual = (obj1, obj2) => { if (obj1 === obj2) { return true } if (obj1 == null || obj2 == null) { return false } if (typeof obj1 !== 'object' || typeof obj2 !== 'object') { 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) || !deepEqual(obj1[key], obj2[key])) { return false } } return true } export function compareStructure (obj1, obj2) { if (obj1 == null || obj2 == null) { return false } if (typeof obj1 !== 'object' || typeof obj2 !== 'object') { 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 (typeof obj1[key] === 'object' && typeof obj2[key] === 'object') { if (!compareStructure(obj1[key], obj2[key])) { return false } } } return true }