From d318e38b76c8174d48fddfb99064401050cd8333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 30 Jan 2023 16:22:17 +0100 Subject: Revert "fix(watch): preserve `ProcState::file_fetcher` between restarts (#15466) (#17591) This reverts commit 3545bff678f20c3fdf17fe6b26f96cf1b74f917c. --- cli/tools/bench.rs | 12 ++++-------- cli/tools/run.rs | 16 ++++++++++------ cli/tools/test.rs | 13 +++++-------- 3 files changed, 19 insertions(+), 22 deletions(-) (limited to 'cli/tools') 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>| { 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| { 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 { 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>, + 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 { 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>| { 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| { 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?; -- cgit v1.2.3