summaryrefslogtreecommitdiff
path: root/cli/node/mod.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-11-25 13:42:05 -0500
committerGitHub <noreply@github.com>2022-11-25 13:42:05 -0500
commitd0a4e23ae824baf1994291d8480be29719f1b99a (patch)
treec7d608596c29df0fa0d8b87d527d6897759a79fc /cli/node/mod.rs
parent8fc62f93bfeb63edf2ee875ee5d4f8b63728f838 (diff)
fix(npm): better error message when attempting to use typescript in npm packages (#16813)
Diffstat (limited to 'cli/node/mod.rs')
-rw-r--r--cli/node/mod.rs19
1 files changed, 12 insertions, 7 deletions
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<NodeResolution, AnyError> {
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(