@@ -139,7 +139,13 @@ Module._resolveFilename = function (request, parent, isMain, options) {
139
139
&& ! parent ?. filename . includes ( nodeModulesPath )
140
140
) {
141
141
const possiblePaths = tsconfigPathsMatcher ( request ) ;
142
+
142
143
for ( const possiblePath of possiblePaths ) {
144
+ const tsFilename = resolveTsFilename . call ( this , possiblePath , parent , isMain , options ) ;
145
+ if ( tsFilename ) {
146
+ return tsFilename ;
147
+ }
148
+
143
149
try {
144
150
return resolveFilename . call (
145
151
this ,
@@ -152,32 +158,43 @@ Module._resolveFilename = function (request, parent, isMain, options) {
152
158
}
153
159
}
154
160
155
- /**
156
- * Typescript gives .ts, .cts, or .mts priority over actual .js, .cjs, or .mjs extensions
157
- */
158
- if ( parent && isTsFilePatten . test ( parent . filename ) ) {
159
- const tsPath = resolveTsPath ( request ) ;
160
-
161
- if ( tsPath ) {
162
- try {
163
- return resolveFilename . call (
164
- this ,
165
- tsPath ,
166
- parent ,
167
- isMain ,
168
- options ,
169
- ) ;
170
- } catch ( error ) {
171
- const { code } = error as any ;
172
- if (
173
- code !== 'MODULE_NOT_FOUND'
174
- && code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED'
175
- ) {
176
- throw error ;
177
- }
178
- }
179
- }
161
+ const tsFilename = resolveTsFilename . call ( this , request , parent , isMain , options ) ;
162
+ if ( tsFilename ) {
163
+ return tsFilename ;
180
164
}
181
165
182
166
return resolveFilename . call ( this , request , parent , isMain , options ) ;
183
167
} ;
168
+
169
+ /**
170
+ * Typescript gives .ts, .cts, or .mts priority over actual .js, .cjs, or .mjs extensions
171
+ */
172
+ function resolveTsFilename (
173
+ this : ThisType < typeof resolveFilename > ,
174
+ request : string ,
175
+ parent : any ,
176
+ isMain : boolean ,
177
+ options ?: any ,
178
+ ) {
179
+ const tsPath = resolveTsPath ( request ) ;
180
+
181
+ if ( parent && isTsFilePatten . test ( parent . filename ) && tsPath ) {
182
+ try {
183
+ return resolveFilename . call (
184
+ this ,
185
+ tsPath ,
186
+ parent ,
187
+ isMain ,
188
+ options ,
189
+ ) ;
190
+ } catch ( error ) {
191
+ const { code } = error as any ;
192
+ if (
193
+ code !== 'MODULE_NOT_FOUND'
194
+ && code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED'
195
+ ) {
196
+ throw error ;
197
+ }
198
+ }
199
+ }
200
+ }
0 commit comments