From 9efed4c7a3d32de62e9c9b5e0c6712ce97637abb Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 1 May 2023 14:35:23 -0400 Subject: refactor(cli): remove ProcState - add CliFactory (#18900) This removes `ProcState` and replaces it with a new `CliFactory` which initializes our "service structs" on demand. This isn't a performance improvement at the moment for `deno run`, but might unlock performance improvements in the future. --- cli/tools/repl/mod.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'cli/tools/repl/mod.rs') diff --git a/cli/tools/repl/mod.rs b/cli/tools/repl/mod.rs index f0faf74ec..9f4b58919 100644 --- a/cli/tools/repl/mod.rs +++ b/cli/tools/repl/mod.rs @@ -4,8 +4,8 @@ use crate::args::CliOptions; use crate::args::Flags; use crate::args::ReplFlags; use crate::colors; +use crate::factory::CliFactory; use crate::file_fetcher::FileFetcher; -use crate::proc_state::ProcState; use deno_core::error::AnyError; use deno_core::futures::StreamExt; use deno_runtime::permissions::Permissions; @@ -98,17 +98,17 @@ async fn read_eval_file( } pub async fn run(flags: Flags, repl_flags: ReplFlags) -> Result { - let ps = ProcState::from_flags(flags).await?; - let main_module = ps.options.resolve_main_module()?; + let factory = CliFactory::from_flags(flags).await?; + let cli_options = factory.cli_options(); + let main_module = cli_options.resolve_main_module()?; let permissions = PermissionsContainer::new(Permissions::from_options( - &ps.options.permissions_options(), + &cli_options.permissions_options(), )?); - let cli_options = ps.options.clone(); - let npm_resolver = ps.npm_resolver.clone(); - let resolver = ps.resolver.clone(); - let dir = ps.dir.clone(); - let file_fetcher = ps.file_fetcher.clone(); - let worker_factory = ps.create_cli_main_worker_factory(); + let npm_resolver = factory.npm_resolver().await?.clone(); + let resolver = factory.resolver().await?.clone(); + let dir = factory.deno_dir()?; + let file_fetcher = factory.file_fetcher()?; + let worker_factory = factory.create_cli_main_worker_factory().await?; let mut worker = worker_factory .create_main_worker(main_module, permissions) @@ -116,7 +116,7 @@ pub async fn run(flags: Flags, repl_flags: ReplFlags) -> Result { worker.setup_repl().await?; let worker = worker.into_main_worker(); let mut repl_session = - ReplSession::initialize(&cli_options, npm_resolver, resolver, worker) + ReplSession::initialize(cli_options, npm_resolver, resolver, worker) .await?; let mut rustyline_channel = rustyline_channel(); @@ -130,7 +130,7 @@ pub async fn run(flags: Flags, repl_flags: ReplFlags) -> Result { if let Some(eval_files) = repl_flags.eval_files { for eval_file in eval_files { - match read_eval_file(&cli_options, &file_fetcher, &eval_file).await { + match read_eval_file(cli_options, file_fetcher, &eval_file).await { Ok(eval_source) => { let output = repl_session .evaluate_line_and_get_output(&eval_source) -- cgit v1.2.3