@@ -623,35 +623,37 @@ export const isFocusable = /* @__PURE__ */ (item: any | null): boolean => {
623623 * whose values are different from the destination object.
624624 */
625625export 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