diff --git a/crates/oxc_resolver/fixtures/parcel/tsconfig/extends-extensionless/foo.js b/crates/oxc_resolver/fixtures/parcel/tsconfig/extends-extensionless/foo.js new file mode 100644 index 000000000..e69de29bb diff --git a/crates/oxc_resolver/fixtures/parcel/tsconfig/extends-extensionless/tsconfig.json b/crates/oxc_resolver/fixtures/parcel/tsconfig/extends-extensionless/tsconfig.json new file mode 100644 index 000000000..c36cb7d44 --- /dev/null +++ b/crates/oxc_resolver/fixtures/parcel/tsconfig/extends-extensionless/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "tsconfig-field/conf" +} diff --git a/crates/oxc_resolver/src/lib.rs b/crates/oxc_resolver/src/lib.rs index b8ee29280..d619dc9a4 100644 --- a/crates/oxc_resolver/src/lib.rs +++ b/crates/oxc_resolver/src/lib.rs @@ -956,7 +956,7 @@ impl ResolverGeneric { _ => 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 ResolverGeneric { &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(), diff --git a/crates/oxc_resolver/src/tests/tsconfig_paths.rs b/crates/oxc_resolver/src/tests/tsconfig_paths.rs index 7fc28816d..3e2433b16 100644 --- a/crates/oxc_resolver/src/tests/tsconfig_paths.rs +++ b/crates/oxc_resolver/src/tests/tsconfig_paths.rs @@ -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 {