From d0a4e23ae824baf1994291d8480be29719f1b99a Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 25 Nov 2022 13:42:05 -0500 Subject: fix(npm): better error message when attempting to use typescript in npm packages (#16813) --- cli/node/mod.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'cli/node/mod.rs') diff --git a/cli/node/mod.rs b/cli/node/mod.rs index 8f0f0ef6d..fc4db33ee 100644 --- a/cli/node/mod.rs +++ b/cli/node/mod.rs @@ -703,20 +703,25 @@ pub fn url_to_node_resolution( npm_resolver: &dyn RequireNpmResolver, ) -> Result { let url_str = url.as_str().to_lowercase(); - Ok(if url_str.starts_with("http") { - NodeResolution::Esm(url) + if url_str.starts_with("http") { + Ok(NodeResolution::Esm(url)) } else if url_str.ends_with(".js") || url_str.ends_with(".d.ts") { let package_config = get_closest_package_json(&url, npm_resolver)?; if package_config.typ == "module" { - NodeResolution::Esm(url) + Ok(NodeResolution::Esm(url)) } else { - NodeResolution::CommonJs(url) + Ok(NodeResolution::CommonJs(url)) } } else if url_str.ends_with(".mjs") || url_str.ends_with(".d.mts") { - NodeResolution::Esm(url) + Ok(NodeResolution::Esm(url)) + } else if url_str.ends_with(".ts") { + Err(generic_error(format!( + "TypeScript files are not supported in npm packages: {}", + url + ))) } else { - NodeResolution::CommonJs(url) - }) + Ok(NodeResolution::CommonJs(url)) + } } fn finalize_resolution( -- cgit v1.2.3