From 3973ceb634afe7b4f38678efe0394da84d9c60a1 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 5 Dec 2022 20:09:31 -0500 Subject: fix(npm): dependency types were sometimes not being resolved when package had no types entry (#16958) Closes #16957 --- cli/lsp/documents.rs | 12 ++++++------ cli/lsp/tsc.rs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'cli/lsp') diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index e922662ad..18464b178 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -943,7 +943,7 @@ impl Documents { /// tsc when type checking. pub fn resolve( &self, - specifiers: Vec, + specifiers: &[String], referrer: &ModuleSpecifier, maybe_npm_resolver: Option<&NpmPackageResolver>, ) -> Option>> { @@ -955,7 +955,7 @@ impl Documents { // we're in an npm package, so use node resolution results.push(Some(NodeResolution::into_specifier_and_media_type( node::node_resolve( - &specifier, + specifier, referrer, NodeResolutionMode::Types, npm_resolver, @@ -968,13 +968,13 @@ impl Documents { } // handle npm: urls if specifier.starts_with("asset:") { - if let Ok(specifier) = ModuleSpecifier::parse(&specifier) { + if let Ok(specifier) = ModuleSpecifier::parse(specifier) { let media_type = MediaType::from(&specifier); results.push(Some((specifier, media_type))); } else { results.push(None); } - } else if let Some(dep) = dependencies.deps.get(&specifier) { + } else if let Some(dep) = dependencies.deps.get(specifier) { if let Resolved::Ok { specifier, .. } = &dep.maybe_type { results.push(self.resolve_dependency(specifier, maybe_npm_resolver)); } else if let Resolved::Ok { specifier, .. } = &dep.maybe_code { @@ -983,12 +983,12 @@ impl Documents { results.push(None); } } else if let Some(Resolved::Ok { specifier, .. }) = - self.resolve_imports_dependency(&specifier) + self.resolve_imports_dependency(specifier) { // clone here to avoid double borrow of self let specifier = specifier.clone(); results.push(self.resolve_dependency(&specifier, maybe_npm_resolver)); - } else if let Ok(npm_ref) = NpmPackageReference::from_str(&specifier) { + } else if let Ok(npm_ref) = NpmPackageReference::from_str(specifier) { results.push(maybe_npm_resolver.map(|npm_resolver| { NodeResolution::into_specifier_and_media_type( node_resolve_npm_reference( diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 88de60131..f70359889 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -2726,7 +2726,7 @@ fn op_resolve( let referrer = state.normalize_specifier(&args.base)?; let result = if let Some(resolved) = state.state_snapshot.documents.resolve( - args.specifiers, + &args.specifiers, &referrer, state.state_snapshot.maybe_npm_resolver.as_ref(), ) { -- cgit v1.2.3