Skip to content

Commit 24034c9

Browse files
committed
feat: try extensionless file by default
1 parent 2369af0 commit 24034c9

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/index.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ export interface TsResolverOptions
7878

7979
const fileSystem = fs as FileSystem
8080

81+
const JS_EXT_PATTERN = /\.(?:[cm]js|jsx?)$/
82+
const RELATIVE_PATH_PATTERN = /^\.{1,2}(?:\/.*)?$/
83+
8184
let mappersBuildForOptions: TsResolverOptions
8285
let mappers: Array<((specifier: string) => string[]) | null> | undefined
8386
let resolver: Resolver
@@ -147,7 +150,7 @@ export function resolve(
147150
// naive attempt at @types/* resolution,
148151
// if path is neither absolute nor relative
149152
if (
150-
(/\.jsx?$/.test(foundNodePath!) ||
153+
(JS_EXT_PATTERN.test(foundNodePath!) ||
151154
(opts.alwaysTryTypes && !foundNodePath)) &&
152155
!/^@types[/\\]/.test(source) &&
153156
!path.isAbsolute(source) &&
@@ -238,9 +241,6 @@ function removeQuerystring(id: string) {
238241
return id
239242
}
240243

241-
const JS_EXT_PATTERN = /\.(?:[cm]js|jsx?)$/
242-
const RELATIVE_PATH_PATTERN = /^\.{1,2}(?:\/.*)?$/
243-
244244
/** Remove .js or .jsx extension from module id. */
245245
function removeJsExtension(id: string) {
246246
return id.replace(JS_EXT_PATTERN, '')
@@ -268,6 +268,8 @@ function getMappedPath(
268268
extensions = defaultExtensions,
269269
retry?: boolean,
270270
): string | undefined {
271+
extensions = ['', ...extensions]
272+
271273
let paths: string[] | undefined = []
272274

273275
if (RELATIVE_PATH_PATTERN.test(source)) {
@@ -278,9 +280,7 @@ function getMappedPath(
278280
} else {
279281
paths = mappers!
280282
.map(mapper =>
281-
mapper?.(source).map(item =>
282-
['', ...extensions].map(ext => `${item}${ext}`),
283-
),
283+
mapper?.(source).map(item => extensions.map(ext => `${item}${ext}`)),
284284
)
285285
.flat(2)
286286
.filter(isFile)

0 commit comments

Comments
 (0)