@@ -173,23 +173,28 @@ function tryStringify(arg) {
173173 }
174174}
175175
176- function format ( f ) {
176+ const emptyOptions = { } ;
177+ function format ( ...args ) {
178+ return formatWithOptions ( emptyOptions , ...args ) ;
179+ }
180+
181+ function formatWithOptions ( inspectOptions , f ) {
177182 let i , tempStr ;
178183 if ( typeof f !== 'string' ) {
179- if ( arguments . length === 0 ) return '' ;
184+ if ( arguments . length === 1 ) return '' ;
180185 let res = '' ;
181- for ( i = 0 ; i < arguments . length - 1 ; i ++ ) {
182- res += inspect ( arguments [ i ] ) ;
186+ for ( i = 1 ; i < arguments . length - 1 ; i ++ ) {
187+ res += inspect ( arguments [ i ] , inspectOptions ) ;
183188 res += ' ' ;
184189 }
185- res += inspect ( arguments [ i ] ) ;
190+ res += inspect ( arguments [ i ] , inspectOptions ) ;
186191 return res ;
187192 }
188193
189- if ( arguments . length === 1 ) return f ;
194+ if ( arguments . length === 2 ) return f ;
190195
191196 let str = '' ;
192- let a = 1 ;
197+ let a = 2 ;
193198 let lastPos = 0 ;
194199 for ( i = 0 ; i < f . length - 1 ; i ++ ) {
195200 if ( f . charCodeAt ( i ) === 37 ) { // '%'
@@ -206,12 +211,17 @@ function format(f) {
206211 tempStr = `${ Number ( arguments [ a ++ ] ) } ` ;
207212 break ;
208213 case 79 : // 'O'
209- tempStr = inspect ( arguments [ a ++ ] ) ;
214+ tempStr = inspect ( arguments [ a ++ ] , inspectOptions ) ;
210215 break ;
211216 case 111 : // 'o'
212- tempStr = inspect ( arguments [ a ++ ] ,
213- { showHidden : true , showProxy : true } ) ;
217+ {
218+ const opts = Object . assign ( { } , inspectOptions , {
219+ showHidden : true ,
220+ showProxy : true
221+ } ) ;
222+ tempStr = inspect ( arguments [ a ++ ] , opts ) ;
214223 break ;
224+ }
215225 case 105 : // 'i'
216226 tempStr = `${ parseInt ( arguments [ a ++ ] ) } ` ;
217227 break ;
@@ -244,7 +254,7 @@ function format(f) {
244254 if ( ( typeof x !== 'object' && typeof x !== 'symbol' ) || x === null ) {
245255 str += ` ${ x } ` ;
246256 } else {
247- str += ` ${ inspect ( x ) } ` ;
257+ str += ` ${ inspect ( x , inspectOptions ) } ` ;
248258 }
249259 }
250260 return str ;
@@ -1206,6 +1216,7 @@ module.exports = exports = {
12061216 debuglog,
12071217 deprecate,
12081218 format,
1219+ formatWithOptions,
12091220 getSystemErrorName,
12101221 inherits,
12111222 inspect,
0 commit comments