@@ -87,8 +87,29 @@ export class V13ToV14Transformer {
8787 for ( const [ key , value ] of Object . entries ( nodeData ) ) {
8888 if ( key === 'ctes' && Array . isArray ( value ) ) {
8989 transformedData [ key ] = value . map ( item => this . transform ( item as any , context ) ) ;
90- } else if ( key === 'objname' && typeof value === 'object' && value !== null && ! Array . isArray ( value ) ) {
91- transformedData [ key ] = this . transform ( value as any , context ) ;
90+ } else if ( key === 'objname' && typeof value === 'object' && value !== null ) {
91+ console . log ( 'transformGenericNode: Processing objname:' , {
92+ isArray : Array . isArray ( value ) ,
93+ value : JSON . stringify ( value , null , 2 ) ,
94+ keys : Object . keys ( value )
95+ } ) ;
96+ if ( Array . isArray ( value ) ) {
97+ console . log ( 'transformGenericNode: objname is array, transforming items' ) ;
98+ transformedData [ key ] = value . map ( item => this . transform ( item as any , context ) ) ;
99+ } else {
100+ const keys = Object . keys ( value ) ;
101+ const isNumericKeysObject = keys . every ( k => / ^ \d + $ / . test ( k ) ) ;
102+ console . log ( 'transformGenericNode: objname is object, isNumericKeysObject:' , isNumericKeysObject , 'keys:' , keys ) ;
103+ if ( isNumericKeysObject && keys . length > 0 ) {
104+ const sortedKeys = keys . sort ( ( a , b ) => parseInt ( a ) - parseInt ( b ) ) ;
105+ console . log ( 'transformGenericNode: Converting numeric keys object to array, sortedKeys:' , sortedKeys ) ;
106+ transformedData [ key ] = sortedKeys . map ( k => this . transform ( ( value as any ) [ k ] , context ) ) ;
107+ } else {
108+ // Regular object transformation
109+ console . log ( 'transformGenericNode: Regular object transformation for objname' ) ;
110+ transformedData [ key ] = this . transform ( value as any , context ) ;
111+ }
112+ }
92113 } else if ( Array . isArray ( value ) ) {
93114 transformedData [ key ] = value . map ( item => this . transform ( item as any , context ) ) ;
94115 } else if ( typeof value === 'object' && value !== null ) {
0 commit comments