diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/Cargo.toml | 2 | ||||
-rw-r--r-- | cli/args/mod.rs | 28 | ||||
-rw-r--r-- | cli/lsp/config.rs | 71 |
3 files changed, 35 insertions, 66 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml index ad0a840fd..d1f1dc5d5 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -65,7 +65,7 @@ winres.workspace = true [dependencies] deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] } deno_cache_dir = { workspace = true } -deno_config = { version = "=0.34.3", features = ["workspace", "sync"] } +deno_config = { version = "=0.35.0", features = ["workspace", "sync"] } deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } deno_doc = { version = "0.148.0", features = ["html", "syntect"] } deno_graph = { version = "=0.82.1" } diff --git a/cli/args/mod.rs b/cli/args/mod.rs index cec1b53b2..b8a05f325 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1065,27 +1065,13 @@ impl CliOptions { None => None, } }; - Ok( - self - .workspace() - .create_resolver( - CreateResolverOptions { - pkg_json_dep_resolution, - specified_import_map: cli_arg_specified_import_map, - }, - |specifier| { - let specifier = specifier.clone(); - async move { - let file = file_fetcher - .fetch_bypass_permissions(&specifier) - .await? - .into_text_decoded()?; - Ok(file.source.to_string()) - } - }, - ) - .await?, - ) + Ok(self.workspace().create_resolver( + CreateResolverOptions { + pkg_json_dep_resolution, + specified_import_map: cli_arg_specified_import_map, + }, + |path| Ok(std::fs::read_to_string(path)?), + )?) } pub fn node_ipc_fd(&self) -> Option<i64> { diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 94fdff167..e55e7b734 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -1451,9 +1451,10 @@ impl ConfigData { // Mark the import map as a watched file if let Some(import_map_specifier) = member_dir .workspace - .to_import_map_specifier() + .to_import_map_path() .ok() .flatten() + .and_then(|path| Url::from_file_path(path).ok()) { add_watched_file( import_map_specifier.clone(), @@ -1542,50 +1543,32 @@ impl ConfigData { None } }; - let resolver = deno_core::unsync::spawn({ - let workspace = member_dir.workspace.clone(); - let file_fetcher = file_fetcher.cloned(); - async move { - workspace - .create_resolver( - CreateResolverOptions { - pkg_json_dep_resolution, - specified_import_map, - }, - move |specifier| { - let specifier = specifier.clone(); - let file_fetcher = file_fetcher.clone().unwrap(); - async move { - let file = file_fetcher - .fetch_bypass_permissions(&specifier) - .await? - .into_text_decoded()?; - Ok(file.source.to_string()) - } - }, - ) - .await - .inspect_err(|err| { - lsp_warn!( - " Failed to load resolver: {}", - err // will contain the specifier - ); - }) - .ok() - } - }) - .await - .unwrap() - .unwrap_or_else(|| { - // create a dummy resolver - WorkspaceResolver::new_raw( - scope.clone(), - None, - member_dir.workspace.resolver_jsr_pkgs().collect(), - member_dir.workspace.package_jsons().cloned().collect(), - pkg_json_dep_resolution, + let resolver = member_dir + .workspace + .create_resolver( + CreateResolverOptions { + pkg_json_dep_resolution, + specified_import_map, + }, + |path| Ok(std::fs::read_to_string(path)?), ) - }); + .inspect_err(|err| { + lsp_warn!( + " Failed to load resolver: {}", + err // will contain the specifier + ); + }) + .ok() + .unwrap_or_else(|| { + // create a dummy resolver + WorkspaceResolver::new_raw( + scope.clone(), + None, + member_dir.workspace.resolver_jsr_pkgs().collect(), + member_dir.workspace.package_jsons().cloned().collect(), + pkg_json_dep_resolution, + ) + }); if !resolver.diagnostics().is_empty() { lsp_warn!( " Import map diagnostics:\n{}", |