@@ -322,44 +322,33 @@ function filterKeys(obj: unknown, keys: Set<string>, depth = 0): any {
322322
323323 if ( Array . isArray ( obj ) ) {
324324 const isTruncated = obj . length > MAX_ARRAY_LENGTH ;
325- const length = isTruncated ? MAX_ARRAY_LENGTH : obj . length ;
326- let filteredItems : unknown [ ] | undefined = isTruncated ? [ ] : undefined ;
327-
328- for ( let index = 0 ; index < length ; index ++ ) {
329- const item = obj [ index ] ;
330- const filteredItem = filterKeys ( item , keys , depth + 1 ) ;
331-
332- if ( filteredItems ) {
333- filteredItems . push ( filteredItem ) ;
334- } else if ( filteredItem !== item ) {
335- filteredItems = obj . slice ( 0 , index ) ;
336- filteredItems . push ( filteredItem ) ;
337- }
338- }
325+ const items = ( isTruncated ? obj . slice ( 0 , MAX_ARRAY_LENGTH ) : obj ) . map ( ( item ) =>
326+ filterKeys ( item , keys , depth + 1 )
327+ ) ;
339328
340329 if ( isTruncated ) {
341- filteredItems ! . push ( `[truncated ${ obj . length - MAX_ARRAY_LENGTH } more items]` ) ;
330+ items . push ( `[truncated ${ obj . length - MAX_ARRAY_LENGTH } more items]` ) ;
342331 }
343332
344- return filteredItems ?? obj ;
333+ return items ;
345334 }
346335
347- let filteredObj : Record < string , unknown > | undefined ;
336+ const filteredObj : any = { } ;
348337
349338 for ( const [ key , value ] of Object . entries ( obj ) ) {
350- const filteredValue = keys . has ( key . toLowerCase ( ) )
351- ? value
352- ? `[filtered ${ prettyPrintBytes ( value ) } ]`
353- : value
354- : filterKeys ( value , keys , depth + 1 ) ;
355-
356- if ( filteredValue !== value ) {
357- filteredObj ??= { ...( obj as Record < string , unknown > ) } ;
358- filteredObj [ key ] = filteredValue ;
339+ if ( keys . has ( key . toLowerCase ( ) ) ) {
340+ if ( value ) {
341+ filteredObj [ key ] = `[filtered ${ prettyPrintBytes ( value ) } ]` ;
342+ } else {
343+ filteredObj [ key ] = value ;
344+ }
345+ continue ;
359346 }
347+
348+ filteredObj [ key ] = filterKeys ( value , keys , depth + 1 ) ;
360349 }
361350
362- return filteredObj ?? obj ;
351+ return filteredObj ;
363352}
364353
365354function truncateString ( value : string ) : string {
0 commit comments