1
- 'use strict' ;
2
1
const fs = require ( 'fs' ) ;
3
2
const path = require ( 'path' ) ;
4
3
const installPrecompiler = require ( '@ava/require-precompiled' ) ;
@@ -9,7 +8,7 @@ const convertSourceMap = require('convert-source-map');
9
8
const dotProp = require ( 'dot-prop' ) ;
10
9
const escapeStringRegexp = require ( 'escape-string-regexp' ) ;
11
10
const findUp = require ( 'find-up' ) ;
12
- const isPlainObject = require ( 'is-plain-object' ) ;
11
+ const { isPlainObject} = require ( 'is-plain-object' ) ;
13
12
const md5Hex = require ( 'md5-hex' ) ;
14
13
const packageHash = require ( 'package-hash' ) ;
15
14
const pkgConf = require ( 'pkg-conf' ) ;
@@ -37,8 +36,8 @@ function enableParserPlugins(api) {
37
36
38
37
return {
39
38
name : 'ava-babel-pipeline-enable-parser-plugins' ,
40
- manipulateOptions ( _ , parserOpts ) {
41
- parserOpts . plugins . push (
39
+ manipulateOptions ( _ , parserOptions ) {
40
+ parserOptions . plugins . push (
42
41
'bigInt' ,
43
42
'classPrivateProperties' ,
44
43
'classProperties' ,
@@ -77,13 +76,13 @@ function wantsStage4(babelOptions, projectDir) {
77
76
return true ;
78
77
}
79
78
80
- const stage4 = require ( './stage-4' ) ;
81
- return babelOptions . presets . every ( arr => {
82
- if ( ! Array . isArray ( arr ) ) {
79
+ const stage4 = require ( './stage-4.js ' ) ;
80
+ return babelOptions . presets . every ( array => {
81
+ if ( ! Array . isArray ( array ) ) {
83
82
return true ; // There aren't any preset options.
84
83
}
85
84
86
- const [ ref , options ] = arr ;
85
+ const [ ref , options ] = array ;
87
86
// Require the preset to handle any aliasing that may be taking place.
88
87
const resolved = require ( babel . resolvePreset ( ref , projectDir ) ) ;
89
88
return resolved !== stage4 || options !== false ;
@@ -119,12 +118,7 @@ function hashPartialConfig({babelrc, config, options: {plugins, presets}}, proje
119
118
}
120
119
121
120
const [ firstComponent ] = path . relative ( projectDir , filename ) . split ( path . sep ) ;
122
- let hash ;
123
- if ( firstComponent === 'node_modules' ) {
124
- hash = packageHash . sync ( findUp . sync ( 'package.json' , { cwd : path . dirname ( filename ) } ) ) ;
125
- } else {
126
- hash = md5Hex ( stripBomBuf ( fs . readFileSync ( filename ) ) ) ;
127
- }
121
+ const hash = firstComponent === 'node_modules' ? packageHash . sync ( findUp . sync ( 'package.json' , { cwd : path . dirname ( filename ) } ) ) : md5Hex ( stripBomBuf ( fs . readFileSync ( filename ) ) ) ;
128
122
129
123
pluginAndPresetHashes . set ( filename , hash ) ;
130
124
inputs . push ( hash ) ;
@@ -182,12 +176,12 @@ function createCompileFn({babelOptions, cacheDir, compileEnhancements, projectDi
182
176
const { options : partialOptions } = partialConfig ;
183
177
partialOptions . plugins . push ( enableParserPlugins ) ;
184
178
185
- if ( ensureStage4 && ! partialOptions . presets . some ( containsStage4 ) ) {
179
+ if ( ensureStage4 && ! partialOptions . presets . some ( preset => containsStage4 ( preset ) ) ) {
186
180
// Apply last.
187
181
partialOptions . presets . unshift ( createConfigItem ( './stage-4' , 'preset' ) ) ;
188
182
}
189
183
190
- if ( compileEnhancements && ! partialOptions . presets . some ( containsTransformTestFiles ) ) {
184
+ if ( compileEnhancements && ! partialOptions . presets . some ( preset => containsTransformTestFiles ( preset ) ) ) {
191
185
// Apply first.
192
186
partialOptions . presets . push ( createConfigItem ( './transform-test-files' , 'preset' , { powerAssert : true } ) ) ;
193
187
}
@@ -344,13 +338,13 @@ module.exports = ({negotiateProtocol}) => {
344
338
}
345
339
346
340
return {
347
- extensions : extensions . slice ( ) ,
341
+ extensions : [ ... extensions ] ,
348
342
lookup
349
343
} ;
350
344
} ,
351
345
352
346
get extensions ( ) {
353
- return extensions . slice ( ) ;
347
+ return [ ... extensions ] ;
354
348
}
355
349
} ;
356
350
} ,
0 commit comments