summaryrefslogtreecommitdiff
path: root/cli/lsp/documents.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/documents.rs')
-rw-r--r--cli/lsp/documents.rs71
1 files changed, 39 insertions, 32 deletions
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs
index 57957780b..e29ad785e 100644
--- a/cli/lsp/documents.rs
+++ b/cli/lsp/documents.rs
@@ -37,9 +37,11 @@ use deno_core::ModuleSpecifier;
use deno_graph::source::ResolutionMode;
use deno_graph::GraphImport;
use deno_graph::Resolution;
+use deno_runtime::deno_fs::RealFs;
use deno_runtime::deno_node;
use deno_runtime::deno_node::NodeResolution;
use deno_runtime::deno_node::NodeResolutionMode;
+use deno_runtime::deno_node::NodeResolver;
use deno_runtime::deno_node::PackageJson;
use deno_runtime::permissions::PermissionsContainer;
use deno_semver::npm::NpmPackageReqReference;
@@ -899,6 +901,7 @@ pub struct UpdateDocumentConfigOptions<'a> {
pub maybe_import_map: Option<Arc<import_map::ImportMap>>,
pub maybe_config_file: Option<&'a ConfigFile>,
pub maybe_package_json: Option<&'a PackageJson>,
+ pub node_resolver: Option<Arc<NodeResolver>>,
pub npm_resolver: Option<Arc<dyn CliNpmResolver>>,
}
@@ -955,16 +958,17 @@ impl Documents {
file_system_docs: Default::default(),
resolver_config_hash: 0,
imports: Default::default(),
- resolver: Arc::new(CliGraphResolver::new(
- None,
- Arc::new(PackageJsonDepsProvider::default()),
- CliGraphResolverOptions {
- maybe_jsx_import_source_config: None,
- maybe_import_map: None,
- maybe_vendor_dir: None,
- bare_node_builtins_enabled: false,
- },
- )),
+ resolver: Arc::new(CliGraphResolver::new(CliGraphResolverOptions {
+ fs: Arc::new(RealFs),
+ node_resolver: None,
+ npm_resolver: None,
+ cjs_resolutions: None,
+ package_json_deps_provider: Arc::new(PackageJsonDepsProvider::default()),
+ maybe_jsx_import_source_config: None,
+ maybe_import_map: None,
+ maybe_vendor_dir: None,
+ bare_node_builtins_enabled: false,
+ })),
npm_specifier_reqs: Default::default(),
has_injected_types_node_package: false,
specifier_resolver: Arc::new(SpecifierResolver::new(cache)),
@@ -1329,7 +1333,7 @@ impl Documents {
if let Some(package_json_deps) = &maybe_package_json_deps {
// We need to ensure the hashing is deterministic so explicitly type
// this in order to catch if the type of package_json_deps ever changes
- // from a sorted/deterministic IndexMap to something else.
+ // from a deterministic IndexMap to something else.
let package_json_deps: &IndexMap<_, _> = *package_json_deps;
for (key, value) in package_json_deps {
hasher.write_hashable(key);
@@ -1364,27 +1368,28 @@ impl Documents {
);
let deps_provider =
Arc::new(PackageJsonDepsProvider::new(maybe_package_json_deps));
- self.resolver = Arc::new(CliGraphResolver::new(
- options.npm_resolver,
- deps_provider,
- CliGraphResolverOptions {
- maybe_jsx_import_source_config: maybe_jsx_config,
- maybe_import_map: options.maybe_import_map,
- maybe_vendor_dir: options
- .maybe_config_file
- .and_then(|c| c.vendor_dir_path())
- .as_ref(),
- bare_node_builtins_enabled: options
- .maybe_config_file
- .map(|config| {
- config
- .json
- .unstable
- .contains(&"bare-node-builtins".to_string())
- })
- .unwrap_or(false),
- },
- ));
+ self.resolver = Arc::new(CliGraphResolver::new(CliGraphResolverOptions {
+ fs: Arc::new(RealFs),
+ node_resolver: options.node_resolver,
+ npm_resolver: options.npm_resolver,
+ cjs_resolutions: None, // only used for runtime
+ package_json_deps_provider: deps_provider,
+ maybe_jsx_import_source_config: maybe_jsx_config,
+ maybe_import_map: options.maybe_import_map,
+ maybe_vendor_dir: options
+ .maybe_config_file
+ .and_then(|c| c.vendor_dir_path())
+ .as_ref(),
+ bare_node_builtins_enabled: options
+ .maybe_config_file
+ .map(|config| {
+ config
+ .json
+ .unstable
+ .contains(&"bare-node-builtins".to_string())
+ })
+ .unwrap_or(false),
+ }));
self.imports = Arc::new(
if let Some(Ok(imports)) =
options.maybe_config_file.map(|cf| cf.to_maybe_imports())
@@ -2194,6 +2199,7 @@ console.log(b, "hello deno");
maybe_import_map: Some(Arc::new(import_map)),
maybe_config_file: None,
maybe_package_json: None,
+ node_resolver: None,
npm_resolver: None,
});
@@ -2235,6 +2241,7 @@ console.log(b, "hello deno");
maybe_import_map: Some(Arc::new(import_map)),
maybe_config_file: None,
maybe_package_json: None,
+ node_resolver: None,
npm_resolver: None,
});