@@ -9,40 +9,15 @@ const NO_SUCH_FILE = Symbol('no ava.config.js file');
99const MISSING_DEFAULT_EXPORT = Symbol ( 'missing default export' ) ;
1010const EXPERIMENTS = new Set ( [ 'tryAssertion' ] ) ;
1111
12- class LegacyCommonJsAccessError extends Error {
13- constructor ( thing , fileForErrorMessage ) {
14- super ( `${ thing } is not available in ${ fileForErrorMessage } . Use a .cjs file instead` ) ;
15- this . name = 'LegacyCommonJsAccessError' ;
16- }
17- }
18-
1912// *Very* rudimentary support for loading ava.config.js files containing an `export default` statement.
20- const evaluateJsConfig = ( configFile , fileForErrorMessage ) => {
13+ const evaluateJsConfig = configFile => {
2114 const contents = fs . readFileSync ( configFile , 'utf8' ) ;
2215 const script = new vm . Script ( `'use strict';(()=>{let __export__;\n${ contents . replace ( / e x p o r t d e f a u l t / g, '__export__ =' ) } ;return __export__;})()` , {
2316 filename : configFile ,
2417 lineOffset : - 1
2518 } ) ;
2619 return {
27- default : script . runInNewContext ( {
28- console,
29- process,
30- get __dirname ( ) {
31- throw new LegacyCommonJsAccessError ( '__dirname' , fileForErrorMessage ) ;
32- } ,
33- get __filename ( ) {
34- throw new LegacyCommonJsAccessError ( '__filename' , fileForErrorMessage ) ;
35- } ,
36- get module ( ) {
37- throw new LegacyCommonJsAccessError ( 'module' , fileForErrorMessage ) ;
38- } ,
39- get exports ( ) {
40- throw new LegacyCommonJsAccessError ( 'exports' , fileForErrorMessage ) ;
41- } ,
42- get require ( ) {
43- throw new LegacyCommonJsAccessError ( 'require()' , fileForErrorMessage ) ;
44- }
45- } )
20+ default : script . runInThisContext ( )
4621 } ;
4722} ;
4823
@@ -55,17 +30,13 @@ const loadJsConfig = ({projectDir, configFile = path.join(projectDir, 'ava.confi
5530
5631 let config ;
5732 try {
58- ( { default : config = MISSING_DEFAULT_EXPORT } = evaluateJsConfig ( configFile , fileForErrorMessage ) ) ;
33+ ( { default : config = MISSING_DEFAULT_EXPORT } = evaluateJsConfig ( configFile ) ) ;
5934 } catch ( error ) {
6035 if ( error . code === 'ENOENT' ) {
6136 return null ;
6237 }
6338
64- if ( error . name === 'LegacyCommonJsAccessError' ) {
65- throw error ;
66- } else {
67- throw Object . assign ( new Error ( `Error loading ${ fileForErrorMessage } ` ) , { parent : error } ) ;
68- }
39+ throw Object . assign ( new Error ( `Error loading ${ fileForErrorMessage } : ${ error . message } ` ) , { parent : error } ) ;
6940 }
7041
7142 if ( config === MISSING_DEFAULT_EXPORT ) {
0 commit comments