@stylable/core
Version:
CSS for Components
39 lines (30 loc) • 914 B
text/typescript
export function isEqual(value1: any, value2: any): boolean {
if (value1 === null || value2 === null) {
return value1 === value2;
}
if (Array.isArray(value1) && Array.isArray(value2)) {
if (value1.length !== value2.length) {
return false;
}
for (let i = 0; i < value1.length; i++) {
if (!isEqual(value1[i], value2[i])) {
return false;
}
}
return true;
}
if (typeof value1 === 'object' && typeof value2 === 'object') {
const keys1 = Object.keys(value1);
const keys2 = Object.keys(value2);
if (keys1.length !== keys2.length) {
return false;
}
for (const key of keys1) {
if (!isEqual(value1[key], value2[key])) {
return false;
}
}
return true;
}
return value1 === value2;
}