@@ -424,6 +424,18 @@ class Shrinkwrap {
424424 . map ( fn => fn && maybeStatFile ( fn ) ) )
425425 }
426426
427+ inferFormattingOptions ( packageJSONData ) {
428+ // don't use detect-indent, just pick the first line.
429+ // if the file starts with {" then we have an indent of '', ie, none
430+ // which will default to 2 at save time.
431+ const {
432+ [ Symbol . for ( 'indent' ) ] : indent ,
433+ [ Symbol . for ( 'newline' ) ] : newline ,
434+ } = packageJSONData
435+ this . indent = indent !== undefined ? indent : this . indent
436+ this . newline = newline !== undefined ? newline : this . newline
437+ }
438+
427439 load ( ) {
428440 // we don't need to load package-lock.json except for top of tree nodes,
429441 // only npm-shrinkwrap.json.
@@ -451,15 +463,7 @@ class Shrinkwrap {
451463
452464 return data ? parseJSON ( data ) : { }
453465 } ) . then ( async data => {
454- // don't use detect-indent, just pick the first line.
455- // if the file starts with {" then we have an indent of '', ie, none
456- // which will default to 2 at save time.
457- const {
458- [ Symbol . for ( 'indent' ) ] : indent ,
459- [ Symbol . for ( 'newline' ) ] : newline ,
460- } = data
461- this . indent = indent !== undefined ? indent : this . indent
462- this . newline = newline !== undefined ? newline : this . newline
466+ this . inferFormattingOptions ( data )
463467
464468 if ( ! this . hiddenLockfile || ! data . packages ) {
465469 return data
0 commit comments