diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-04-24 19:44:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-24 19:44:35 -0400 |
commit | aa286fdecb15461ef8ddd4c372f5a13e01e1cb7b (patch) | |
tree | 47ddc4e428b650fae536c3c1eb73ae5a64c4fe6a /cli/proc_state.rs | |
parent | bb74e75a049768c2949aa08de6752a16813b97de (diff) |
refactor(ext/node): allow injecting `NodeFs` from CLI (#18829)
This allows providing a `NodeFs` as part of the `WorkerOptions`.
Diffstat (limited to 'cli/proc_state.rs')
-rw-r--r-- | cli/proc_state.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cli/proc_state.rs b/cli/proc_state.rs index 6b7e9b1f2..b6529d3a0 100644 --- a/cli/proc_state.rs +++ b/cli/proc_state.rs @@ -19,7 +19,6 @@ use crate::http_util::HttpClient; use crate::module_loader::ModuleLoadPreparer; use crate::node::CliCjsEsmCodeAnalyzer; use crate::node::CliNodeCodeTranslator; -use crate::node::CliNodeResolver; use crate::npm::create_npm_fs_resolver; use crate::npm::CliNpmRegistryApi; use crate::npm::CliNpmResolver; @@ -38,6 +37,7 @@ use deno_core::ModuleSpecifier; use deno_core::SharedArrayBufferStore; use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; +use deno_runtime::deno_node; use deno_runtime::deno_node::analyze::NodeCodeTranslator; use deno_runtime::deno_node::NodeResolver; use deno_runtime::deno_tls::rustls::RootCertStore; @@ -79,7 +79,8 @@ pub struct Inner { pub module_graph_builder: Arc<ModuleGraphBuilder>, pub module_load_preparer: Arc<ModuleLoadPreparer>, pub node_code_translator: Arc<CliNodeCodeTranslator>, - pub node_resolver: Arc<CliNodeResolver>, + pub node_fs: Arc<dyn deno_node::NodeFs>, + pub node_resolver: Arc<NodeResolver>, pub npm_api: Arc<CliNpmRegistryApi>, pub npm_cache: Arc<NpmCache>, pub npm_resolver: Arc<CliNpmResolver>, @@ -150,6 +151,7 @@ impl ProcState { module_graph_builder: self.module_graph_builder.clone(), module_load_preparer: self.module_load_preparer.clone(), node_code_translator: self.node_code_translator.clone(), + node_fs: self.node_fs.clone(), node_resolver: self.node_resolver.clone(), npm_api: self.npm_api.clone(), npm_cache: self.npm_cache.clone(), @@ -245,7 +247,9 @@ impl ProcState { npm_snapshot, lockfile.as_ref().cloned(), )); + let node_fs = Arc::new(deno_node::RealFs); let npm_fs_resolver = create_npm_fs_resolver( + node_fs.clone(), npm_cache, &progress_bar, npm_registry_url, @@ -308,11 +312,14 @@ impl ProcState { let node_analysis_cache = NodeAnalysisCache::new(caches.node_analysis_db(&dir)); let cjs_esm_analyzer = CliCjsEsmCodeAnalyzer::new(node_analysis_cache); + let node_resolver = + Arc::new(NodeResolver::new(node_fs.clone(), npm_resolver.clone())); let node_code_translator = Arc::new(NodeCodeTranslator::new( cjs_esm_analyzer, + node_fs.clone(), + node_resolver.clone(), npm_resolver.clone(), )); - let node_resolver = Arc::new(NodeResolver::new(npm_resolver.clone())); let type_checker = Arc::new(TypeChecker::new( dir.clone(), caches.clone(), @@ -365,6 +372,7 @@ impl ProcState { maybe_file_watcher_reporter, module_graph_builder, node_code_translator, + node_fs, node_resolver, npm_api, npm_cache, |