diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-01-30 16:22:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-30 16:22:17 +0100 |
commit | d318e38b76c8174d48fddfb99064401050cd8333 (patch) | |
tree | bd49caad1dcc6507280b8ebf4b7f68e2ff9c5c78 /cli/tools | |
parent | 3035dee9f14402f57d42ff0b362152140b4dca13 (diff) |
Revert "fix(watch): preserve `ProcState::file_fetcher` between restarts (#15466) (#17591)
This reverts commit 3545bff678f20c3fdf17fe6b26f96cf1b74f917c.
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, 19 insertions, 22 deletions
diff --git a/cli/tools/bench.rs b/cli/tools/bench.rs index 419ac2da6..18ac63f38 100644 --- a/cli/tools/bench.rs +++ b/cli/tools/bench.rs @@ -30,7 +30,6 @@ 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; @@ -338,6 +337,7 @@ async fn check_specifiers( lib, PermissionsContainer::allow_all(), PermissionsContainer::new(permissions), + true, ) .await?; @@ -529,14 +529,12 @@ pub async fn run_benchmarks_with_watch( Permissions::from_options(&ps.options.permissions_options())?; 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 = bench_options.files.include.clone(); let paths_to_watch_clone = paths_to_watch.clone(); let files_changed = changed.is_some(); let bench_options = &bench_options; - let ps = ps.borrow().clone(); + let ps = ps.clone(); async move { let bench_modules = @@ -640,8 +638,7 @@ pub async fn run_benchmarks_with_watch( let operation = |modules_to_reload: Vec<ModuleSpecifier>| { let permissions = &permissions; let bench_options = &bench_options; - ps.borrow_mut().reset_for_file_watcher(); - let ps = ps.borrow().clone(); + let ps = ps.clone(); async move { let specifiers = @@ -666,13 +663,12 @@ 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, + clear_screen: !ps.options.no_clear_screen(), }, ) .await?; 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, diff --git a/cli/tools/test.rs b/cli/tools/test.rs index e680d5718..08000c765 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -44,7 +44,6 @@ 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 _; @@ -956,6 +955,7 @@ pub async fn check_specifiers( lib, PermissionsContainer::new(Permissions::allow_all()), PermissionsContainer::new(permissions.clone()), + false, ) .await?; } @@ -977,6 +977,7 @@ pub async fn check_specifiers( lib, PermissionsContainer::allow_all(), PermissionsContainer::new(permissions), + true, ) .await?; @@ -1352,14 +1353,12 @@ pub async fn run_tests_with_watch( Permissions::from_options(&ps.options.permissions_options())?; 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 = test_options.files.include.clone(); let paths_to_watch_clone = paths_to_watch.clone(); let files_changed = changed.is_some(); let test_options = &test_options; - let ps = ps.borrow().clone(); + let ps = ps.clone(); async move { let test_modules = if test_options.doc { @@ -1467,8 +1466,7 @@ pub async fn run_tests_with_watch( let operation = |modules_to_reload: Vec<ModuleSpecifier>| { let permissions = &permissions; let test_options = &test_options; - ps.borrow_mut().reset_for_file_watcher(); - let ps = ps.borrow().clone(); + let ps = ps.clone(); async move { let specifiers_with_mode = fetch_specifiers_with_test_mode( @@ -1504,13 +1502,12 @@ 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, + clear_screen: !ps.options.no_clear_screen(), }, ) .await?; |