diff options
Diffstat (limited to 'cli/tools')
-rw-r--r-- | cli/tools/bench.rs | 87 | ||||
-rw-r--r-- | cli/tools/coverage/mod.rs | 3 | ||||
-rw-r--r-- | cli/tools/doc.rs | 4 | ||||
-rw-r--r-- | cli/tools/fmt.rs | 15 | ||||
-rw-r--r-- | cli/tools/lint.rs | 32 | ||||
-rw-r--r-- | cli/tools/standalone.rs | 1 | ||||
-rw-r--r-- | cli/tools/task.rs | 112 | ||||
-rw-r--r-- | cli/tools/test.rs | 76 | ||||
-rw-r--r-- | cli/tools/vendor/mod.rs | 21 |
9 files changed, 94 insertions, 257 deletions
diff --git a/cli/tools/bench.rs b/cli/tools/bench.rs index 3a40a4e97..d2cf4f00b 100644 --- a/cli/tools/bench.rs +++ b/cli/tools/bench.rs @@ -7,7 +7,6 @@ use crate::cache; use crate::colors; use crate::compat; use crate::create_main_worker; -use crate::emit; use crate::file_watcher; use crate::file_watcher::ResolutionResult; use crate::fs_util::collect_specifiers; @@ -40,7 +39,6 @@ use serde::Deserialize; use serde::Serialize; use std::collections::HashSet; use std::path::PathBuf; -use std::sync::Arc; use tokio::sync::mpsc::unbounded_channel; use tokio::sync::mpsc::UnboundedSender; @@ -337,8 +335,8 @@ async fn check_specifiers( ps: &ProcState, permissions: Permissions, specifiers: Vec<ModuleSpecifier>, - lib: emit::TypeLib, ) -> Result<(), AnyError> { + let lib = ps.config.ts_type_lib_window(); ps.prepare_module_load( specifiers, false, @@ -365,7 +363,11 @@ async fn bench_specifier( &ps, specifier.clone(), permissions, - vec![ops::bench::init(channel.clone(), filter, ps.flags.unstable)], + vec![ops::bench::init( + channel.clone(), + filter, + ps.config.unstable(), + )], Default::default(), ); @@ -422,7 +424,7 @@ async fn bench_specifiers( specifiers: Vec<ModuleSpecifier>, options: BenchSpecifierOptions, ) -> Result<(), AnyError> { - let log_level = ps.flags.log_level; + let log_level = ps.config.log_level(); let (sender, mut receiver) = unbounded_channel::<BenchEvent>(); @@ -524,8 +526,8 @@ pub async fn run_benchmarks( flags: Flags, bench_flags: BenchFlags, ) -> Result<(), AnyError> { - let ps = ProcState::build(Arc::new(flags)).await?; - let permissions = Permissions::from_options(&ps.flags.permissions_options()); + let ps = ProcState::build(flags).await?; + let permissions = Permissions::from_options(&ps.config.permissions_options()); let specifiers = collect_specifiers( bench_flags.include.unwrap_or_else(|| vec![".".to_string()]), &bench_flags.ignore.clone(), @@ -536,15 +538,9 @@ pub async fn run_benchmarks( return Err(generic_error("No bench modules found")); } - let lib = if ps.flags.unstable { - emit::TypeLib::UnstableDenoWindow - } else { - emit::TypeLib::DenoWindow - }; - - check_specifiers(&ps, permissions.clone(), specifiers.clone(), lib).await?; + check_specifiers(&ps, permissions.clone(), specifiers.clone()).await?; - let compat = ps.flags.compat; + let compat = ps.config.compat(); bench_specifiers( ps, permissions, @@ -564,20 +560,13 @@ pub async fn run_benchmarks_with_watch( flags: Flags, bench_flags: BenchFlags, ) -> Result<(), AnyError> { - let flags = Arc::new(flags); - let ps = ProcState::build(flags.clone()).await?; - let permissions = Permissions::from_options(&flags.permissions_options()); - - let lib = if flags.unstable { - emit::TypeLib::UnstableDenoWindow - } else { - emit::TypeLib::DenoWindow - }; + let ps = ProcState::build(flags).await?; + let permissions = Permissions::from_options(&ps.config.permissions_options()); let include = bench_flags.include.unwrap_or_else(|| vec![".".to_string()]); let ignore = bench_flags.ignore.clone(); let paths_to_watch: Vec<_> = include.iter().map(PathBuf::from).collect(); - let no_check = ps.flags.type_check_mode == TypeCheckMode::None; + let no_check = ps.config.type_check_mode() == TypeCheckMode::None; let resolver = |changed: Option<Vec<PathBuf>>| { let mut cache = cache::FetchCacher::new( @@ -592,23 +581,16 @@ pub async fn run_benchmarks_with_watch( let maybe_import_map_resolver = ps.maybe_import_map.clone().map(ImportMapResolver::new); - let maybe_jsx_resolver = ps.maybe_config_file.as_ref().and_then(|cf| { - cf.to_maybe_jsx_import_source_module() - .map(|im| JsxResolver::new(im, maybe_import_map_resolver.clone())) - }); + let maybe_jsx_resolver = ps + .config + .to_maybe_jsx_import_source_module() + .map(|im| JsxResolver::new(im, maybe_import_map_resolver.clone())); let maybe_locker = lockfile::as_maybe_locker(ps.lockfile.clone()); - let maybe_imports = ps - .maybe_config_file - .as_ref() - .map(|cf| cf.to_maybe_imports()); + let maybe_imports_result = ps.config.to_maybe_imports(); let files_changed = changed.is_some(); let include = include.clone(); let ignore = ignore.clone(); - let check_js = ps - .maybe_config_file - .as_ref() - .map(|cf| cf.get_check_js()) - .unwrap_or(false); + let check_js = ps.config.check_js(); async move { let bench_modules = @@ -623,11 +605,7 @@ pub async fn run_benchmarks_with_watch( .map(|url| (url.clone(), ModuleKind::Esm)) .collect() }; - let maybe_imports = if let Some(result) = maybe_imports { - result? - } else { - None - }; + let maybe_imports = maybe_imports_result?; let maybe_resolver = if maybe_jsx_resolver.is_some() { maybe_jsx_resolver.as_ref().map(|jr| jr.as_resolver()) } else { @@ -739,11 +717,9 @@ pub async fn run_benchmarks_with_watch( }; let operation = |modules_to_reload: Vec<(ModuleSpecifier, ModuleKind)>| { - let flags = flags.clone(); let filter = bench_flags.filter.clone(); let include = include.clone(); let ignore = ignore.clone(); - let lib = lib.clone(); let permissions = permissions.clone(); let ps = ps.clone(); @@ -755,19 +731,14 @@ pub async fn run_benchmarks_with_watch( .cloned() .collect::<Vec<ModuleSpecifier>>(); - check_specifiers(&ps, permissions.clone(), specifiers.clone(), lib) - .await?; + check_specifiers(&ps, permissions.clone(), specifiers.clone()).await?; - bench_specifiers( - ps, - permissions.clone(), - specifiers, - BenchSpecifierOptions { - compat_mode: flags.compat, - filter: filter.clone(), - }, - ) - .await?; + let specifier_options = BenchSpecifierOptions { + compat_mode: ps.config.compat(), + filter: filter.clone(), + }; + bench_specifiers(ps, permissions.clone(), specifiers, specifier_options) + .await?; Ok(()) } @@ -778,7 +749,7 @@ pub async fn run_benchmarks_with_watch( operation, file_watcher::PrintConfig { job_name: "Bench".to_string(), - clear_screen: !flags.no_clear_screen, + clear_screen: !ps.config.no_clear_screen(), }, ) .await?; diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index efaf19922..0b1a9bc35 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -23,7 +23,6 @@ use std::fs::File; use std::io::BufWriter; use std::io::{self, Error, Write}; use std::path::PathBuf; -use std::sync::Arc; use text_lines::TextLines; use uuid::Uuid; @@ -597,7 +596,7 @@ pub async fn cover_files( flags: Flags, coverage_flags: CoverageFlags, ) -> Result<(), AnyError> { - let ps = ProcState::build(Arc::new(flags)).await?; + let ps = ProcState::build(flags).await?; let script_coverages = collect_coverages(coverage_flags.files, coverage_flags.ignore)?; diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index 684c3040e..068a98389 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -96,7 +96,7 @@ pub async fn print_docs( flags: Flags, doc_flags: DocFlags, ) -> Result<(), AnyError> { - let ps = ProcState::build(Arc::new(flags)).await?; + let ps = ProcState::build(flags).await?; let source_file = doc_flags .source_file .unwrap_or_else(|| "--builtin".to_string()); @@ -122,7 +122,7 @@ pub async fn print_docs( doc_parser.parse_source( &source_file_specifier, MediaType::Dts, - get_types(ps.flags.unstable).into(), + get_types(ps.config.unstable()).into(), ) } else { let module_specifier = resolve_url_or_path(&source_file)?; diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index b2aa47373..267b21d88 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -7,13 +7,11 @@ //! the future it can be easily extended to provide //! the same functions as ops available in JS runtime. -use crate::args::Flags; -use crate::args::FmtConfig; use crate::args::FmtFlags; use crate::args::FmtOptionsConfig; use crate::args::ProseWrap; +use crate::args::RootConfig; use crate::colors; -use crate::deno_dir::DenoDir; use crate::diff::diff; use crate::file_watcher; use crate::file_watcher::ResolutionResult; @@ -45,11 +43,11 @@ use super::incremental_cache::IncrementalCache; /// Format JavaScript/TypeScript files. pub async fn format( - flags: &Flags, + config: &RootConfig, fmt_flags: FmtFlags, - maybe_fmt_config: Option<FmtConfig>, - deno_dir: &DenoDir, ) -> Result<(), AnyError> { + let maybe_fmt_config = config.to_fmt_config()?; + let deno_dir = config.resolve_deno_dir()?; let FmtFlags { files, ignore, @@ -138,6 +136,7 @@ pub async fn format( } } }; + let deno_dir = &deno_dir; let operation = |(paths, fmt_options): (Vec<PathBuf>, FmtOptionsConfig)| async move { let incremental_cache = Arc::new(IncrementalCache::new( &deno_dir.fmt_incremental_cache_db_file_path(), @@ -154,13 +153,13 @@ pub async fn format( Ok(()) }; - if flags.watch.is_some() { + if config.watch_paths().is_some() { file_watcher::watch_func( resolver, operation, file_watcher::PrintConfig { job_name: "Fmt".to_string(), - clear_screen: !flags.no_clear_screen, + clear_screen: !config.no_clear_screen(), }, ) .await?; diff --git a/cli/tools/lint.rs b/cli/tools/lint.rs index 60cda9f90..4e8f8fb0c 100644 --- a/cli/tools/lint.rs +++ b/cli/tools/lint.rs @@ -6,14 +6,18 @@ //! At the moment it is only consumed using CLI but in //! the future it can be easily extended to provide //! the same functions as ops available in JS runtime. +use crate::args::Flags; use crate::args::LintConfig; -use crate::args::{Flags, LintFlags}; +use crate::args::LintFlags; +use crate::colors; +use crate::file_watcher; use crate::file_watcher::ResolutionResult; use crate::fmt_errors; -use crate::fs_util::{collect_files, is_supported_ext, specifier_to_file_path}; +use crate::fs_util::collect_files; +use crate::fs_util::is_supported_ext; +use crate::fs_util::specifier_to_file_path; use crate::proc_state::ProcState; use crate::tools::fmt::run_parallelized; -use crate::{colors, file_watcher}; use deno_ast::MediaType; use deno_core::anyhow::anyhow; use deno_core::error::generic_error; @@ -29,10 +33,13 @@ use log::debug; use log::info; use serde::Serialize; use std::fs; -use std::io::{stdin, Read}; +use std::io::stdin; +use std::io::Read; use std::path::PathBuf; -use std::sync::atomic::{AtomicBool, Ordering}; -use std::sync::{Arc, Mutex}; +use std::sync::atomic::AtomicBool; +use std::sync::atomic::Ordering; +use std::sync::Arc; +use std::sync::Mutex; use super::incremental_cache::IncrementalCache; @@ -52,7 +59,6 @@ fn create_reporter(kind: LintReporterKind) -> Box<dyn LintReporter + Send> { } pub async fn lint(flags: Flags, lint_flags: LintFlags) -> Result<(), AnyError> { - let flags = Arc::new(flags); let LintFlags { maybe_rules_tags, maybe_rules_include, @@ -69,12 +75,8 @@ pub async fn lint(flags: Flags, lint_flags: LintFlags) -> Result<(), AnyError> { let mut include_files = args.clone(); let mut exclude_files = ignore.clone(); - let ps = ProcState::build(flags.clone()).await?; - let maybe_lint_config = if let Some(config_file) = &ps.maybe_config_file { - config_file.to_lint_config()? - } else { - None - }; + let ps = ProcState::build(flags).await?; + let maybe_lint_config = ps.config.to_lint_config()?; if let Some(lint_config) = maybe_lint_config.as_ref() { if include_files.is_empty() { @@ -200,7 +202,7 @@ pub async fn lint(flags: Flags, lint_flags: LintFlags) -> Result<(), AnyError> { Ok(()) }; - if flags.watch.is_some() { + if ps.config.watch_paths().is_some() { if args.len() == 1 && args[0].to_string_lossy() == "-" { return Err(generic_error( "Lint watch on standard input is not supported.", @@ -211,7 +213,7 @@ pub async fn lint(flags: Flags, lint_flags: LintFlags) -> Result<(), AnyError> { operation, file_watcher::PrintConfig { job_name: "Lint".to_string(), - clear_screen: !flags.no_clear_screen, + clear_screen: !ps.config.no_clear_screen(), }, ) .await?; diff --git a/cli/tools/standalone.rs b/cli/tools/standalone.rs index 2561188ca..99f2ce33d 100644 --- a/cli/tools/standalone.rs +++ b/cli/tools/standalone.rs @@ -282,7 +282,6 @@ pub fn compile_to_runtime_flags( no_remote: false, no_prompt: flags.no_prompt, reload: false, - repl: false, seed: flags.seed, unstable: flags.unstable, v8_flags: flags.v8_flags.clone(), diff --git a/cli/tools/task.rs b/cli/tools/task.rs index 1b6846e7c..fa9f30d7d 100644 --- a/cli/tools/task.rs +++ b/cli/tools/task.rs @@ -1,6 +1,5 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. -use crate::args::ConfigFile; use crate::args::Flags; use crate::args::TaskFlags; use crate::colors; @@ -12,34 +11,6 @@ use deno_core::error::AnyError; use std::collections::BTreeMap; use std::collections::HashMap; use std::path::PathBuf; -use std::sync::Arc; - -fn get_tasks_config( - maybe_config_file: Option<&ConfigFile>, -) -> Result<BTreeMap<String, String>, AnyError> { - if let Some(config_file) = maybe_config_file { - let maybe_tasks_config = config_file.to_tasks_config()?; - if let Some(tasks_config) = maybe_tasks_config { - for key in tasks_config.keys() { - if key.is_empty() { - bail!("Configuration file task names cannot be empty"); - } else if !key - .chars() - .all(|c| c.is_ascii_alphanumeric() || matches!(c, '_' | '-' | ':')) - { - bail!("Configuration file task names must only contain alpha-numeric characters, colons (:), underscores (_), or dashes (-). Task: {}", key); - } else if !key.chars().next().unwrap().is_ascii_alphabetic() { - bail!("Configuration file task names must start with an alphabetic character. Task: {}", key); - } - } - Ok(tasks_config) - } else { - bail!("No tasks found in configuration file") - } - } else { - bail!("No config file found") - } -} fn print_available_tasks(tasks_config: BTreeMap<String, String>) { eprintln!("{}", colors::green("Available tasks:")); @@ -58,10 +29,9 @@ pub async fn execute_script( "{} deno task is unstable and may drastically change in the future", crate::colors::yellow("Warning"), ); - let flags = Arc::new(flags); - let ps = ProcState::build(flags.clone()).await?; - let tasks_config = get_tasks_config(ps.maybe_config_file.as_ref())?; - let config_file_url = &ps.maybe_config_file.as_ref().unwrap().specifier; + let ps = ProcState::build(flags).await?; + let tasks_config = ps.config.resolve_tasks_config()?; + let config_file_url = ps.config.maybe_config_file_specifier().unwrap(); let config_file_path = if config_file_url.scheme() == "file" { config_file_url.to_file_path().unwrap() } else { @@ -81,8 +51,9 @@ pub async fn execute_script( let maybe_script = tasks_config.get(&task_name); if let Some(script) = maybe_script { - let additional_args = flags - .argv + let additional_args = ps + .config + .argv() .iter() // surround all the additional arguments in double quotes // and santize any command substition @@ -108,74 +79,3 @@ pub async fn execute_script( Ok(1) } } - -#[cfg(test)] -mod test { - use deno_ast::ModuleSpecifier; - use pretty_assertions::assert_eq; - - use super::*; - - #[test] - fn tasks_no_tasks() { - run_task_error_test(r#"{}"#, "No tasks found in configuration file"); - } - - #[test] - fn task_name_invalid_chars() { - run_task_error_test( - r#"{ - "tasks": { - "build": "deno test", - "some%test": "deno bundle mod.ts" - } - }"#, - concat!( - "Configuration file task names must only contain alpha-numeric ", - "characters, colons (:), underscores (_), or dashes (-). Task: some%test", - ), - ); - } - - #[test] - fn task_name_non_alpha_starting_char() { - run_task_error_test( - r#"{ - "tasks": { - "build": "deno test", - "1test": "deno bundle mod.ts" - } - }"#, - concat!( - "Configuration file task names must start with an ", - "alphabetic character. Task: 1test", - ), - ); - } - - #[test] - fn task_name_empty() { - run_task_error_test( - r#"{ - "tasks": { - "build": "deno test", - "": "deno bundle mod.ts" - } - }"#, - "Configuration file task names cannot be empty", - ); - } - - fn run_task_error_test(config_text: &str, expected_error: &str) { - let config_dir = ModuleSpecifier::parse("file:///deno/").unwrap(); - let config_specifier = config_dir.join("tsconfig.json").unwrap(); - let config_file = ConfigFile::new(config_text, &config_specifier).unwrap(); - assert_eq!( - get_tasks_config(Some(&config_file)) - .err() - .unwrap() - .to_string(), - expected_error, - ); - } -} diff --git a/cli/tools/test.rs b/cli/tools/test.rs index 71374d94e..3b3f8dc4b 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -8,7 +8,6 @@ use crate::colors; use crate::compat; use crate::create_main_worker; use crate::display; -use crate::emit; use crate::file_fetcher::File; use crate::file_watcher; use crate::file_watcher::ResolutionResult; @@ -1020,8 +1019,8 @@ pub async fn check_specifiers( ps: &ProcState, permissions: Permissions, specifiers: Vec<(ModuleSpecifier, TestMode)>, - lib: emit::TypeLib, ) -> Result<(), AnyError> { + let lib = ps.config.ts_type_lib_window(); let inline_files = fetch_inline_files( ps.clone(), specifiers @@ -1050,7 +1049,7 @@ pub async fn check_specifiers( ps.prepare_module_load( specifiers, false, - lib.clone(), + lib, Permissions::allow_all(), permissions.clone(), false, @@ -1089,7 +1088,7 @@ async fn test_specifiers( specifiers_with_mode: Vec<(ModuleSpecifier, TestMode)>, options: TestSpecifierOptions, ) -> Result<(), AnyError> { - let log_level = ps.flags.log_level; + let log_level = ps.config.log_level(); let specifiers_with_mode = if let Some(seed) = options.shuffle { let mut rng = SmallRng::seed_from_u64(seed); let mut specifiers_with_mode = specifiers_with_mode.clone(); @@ -1333,8 +1332,8 @@ pub async fn run_tests( flags: Flags, test_flags: TestFlags, ) -> Result<(), AnyError> { - let ps = ProcState::build(Arc::new(flags)).await?; - let permissions = Permissions::from_options(&ps.flags.permissions_options()); + let ps = ProcState::build(flags).await?; + let permissions = Permissions::from_options(&ps.config.permissions_options()); let specifiers_with_mode = fetch_specifiers_with_test_mode( &ps, test_flags.include.unwrap_or_else(|| vec![".".to_string()]), @@ -1347,20 +1346,14 @@ pub async fn run_tests( return Err(generic_error("No test modules found")); } - let lib = if ps.flags.unstable { - emit::TypeLib::UnstableDenoWindow - } else { - emit::TypeLib::DenoWindow - }; - - check_specifiers(&ps, permissions.clone(), specifiers_with_mode.clone(), lib) + check_specifiers(&ps, permissions.clone(), specifiers_with_mode.clone()) .await?; if test_flags.no_run { return Ok(()); } - let compat = ps.flags.compat; + let compat = ps.config.compat(); test_specifiers( ps, permissions, @@ -1383,20 +1376,13 @@ pub async fn run_tests_with_watch( flags: Flags, test_flags: TestFlags, ) -> Result<(), AnyError> { - let flags = Arc::new(flags); - let ps = ProcState::build(flags.clone()).await?; - let permissions = Permissions::from_options(&flags.permissions_options()); - - let lib = if flags.unstable { - emit::TypeLib::UnstableDenoWindow - } else { - emit::TypeLib::DenoWindow - }; + let ps = ProcState::build(flags).await?; + let permissions = Permissions::from_options(&ps.config.permissions_options()); let include = test_flags.include.unwrap_or_else(|| vec![".".to_string()]); let ignore = test_flags.ignore.clone(); let paths_to_watch: Vec<_> = include.iter().map(PathBuf::from).collect(); - let no_check = ps.flags.type_check_mode == TypeCheckMode::None; + let no_check = ps.config.type_check_mode() == TypeCheckMode::None; let resolver = |changed: Option<Vec<PathBuf>>| { let mut cache = cache::FetchCacher::new( @@ -1411,23 +1397,16 @@ pub async fn run_tests_with_watch( let maybe_import_map_resolver = ps.maybe_import_map.clone().map(ImportMapResolver::new); - let maybe_jsx_resolver = ps.maybe_config_file.as_ref().and_then(|cf| { - cf.to_maybe_jsx_import_source_module() - .map(|im| JsxResolver::new(im, maybe_import_map_resolver.clone())) - }); + let maybe_jsx_resolver = ps + .config + .to_maybe_jsx_import_source_module() + .map(|im| JsxResolver::new(im, maybe_import_map_resolver.clone())); let maybe_locker = lockfile::as_maybe_locker(ps.lockfile.clone()); - let maybe_imports = ps - .maybe_config_file - .as_ref() - .map(|cf| cf.to_maybe_imports()); + let maybe_imports_result = ps.config.to_maybe_imports(); let files_changed = changed.is_some(); let include = include.clone(); let ignore = ignore.clone(); - let check_js = ps - .maybe_config_file - .as_ref() - .map(|cf| cf.get_check_js()) - .unwrap_or(false); + let check_js = ps.config.check_js(); async move { let test_modules = if test_flags.doc { @@ -1445,11 +1424,7 @@ pub async fn run_tests_with_watch( .map(|url| (url.clone(), ModuleKind::Esm)) .collect() }; - let maybe_imports = if let Some(result) = maybe_imports { - result? - } else { - None - }; + let maybe_imports = maybe_imports_result?; let maybe_resolver = if maybe_jsx_resolver.is_some() { maybe_jsx_resolver.as_ref().map(|jr| jr.as_resolver()) } else { @@ -1560,12 +1535,12 @@ pub async fn run_tests_with_watch( }) }; + let root_config = ps.config.clone(); let operation = |modules_to_reload: Vec<(ModuleSpecifier, ModuleKind)>| { - let flags = flags.clone(); + let root_config = root_config.clone(); let filter = test_flags.filter.clone(); let include = include.clone(); let ignore = ignore.clone(); - let lib = lib.clone(); let permissions = permissions.clone(); let ps = ps.clone(); @@ -1584,13 +1559,8 @@ pub async fn run_tests_with_watch( .cloned() .collect::<Vec<(ModuleSpecifier, TestMode)>>(); - check_specifiers( - &ps, - permissions.clone(), - specifiers_with_mode.clone(), - lib, - ) - .await?; + check_specifiers(&ps, permissions.clone(), specifiers_with_mode.clone()) + .await?; if test_flags.no_run { return Ok(()); @@ -1601,7 +1571,7 @@ pub async fn run_tests_with_watch( permissions.clone(), specifiers_with_mode, TestSpecifierOptions { - compat_mode: flags.compat, + compat_mode: root_config.compat(), concurrent_jobs: test_flags.concurrent_jobs, fail_fast: test_flags.fail_fast, filter: filter.clone(), @@ -1620,7 +1590,7 @@ pub async fn run_tests_with_watch( operation, file_watcher::PrintConfig { job_name: "Test".to_string(), - clear_screen: !flags.no_clear_screen, + clear_screen: !root_config.no_clear_screen(), }, ) .await?; diff --git a/cli/tools/vendor/mod.rs b/cli/tools/vendor/mod.rs index 15b149e2e..fc7684b5b 100644 --- a/cli/tools/vendor/mod.rs +++ b/cli/tools/vendor/mod.rs @@ -134,16 +134,17 @@ fn validate_output_dir( fn maybe_update_config_file(output_dir: &Path, ps: &ProcState) -> bool { assert!(output_dir.is_absolute()); - let config_file = match &ps.maybe_config_file { + let config_file_specifier = match ps.config.maybe_config_file_specifier() { Some(f) => f, None => return false, }; - let fmt_config = config_file + let fmt_config = ps + .config .to_fmt_config() .unwrap_or_default() .unwrap_or_default(); let result = update_config_file( - &config_file.specifier, + &config_file_specifier, &ModuleSpecifier::from_file_path(output_dir.join("import_map.json")) .unwrap(), &fmt_config.options, @@ -262,17 +263,13 @@ async fn create_graph( Permissions::allow_all(), ); let maybe_locker = lockfile::as_maybe_locker(ps.lockfile.clone()); - let maybe_imports = if let Some(config_file) = &ps.maybe_config_file { - config_file.to_maybe_imports()? - } else { - None - }; + let maybe_imports = ps.config.to_maybe_imports()?; let maybe_import_map_resolver = ps.maybe_import_map.clone().map(ImportMapResolver::new); - let maybe_jsx_resolver = ps.maybe_config_file.as_ref().and_then(|cf| { - cf.to_maybe_jsx_import_source_module() - .map(|im| JsxResolver::new(im, maybe_import_map_resolver.clone())) - }); + let maybe_jsx_resolver = ps + .config + .to_maybe_jsx_import_source_module() + .map(|im| JsxResolver::new(im, maybe_import_map_resolver.clone())); let maybe_resolver = if maybe_jsx_resolver.is_some() { maybe_jsx_resolver.as_ref().map(|jr| jr.as_resolver()) } else { |