@@ -267,16 +267,22 @@ class Display {
267267        if  ( this . #outputState. buffering )  { 
268268          this . #outputState. buffer . push ( [ level ,  meta ,  ...args ] ) 
269269        }  else  { 
270-           // HACK: if it looks like the banner and we are in a state where we hide the 
271-           // banner then dont write any output. This hack can be replaced with proc-log.META 
272-           const  isBanner  =  args . length  ===  1  && 
273-             typeof  args [ 0 ]  ===  'string'  && 
274-             args [ 0 ] . startsWith ( '\n> ' )  && 
275-             args [ 0 ] . endsWith ( '\n' ) 
276-           const  hideBanner  =  this . #silent ||  [ 'exec' ,  'explore' ] . includes ( this . #command) 
277-           if  ( ! ( isBanner  &&  hideBanner ) )  { 
278-             this . #writeOutput( level ,  meta ,  ...args ) 
270+           // HACK: Check if the argument looks like a run-script banner. This can be 
271+           // replaced with proc-log.META in @npmcli/run-script 
272+           if  ( typeof  args [ 0 ]  ===  'string'  &&  args [ 0 ] . startsWith ( '\n> ' )  &&  args [ 0 ] . endsWith ( '\n' ) )  { 
273+             if  ( this . #silent ||  [ 'exec' ,  'explore' ] . includes ( this . #command) )  { 
274+               // Silent mode and some specific commands always hide run script banners 
275+               break 
276+             }  else  if  ( this . #json)  { 
277+               // In json mode, change output to stderr since we dont want to break json 
278+               // parsing on stdout if the user is piping to jq or something. 
279+               // XXX: in a future (breaking?) change it might make sense for run-script to 
280+               // always output these banners with proc-log.output.error if we think they 
281+               // align closer with "logging" instead of "output" 
282+               level  =  output . KEYS . error 
283+             } 
279284          } 
285+           this . #writeOutput( level ,  meta ,  ...args ) 
280286        } 
281287        break 
282288    } 
0 commit comments