diff options
Diffstat (limited to 'cli/proc_state.rs')
-rw-r--r-- | cli/proc_state.rs | 88 |
1 files changed, 73 insertions, 15 deletions
diff --git a/cli/proc_state.rs b/cli/proc_state.rs index 950e19824..bb8fd9c3e 100644 --- a/cli/proc_state.rs +++ b/cli/proc_state.rs @@ -4,6 +4,7 @@ use crate::args::CliOptions; use crate::args::DenoSubcommand; use crate::args::Flags; use crate::args::Lockfile; +use crate::args::StorageKeyResolver; use crate::args::TsConfigType; use crate::cache::Caches; use crate::cache::DenoDir; @@ -16,7 +17,9 @@ use crate::file_fetcher::FileFetcher; use crate::graph_util::ModuleGraphBuilder; use crate::graph_util::ModuleGraphContainer; use crate::http_util::HttpClient; +use crate::module_loader::CliModuleLoaderFactory; use crate::module_loader::ModuleLoadPreparer; +use crate::module_loader::NpmModuleLoader; use crate::node::CliCjsEsmCodeAnalyzer; use crate::node::CliNodeCodeTranslator; use crate::npm::create_npm_fs_resolver; @@ -29,20 +32,20 @@ use crate::resolver::CliGraphResolver; use crate::tools::check::TypeChecker; use crate::util::progress_bar::ProgressBar; use crate::util::progress_bar::ProgressBarStyle; +use crate::worker::CliMainWorkerFactory; +use crate::worker::CliMainWorkerOptions; use deno_core::error::AnyError; use deno_core::parking_lot::Mutex; -use deno_core::CompiledWasmModuleStore; 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; use deno_runtime::deno_web::BlobStore; use deno_runtime::inspector_server::InspectorServer; +use deno_semver::npm::NpmPackageReqReference; use import_map::ImportMap; use log::warn; use std::collections::HashSet; @@ -70,9 +73,6 @@ pub struct Inner { pub maybe_inspector_server: Option<Arc<InspectorServer>>, pub root_cert_store: RootCertStore, pub blob_store: BlobStore, - pub broadcast_channel: InMemoryBroadcastChannel, - pub shared_array_buffer_store: SharedArrayBufferStore, - pub compiled_wasm_module_store: CompiledWasmModuleStore, pub parsed_source_cache: Arc<ParsedSourceCache>, pub resolver: Arc<CliGraphResolver>, maybe_file_watcher_reporter: Option<FileWatcherReporter>, @@ -142,9 +142,6 @@ impl ProcState { maybe_inspector_server: self.maybe_inspector_server.clone(), root_cert_store: self.root_cert_store.clone(), blob_store: self.blob_store.clone(), - broadcast_channel: Default::default(), - shared_array_buffer_store: Default::default(), - compiled_wasm_module_store: Default::default(), parsed_source_cache: self.parsed_source_cache.clone(), resolver: self.resolver.clone(), maybe_file_watcher_reporter: self.maybe_file_watcher_reporter.clone(), @@ -203,9 +200,6 @@ impl ProcState { _ => {} } let blob_store = BlobStore::default(); - let broadcast_channel = InMemoryBroadcastChannel::default(); - let shared_array_buffer_store = SharedArrayBufferStore::default(); - let compiled_wasm_module_store = CompiledWasmModuleStore::default(); let deps_cache_location = dir.deps_folder_path(); let http_cache = HttpCache::new(&deps_cache_location); let root_cert_store = cli_options.resolve_root_cert_store()?; @@ -358,9 +352,6 @@ impl ProcState { maybe_inspector_server, root_cert_store, blob_store, - broadcast_channel, - shared_array_buffer_store, - compiled_wasm_module_store, parsed_source_cache, resolver, maybe_file_watcher_reporter, @@ -378,6 +369,73 @@ impl ProcState { progress_bar, }))) } + + // todo(dsherret): this is a transitory method as we separate out + // ProcState from more code + pub fn into_cli_main_worker_factory(self) -> CliMainWorkerFactory { + CliMainWorkerFactory::new( + StorageKeyResolver::from_options(&self.options), + self.npm_resolver.clone(), + self.node_resolver.clone(), + self.graph_container.clone(), + self.blob_store.clone(), + CliModuleLoaderFactory::new( + &self.options, + self.emitter.clone(), + self.graph_container.clone(), + self.module_load_preparer.clone(), + self.parsed_source_cache.clone(), + self.resolver.clone(), + NpmModuleLoader::new( + self.cjs_resolutions.clone(), + self.node_code_translator.clone(), + self.node_resolver.clone(), + ), + ), + self.root_cert_store.clone(), + self.node_fs.clone(), + self.maybe_inspector_server.clone(), + CliMainWorkerOptions { + argv: self.options.argv().clone(), + debug: self + .options + .log_level() + .map(|l| l == log::Level::Debug) + .unwrap_or(false), + coverage_dir: self.options.coverage_dir(), + enable_testing_features: self.options.enable_testing_features(), + has_node_modules_dir: self.options.has_node_modules_dir(), + inspect_brk: self.options.inspect_brk().is_some(), + inspect_wait: self.options.inspect_wait().is_some(), + is_inspecting: self.options.is_inspecting(), + is_npm_main: self.options.is_npm_main(), + location: self.options.location_flag().clone(), + maybe_binary_npm_command_name: { + let mut maybe_binary_command_name = None; + if let DenoSubcommand::Run(flags) = self.options.sub_command() { + if let Ok(pkg_ref) = NpmPackageReqReference::from_str(&flags.script) + { + // if the user ran a binary command, we'll need to set process.argv[0] + // to be the name of the binary command instead of deno + let binary_name = pkg_ref + .sub_path + .as_deref() + .unwrap_or(pkg_ref.req.name.as_str()); + maybe_binary_command_name = Some(binary_name.to_string()); + } + } + maybe_binary_command_name + }, + origin_data_folder_path: self.dir.origin_data_folder_path(), + seed: self.options.seed(), + unsafely_ignore_certificate_errors: self + .options + .unsafely_ignore_certificate_errors() + .clone(), + unstable: self.options.unstable(), + }, + ) + } } /// Keeps track of what module specifiers were resolved as CJS. |