File tree Expand file tree Collapse file tree 1 file changed +14
-3
lines changed
Expand file tree Collapse file tree 1 file changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -10,14 +10,25 @@ const logger: Logger = new Logger(`json.utils:`, config.logLevel);
1010 * Flattens objects with nested properties for data view display.
1111 * @param obj Object to flatten.
1212 * @param preservePath Optional flag for generating key path.
13- * @param path Parent key path.
13+ * @param parentPath Parent key path.
1414 * @returns Flat Object.
1515 */
16- export function flattenObject ( obj : any , preservePath : boolean = false , path : string = '' ) : any {
16+ export function flattenObject ( obj : any , preservePath : boolean = false , parentPath : string = '' ) : any {
1717 const flatObject : any = { } ;
1818 Object . keys ( obj ) . forEach ( ( key ) => {
19+ if ( preservePath ) {
20+ if ( parentPath . length > 0 ) {
21+ parentPath = `${ parentPath } .${ key } ` ;
22+ } else {
23+ parentPath = key ;
24+ }
25+ }
1926 if ( typeof obj [ key ] === 'object' && obj [ key ] !== null ) {
20- Object . assign ( flatObject , this . flattenObject ( obj [ key ] ) , preservePath , path ) ;
27+ let children : any = { } ;
28+ Object . assign ( children , this . flattenObject ( obj [ key ] , preservePath , parentPath ) ) ;
29+ Object . keys ( children ) . forEach ( childKey => {
30+ flatObject [ `${ parentPath } .${ childKey } ` ] = children [ childKey ] ;
31+ } ) ;
2132 } else {
2233 flatObject [ key ] = obj [ key ] ;
2334 }
You can’t perform that action at this time.
0 commit comments