From 8698492128310f713993bb115985d41d3fdca2db Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 1 Apr 2024 02:07:11 -0400 Subject: fix(node): handle empty 'main' entry in pkg json (#23155) --- ext/node/package_json.rs | 7 ++++--- ext/node/resolution.rs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'ext/node') diff --git a/ext/node/package_json.rs b/ext/node/package_json.rs index 9d6a491b5..9ac3a0969 100644 --- a/ext/node/package_json.rs +++ b/ext/node/package_json.rs @@ -213,12 +213,13 @@ impl PackageJson { Ok(package_json) } - pub fn main(&self, referrer_kind: NodeModuleKind) -> Option<&String> { - if referrer_kind == NodeModuleKind::Esm && self.typ == "module" { + pub fn main(&self, referrer_kind: NodeModuleKind) -> Option<&str> { + let main = if referrer_kind == NodeModuleKind::Esm && self.typ == "module" { self.module.as_ref().or(self.main.as_ref()) } else { self.main.as_ref() - } + }; + main.map(|m| m.trim()).filter(|m| !m.is_empty()) } pub fn specifier(&self) -> ModuleSpecifier { diff --git a/ext/node/resolution.rs b/ext/node/resolution.rs index d878a5059..50c4e2bb5 100644 --- a/ext/node/resolution.rs +++ b/ext/node/resolution.rs @@ -1232,7 +1232,7 @@ impl NodeResolver { ) -> Result, AnyError> { let maybe_main = if mode.is_types() { match package_json.types.as_ref() { - Some(types) => Some(types), + Some(types) => Some(types.as_str()), None => { // fallback to checking the main entrypoint for // a corresponding declaration file -- cgit v1.2.3