@@ -27,7 +27,7 @@ export async function loadConfig(
27
27
return tsLoaderInstance ( ...args ) ;
28
28
} ;
29
29
30
- const { searchPlaces, loaders} = getDynamicAwaitConfig ( ) ;
30
+ const { searchPlaces, loaders} = getDynamicAwaitConfig ( cwd ) ;
31
31
32
32
const explorer = cosmiconfig ( moduleName , {
33
33
searchPlaces : [
@@ -85,16 +85,38 @@ export const isDynamicAwaitSupported = () => {
85
85
86
86
// If dynamic await is supported (Node >= v20.8.0), support mjs config.
87
87
// Otherwise, don't support mjs and use synchronous js/cjs loaders.
88
- export const getDynamicAwaitConfig = ( ) : Partial < Options > =>
89
- isDynamicAwaitSupported ( )
90
- ? {
91
- searchPlaces : [ `.${ moduleName } rc.mjs` , `${ moduleName } .config.mjs` ] ,
92
- loaders : { } ,
93
- }
94
- : {
88
+ export const getDynamicAwaitConfig = ( cwd ?: string ) : Partial < Options > => {
89
+ const dynamic = isDynamicAwaitSupported ( ) ;
90
+ if ( dynamic ) {
91
+ return {
92
+ searchPlaces : [ `.${ moduleName } rc.mjs` , `${ moduleName } .config.mjs` ] ,
93
+ loaders : { } ,
94
+ } ;
95
+ }
96
+
97
+ if ( cwd ) {
98
+ let type = null ;
99
+ try {
100
+ const manifestPath = path . join ( cwd , 'package.json' ) ;
101
+ type = require ( manifestPath ) . type ;
102
+ } catch ( e ) {
103
+ // Do nothing
104
+ }
105
+ if ( type === 'module' ) {
106
+ return {
95
107
searchPlaces : [ ] ,
96
108
loaders : {
97
109
'.cjs' : defaultLoadersSync [ '.cjs' ] ,
98
- '.js' : defaultLoadersSync [ '.js' ] ,
99
110
} ,
100
- } ;
111
+ } ;
112
+ }
113
+ }
114
+
115
+ return {
116
+ searchPlaces : [ ] ,
117
+ loaders : {
118
+ '.cjs' : defaultLoadersSync [ '.cjs' ] ,
119
+ '.js' : defaultLoadersSync [ '.js' ] ,
120
+ } ,
121
+ } ;
122
+ } ;
0 commit comments