Skip to content

Commit 5b0ba07

Browse files
committed
fix
1 parent f58ca11 commit 5b0ba07

1 file changed

Lines changed: 15 additions & 13 deletions

File tree

src/livecodes/utils/utils.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -623,35 +623,37 @@ export const isFocusable = /* @__PURE__ */ (item: any | null): boolean => {
623623
* whose values are different from the destination object.
624624
*/
625625
export const compareObjects = /* @__PURE__ */ (
626-
srcObj: Record<string, unknown>,
627-
dstObj: Record<string, unknown>,
626+
srcObj: Partial<Record<string, unknown>>,
627+
dstObj: Partial<Record<string, unknown>>,
628628
) => {
629629
const diff: string[] = [];
630630
for (const key of Object.keys(srcObj)) {
631-
if (typeof srcObj[key] === 'function') {
631+
const srcObjProp = srcObj[key];
632+
const dstObjProp = dstObj[key];
633+
if (typeof srcObjProp === 'function') {
632634
continue;
633635
} else if (!(key in dstObj)) {
634636
diff.push(key);
635-
} else if (srcObj[key] !== null && typeof srcObj[key] === 'object') {
636-
if (Array.isArray(srcObj[key])) {
637-
if (!Array.isArray(dstObj[key])) {
637+
} else if (srcObjProp !== null && typeof srcObjProp === 'object') {
638+
if (!dstObjProp || typeof dstObjProp !== 'object') {
639+
diff.push(key);
640+
} else if (Array.isArray(srcObjProp)) {
641+
if (!Array.isArray(dstObjProp)) {
638642
diff.push(key);
639-
} else if (srcObj[key].length !== dstObj[key].length) {
643+
} else if (srcObjProp.length !== dstObjProp.length) {
640644
diff.push(key);
641645
} else {
642-
for (let i = 0; i < srcObj[key].length; i++) {
643-
if (srcObj[key][i] !== dstObj[key][i]) {
646+
for (let i = 0; i < srcObjProp.length; i++) {
647+
if (srcObjProp[i] !== dstObjProp[i]) {
644648
diff.push(`${key}[${i}]`);
645649
}
646650
}
647651
}
648652
} else {
649-
const objDiff = compareObjects(srcObj[key] as any, dstObj[key] as any).map(
650-
(k) => `${key}.${k}`,
651-
);
653+
const objDiff = compareObjects(srcObjProp, dstObjProp).map((k) => `${key}.${k}`);
652654
diff.push(...objDiff);
653655
}
654-
} else if (srcObj[key] !== dstObj[key]) {
656+
} else if (srcObjProp !== dstObjProp) {
655657
diff.push(key);
656658
}
657659
}

0 commit comments

Comments
 (0)