diff options
Diffstat (limited to 'cli/tools/run.rs')
-rw-r--r-- | cli/tools/run.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/cli/tools/run.rs b/cli/tools/run.rs index 2d001c42b..d5b5eb981 100644 --- a/cli/tools/run.rs +++ b/cli/tools/run.rs @@ -1,6 +1,7 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. use std::io::Read; +use std::path::PathBuf; use std::sync::Arc; use deno_ast::MediaType; @@ -102,13 +103,16 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> { let flags = Arc::new(flags); let main_module = resolve_url_or_path(&script)?; let (sender, receiver) = tokio::sync::mpsc::unbounded_channel(); - let mut ps = - ProcState::build_for_file_watcher((*flags).clone(), sender.clone()).await?; - let operation = |main_module: ModuleSpecifier| { - ps.reset_for_file_watcher(); - let ps = ps.clone(); + let operation = |(sender, main_module): ( + tokio::sync::mpsc::UnboundedSender<Vec<PathBuf>>, + ModuleSpecifier, + )| { + let flags = flags.clone(); Ok(async move { + let ps = + ProcState::build_for_file_watcher((*flags).clone(), sender.clone()) + .await?; let permissions = PermissionsContainer::new(Permissions::from_options( &ps.options.permissions_options(), )?); @@ -122,7 +126,7 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> { util::file_watcher::watch_func2( receiver, operation, - main_module, + (sender, main_module), util::file_watcher::PrintConfig { job_name: "Process".to_string(), clear_screen: !flags.no_clear_screen, |