summaryrefslogtreecommitdiff
path: root/cli/lsp/analysis.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-10-02 17:53:55 -0400
committerGitHub <noreply@github.com>2023-10-02 17:53:55 -0400
commit148694eb351ea3f733852b7786a3268617811e27 (patch)
tree0390f1dcf7bb9b013a5bf47b0b9b4ea9689ba1b5 /cli/lsp/analysis.rs
parentd5b6c636b09823bfaa97fe8cd382b654d85d2add (diff)
refactor(npm): make `NpmCache`, `CliNpmRegistryApi`, and `NpmResolution` internal to `npm::managed` (#20764)
Diffstat (limited to 'cli/lsp/analysis.rs')
-rw-r--r--cli/lsp/analysis.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs
index 8b2560f16..6515e7dc0 100644
--- a/cli/lsp/analysis.rs
+++ b/cli/lsp/analysis.rs
@@ -161,14 +161,14 @@ fn code_as_string(code: &Option<lsp::NumberOrString>) -> String {
pub struct TsResponseImportMapper<'a> {
documents: &'a Documents,
maybe_import_map: Option<&'a ImportMap>,
- npm_resolver: &'a dyn CliNpmResolver,
+ npm_resolver: Option<&'a dyn CliNpmResolver>,
}
impl<'a> TsResponseImportMapper<'a> {
pub fn new(
documents: &'a Documents,
maybe_import_map: Option<&'a ImportMap>,
- npm_resolver: &'a dyn CliNpmResolver,
+ npm_resolver: Option<&'a dyn CliNpmResolver>,
) -> Self {
Self {
documents,
@@ -194,7 +194,9 @@ impl<'a> TsResponseImportMapper<'a> {
}
}
- if let Some(npm_resolver) = self.npm_resolver.as_managed() {
+ if let Some(npm_resolver) =
+ self.npm_resolver.as_ref().and_then(|r| r.as_managed())
+ {
if npm_resolver.in_npm_package(specifier) {
if let Ok(Some(pkg_id)) =
npm_resolver.resolve_pkg_id_from_specifier(specifier)
@@ -250,8 +252,8 @@ impl<'a> TsResponseImportMapper<'a> {
let specifier_path = specifier.to_file_path().ok()?;
let root_folder = self
.npm_resolver
- .resolve_pkg_folder_from_specifier(specifier)
- .ok()
+ .as_ref()
+ .and_then(|r| r.resolve_pkg_folder_from_specifier(specifier).ok())
.flatten()?;
let package_json_path = root_folder.join("package.json");
let package_json_text = std::fs::read_to_string(&package_json_path).ok()?;