summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/bench.rs12
-rw-r--r--cli/tools/run.rs16
-rw-r--r--cli/tools/test.rs13
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?;