fix(resolver): resolve tsconfig extend that are extensionless (#971)

This commit is contained in:
Boshen 2023-10-09 16:10:03 +08:00 committed by GitHub
parent 4ce525c66d
commit 61bc142d95
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 3 deletions

View file

@ -0,0 +1,3 @@
{
"extends": "tsconfig-field/conf"
}

View file

@ -956,7 +956,7 @@ impl<Fs: FileSystem> ResolverGeneric<Fs> {
_ => self
.clone_with_options(ResolveOptions {
description_files: vec![],
extensions: vec![],
extensions: vec![".json".into()],
main_files: vec!["tsconfig.json".into()],
..ResolveOptions::default()
})
@ -966,7 +966,9 @@ impl<Fs: FileSystem> ResolverGeneric<Fs> {
&mut ResolveContext::default(),
)
.map_err(|err| match err {
ResolveError::NotFound(path) => ResolveError::TsconfigNotFound(path),
ResolveError::NotFound(_) => ResolveError::TsconfigNotFound(
PathBuf::from(tsconfig_extend_specifier),
),
_ => err,
})?
.to_path_buf(),

View file

@ -24,7 +24,8 @@ fn tsconfig() {
// This requires reading package.json.tsconfig field
// (f.join("tsconfig/field"), "foo", f.join("node_modules/tsconfig-field/foo.js"))
(f.join("tsconfig/exports"), "foo", f.join("node_modules/tsconfig-exports/foo.js")),
(f.join("tsconfig/extends-extension"), "foo", f.join("tsconfig/extends-extension/foo.js"))
(f.join("tsconfig/extends-extension"), "foo", f.join("tsconfig/extends-extension/foo.js")),
(f.join("tsconfig/extends-extensionless"), "foo", f.join("node_modules/tsconfig-field/foo.js"))
];
for (path, request, expected) in pass {