diff options
Diffstat (limited to 'cli/tools')
-rw-r--r-- | cli/tools/bench.rs | 12 | ||||
-rw-r--r-- | cli/tools/run.rs | 16 | ||||
-rw-r--r-- | cli/tools/test.rs | 13 |
3 files changed, 22 insertions, 19 deletions
diff --git a/cli/tools/bench.rs b/cli/tools/bench.rs index ed788fa7f..ad5841e39 100644 --- a/cli/tools/bench.rs +++ b/cli/tools/bench.rs @@ -32,6 +32,7 @@ use indexmap::IndexMap; use log::Level; use serde::Deserialize; use serde::Serialize; +use std::cell::RefCell; use std::collections::HashSet; use std::path::Path; use std::path::PathBuf; @@ -339,7 +340,6 @@ async fn check_specifiers( lib, PermissionsContainer::allow_all(), PermissionsContainer::new(permissions), - true, ) .await?; @@ -538,13 +538,15 @@ pub async fn run_benchmarks_with_watch( .collect(); let no_check = ps.options.type_check_mode() == TypeCheckMode::None; + let ps = RefCell::new(ps); + let resolver = |changed: Option<Vec<PathBuf>>| { let paths_to_watch = paths_to_watch.clone(); let paths_to_watch_clone = paths_to_watch.clone(); let files_changed = changed.is_some(); let files = bench_options.files.clone(); - let ps = ps.clone(); + let ps = ps.borrow().clone(); async move { let bench_modules = collect_specifiers(&files, is_supported_bench_path)?; @@ -656,7 +658,8 @@ pub async fn run_benchmarks_with_watch( let operation = |modules_to_reload: Vec<(ModuleSpecifier, ModuleKind)>| { let permissions = permissions.clone(); - let ps = ps.clone(); + ps.borrow_mut().reset_for_file_watcher(); + let ps = ps.borrow().clone(); let filter = bench_options.filter.clone(); let files = bench_options.files.clone(); @@ -681,12 +684,13 @@ pub async fn run_benchmarks_with_watch( } }; + let clear_screen = !ps.borrow().options.no_clear_screen(); file_watcher::watch_func( resolver, operation, file_watcher::PrintConfig { job_name: "Bench".to_string(), - clear_screen: !ps.options.no_clear_screen(), + clear_screen, }, ) .await?; diff --git a/cli/tools/run.rs b/cli/tools/run.rs index 3830affed..a022a5059 100644 --- a/cli/tools/run.rs +++ b/cli/tools/run.rs @@ -1,7 +1,6 @@ // 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; @@ -104,16 +103,13 @@ 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 = |(sender, main_module): ( - tokio::sync::mpsc::UnboundedSender<Vec<PathBuf>>, - ModuleSpecifier, - )| { - let flags = flags.clone(); + let operation = |main_module: ModuleSpecifier| { + ps.reset_for_file_watcher(); + let ps = ps.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(), )?); @@ -128,7 +124,7 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> { util::file_watcher::watch_func2( receiver, operation, - (sender, main_module), + main_module, util::file_watcher::PrintConfig { job_name: "Process".to_string(), clear_screen: !flags.no_clear_screen, diff --git a/cli/tools/test.rs b/cli/tools/test.rs index 4cac8a404..548ae2801 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -46,6 +46,7 @@ use rand::seq::SliceRandom; use rand::SeedableRng; use regex::Regex; use serde::Deserialize; +use std::cell::RefCell; use std::collections::BTreeMap; use std::collections::HashSet; use std::fmt::Write as _; @@ -957,7 +958,6 @@ pub async fn check_specifiers( lib, PermissionsContainer::new(Permissions::allow_all()), PermissionsContainer::new(permissions.clone()), - false, ) .await?; } @@ -979,7 +979,6 @@ pub async fn check_specifiers( lib, PermissionsContainer::allow_all(), PermissionsContainer::new(permissions), - true, ) .await?; @@ -1355,12 +1354,14 @@ pub async fn run_tests_with_watch( let no_check = ps.options.type_check_mode() == TypeCheckMode::None; let test_options = &test_options; + let ps = RefCell::new(ps); + let resolver = |changed: Option<Vec<PathBuf>>| { let paths_to_watch = paths_to_watch.clone(); let paths_to_watch_clone = paths_to_watch.clone(); let files_changed = changed.is_some(); - let ps = ps.clone(); + let ps = ps.borrow().clone(); async move { let test_modules = if test_options.doc { @@ -1477,7 +1478,8 @@ pub async fn run_tests_with_watch( let operation = |modules_to_reload: Vec<(ModuleSpecifier, ModuleKind)>| { let permissions = permissions.clone(); - let ps = ps.clone(); + ps.borrow_mut().reset_for_file_watcher(); + let ps = ps.borrow().clone(); let test_options = test_options.clone(); async move { @@ -1517,12 +1519,13 @@ pub async fn run_tests_with_watch( } }; + let clear_screen = !ps.borrow().options.no_clear_screen(); file_watcher::watch_func( resolver, operation, file_watcher::PrintConfig { job_name: "Test".to_string(), - clear_screen: !ps.options.no_clear_screen(), + clear_screen, }, ) .await?; |