1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00

refactor(flags): rename CheckFlag to TypecheckMode (#14111)

This commit is contained in:
Bartek Iwańczuk 2022-03-29 03:48:29 +02:00 committed by GitHub
parent 5a6a1eeb39
commit 381d565acf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 56 additions and 41 deletions

View file

@ -339,7 +339,7 @@ pub fn is_emittable(
pub struct CheckOptions { pub struct CheckOptions {
/// The check flag from the option which can effect the filtering of /// The check flag from the option which can effect the filtering of
/// diagnostics in the emit result. /// diagnostics in the emit result.
pub check: flags::CheckFlag, pub typecheck_mode: flags::TypecheckMode,
/// Set the debug flag on the TypeScript type checker. /// Set the debug flag on the TypeScript type checker.
pub debug: bool, pub debug: bool,
/// If true, any files emitted will be cached, even if there are diagnostics /// If true, any files emitted will be cached, even if there are diagnostics
@ -430,7 +430,7 @@ pub fn check_and_maybe_emit(
root_names, root_names,
})?; })?;
let diagnostics = if options.check == flags::CheckFlag::Local { let diagnostics = if options.typecheck_mode == flags::TypecheckMode::Local {
response.diagnostics.filter(|d| { response.diagnostics.filter(|d| {
if let Some(file_name) = &d.file_name { if let Some(file_name) = &d.file_name {
!file_name.starts_with("http") !file_name.starts_with("http")

View file

@ -213,7 +213,7 @@ impl Default for DenoSubcommand {
} }
#[derive(Debug, Clone, PartialEq)] #[derive(Debug, Clone, PartialEq)]
pub enum CheckFlag { pub enum TypecheckMode {
/// Type check all modules. The default value. /// Type check all modules. The default value.
All, All,
/// Skip type checking of all modules. Represents `--no-check` on the command /// Skip type checking of all modules. Represents `--no-check` on the command
@ -224,7 +224,7 @@ pub enum CheckFlag {
Local, Local,
} }
impl Default for CheckFlag { impl Default for TypecheckMode {
fn default() -> Self { fn default() -> Self {
Self::All Self::All
} }
@ -252,7 +252,7 @@ pub struct Flags {
/// the language server is configured with an explicit cache option. /// the language server is configured with an explicit cache option.
pub cache_path: Option<PathBuf>, pub cache_path: Option<PathBuf>,
pub cached_only: bool, pub cached_only: bool,
pub check: CheckFlag, pub typecheck_mode: TypecheckMode,
pub config_path: Option<String>, pub config_path: Option<String>,
pub coverage_dir: Option<String>, pub coverage_dir: Option<String>,
pub enable_testing_features: bool, pub enable_testing_features: bool,
@ -2714,14 +2714,14 @@ fn compat_arg_parse(flags: &mut Flags, matches: &ArgMatches) {
fn no_check_arg_parse(flags: &mut Flags, matches: &clap::ArgMatches) { fn no_check_arg_parse(flags: &mut Flags, matches: &clap::ArgMatches) {
if let Some(cache_type) = matches.value_of("no-check") { if let Some(cache_type) = matches.value_of("no-check") {
match cache_type { match cache_type {
"remote" => flags.check = CheckFlag::Local, "remote" => flags.typecheck_mode = TypecheckMode::Local,
_ => debug!( _ => debug!(
"invalid value for 'no-check' of '{}' using default", "invalid value for 'no-check' of '{}' using default",
cache_type cache_type
), ),
} }
} else if matches.is_present("no-check") { } else if matches.is_present("no-check") {
flags.check = CheckFlag::None; flags.typecheck_mode = TypecheckMode::None;
} }
} }
@ -3659,7 +3659,7 @@ mod tests {
import_map_path: Some("import_map.json".to_string()), import_map_path: Some("import_map.json".to_string()),
no_remote: true, no_remote: true,
config_path: Some("tsconfig.json".to_string()), config_path: Some("tsconfig.json".to_string()),
check: CheckFlag::None, typecheck_mode: TypecheckMode::None,
reload: true, reload: true,
lock: Some(PathBuf::from("lock.json")), lock: Some(PathBuf::from("lock.json")),
lock_write: true, lock_write: true,
@ -3744,7 +3744,7 @@ mod tests {
import_map_path: Some("import_map.json".to_string()), import_map_path: Some("import_map.json".to_string()),
no_remote: true, no_remote: true,
config_path: Some("tsconfig.json".to_string()), config_path: Some("tsconfig.json".to_string()),
check: CheckFlag::None, typecheck_mode: TypecheckMode::None,
reload: true, reload: true,
lock: Some(PathBuf::from("lock.json")), lock: Some(PathBuf::from("lock.json")),
lock_write: true, lock_write: true,
@ -4012,7 +4012,7 @@ mod tests {
source_file: "script.ts".to_string(), source_file: "script.ts".to_string(),
out_file: None, out_file: None,
}), }),
check: CheckFlag::None, typecheck_mode: TypecheckMode::None,
..Flags::default() ..Flags::default()
} }
); );
@ -4234,7 +4234,7 @@ mod tests {
import_map_path: Some("import_map.json".to_string()), import_map_path: Some("import_map.json".to_string()),
no_remote: true, no_remote: true,
config_path: Some("tsconfig.json".to_string()), config_path: Some("tsconfig.json".to_string()),
check: CheckFlag::None, typecheck_mode: TypecheckMode::None,
reload: true, reload: true,
lock: Some(PathBuf::from("lock.json")), lock: Some(PathBuf::from("lock.json")),
lock_write: true, lock_write: true,
@ -4385,7 +4385,7 @@ mod tests {
subcommand: DenoSubcommand::Run(RunFlags { subcommand: DenoSubcommand::Run(RunFlags {
script: "script.ts".to_string(), script: "script.ts".to_string(),
}), }),
check: CheckFlag::None, typecheck_mode: TypecheckMode::None,
..Flags::default() ..Flags::default()
} }
); );
@ -4401,7 +4401,7 @@ mod tests {
subcommand: DenoSubcommand::Run(RunFlags { subcommand: DenoSubcommand::Run(RunFlags {
script: "script.ts".to_string(), script: "script.ts".to_string(),
}), }),
check: CheckFlag::Local, typecheck_mode: TypecheckMode::Local,
..Flags::default() ..Flags::default()
} }
); );
@ -5073,7 +5073,7 @@ mod tests {
import_map_path: Some("import_map.json".to_string()), import_map_path: Some("import_map.json".to_string()),
no_remote: true, no_remote: true,
config_path: Some("tsconfig.json".to_string()), config_path: Some("tsconfig.json".to_string()),
check: CheckFlag::None, typecheck_mode: TypecheckMode::None,
reload: true, reload: true,
lock: Some(PathBuf::from("lock.json")), lock: Some(PathBuf::from("lock.json")),
lock_write: true, lock_write: true,

View file

@ -43,7 +43,6 @@ use crate::file_watcher::ResolutionResult;
use crate::flags::BenchFlags; use crate::flags::BenchFlags;
use crate::flags::BundleFlags; use crate::flags::BundleFlags;
use crate::flags::CacheFlags; use crate::flags::CacheFlags;
use crate::flags::CheckFlag;
use crate::flags::CompileFlags; use crate::flags::CompileFlags;
use crate::flags::CompletionsFlags; use crate::flags::CompletionsFlags;
use crate::flags::CoverageFlags; use crate::flags::CoverageFlags;
@ -59,6 +58,7 @@ use crate::flags::ReplFlags;
use crate::flags::RunFlags; use crate::flags::RunFlags;
use crate::flags::TaskFlags; use crate::flags::TaskFlags;
use crate::flags::TestFlags; use crate::flags::TestFlags;
use crate::flags::TypecheckMode;
use crate::flags::UninstallFlags; use crate::flags::UninstallFlags;
use crate::flags::UpgradeFlags; use crate::flags::UpgradeFlags;
use crate::flags::VendorFlags; use crate::flags::VendorFlags;
@ -677,10 +677,14 @@ async fn create_graph_and_maybe_check(
.as_ref() .as_ref()
.map(|cf| cf.get_check_js()) .map(|cf| cf.get_check_js())
.unwrap_or(false); .unwrap_or(false);
graph_valid(&graph, ps.flags.check != CheckFlag::None, check_js)?; graph_valid(
&graph,
ps.flags.typecheck_mode != TypecheckMode::None,
check_js,
)?;
graph_lock_or_exit(&graph); graph_lock_or_exit(&graph);
if ps.flags.check != CheckFlag::None { if ps.flags.typecheck_mode != TypecheckMode::None {
let lib = if ps.flags.unstable { let lib = if ps.flags.unstable {
emit::TypeLib::UnstableDenoWindow emit::TypeLib::UnstableDenoWindow
} else { } else {
@ -704,7 +708,7 @@ async fn create_graph_and_maybe_check(
Arc::new(RwLock::new(graph.as_ref().into())), Arc::new(RwLock::new(graph.as_ref().into())),
&mut cache, &mut cache,
emit::CheckOptions { emit::CheckOptions {
check: ps.flags.check.clone(), typecheck_mode: ps.flags.typecheck_mode.clone(),
debug, debug,
emit_with_diagnostics: false, emit_with_diagnostics: false,
maybe_config_specifier, maybe_config_specifier,
@ -735,7 +739,7 @@ fn bundle_module_graph(
ps.maybe_config_file.as_ref(), ps.maybe_config_file.as_ref(),
None, None,
)?; )?;
if flags.check == CheckFlag::None { if flags.typecheck_mode == TypecheckMode::None {
if let Some(ignored_options) = maybe_ignored_options { if let Some(ignored_options) = maybe_ignored_options {
eprintln!("{}", ignored_options); eprintln!("{}", ignored_options);
} }
@ -1004,7 +1008,11 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> {
.as_ref() .as_ref()
.map(|cf| cf.get_check_js()) .map(|cf| cf.get_check_js())
.unwrap_or(false); .unwrap_or(false);
graph_valid(&graph, ps.flags.check != flags::CheckFlag::None, check_js)?; graph_valid(
&graph,
ps.flags.typecheck_mode != flags::TypecheckMode::None,
check_js,
)?;
// Find all local files in graph // Find all local files in graph
let mut paths_to_watch: Vec<PathBuf> = graph let mut paths_to_watch: Vec<PathBuf> = graph

View file

@ -245,7 +245,7 @@ async fn op_emit(
Arc::new(RwLock::new(graph.as_ref().into())), Arc::new(RwLock::new(graph.as_ref().into())),
cache.as_mut_cacher(), cache.as_mut_cacher(),
emit::CheckOptions { emit::CheckOptions {
check: flags::CheckFlag::All, typecheck_mode: flags::TypecheckMode::All,
debug, debug,
emit_with_diagnostics: true, emit_with_diagnostics: true,
maybe_config_specifier: None, maybe_config_specifier: None,
@ -268,7 +268,7 @@ async fn op_emit(
Arc::new(RwLock::new(graph.as_ref().into())), Arc::new(RwLock::new(graph.as_ref().into())),
cache.as_mut_cacher(), cache.as_mut_cacher(),
emit::CheckOptions { emit::CheckOptions {
check: flags::CheckFlag::All, typecheck_mode: flags::TypecheckMode::All,
debug, debug,
emit_with_diagnostics: true, emit_with_diagnostics: true,
maybe_config_specifier: None, maybe_config_specifier: None,

View file

@ -304,12 +304,12 @@ impl ProcState {
}; };
if !reload_on_watch { if !reload_on_watch {
let graph_data = self.graph_data.read(); let graph_data = self.graph_data.read();
if self.flags.check == flags::CheckFlag::None if self.flags.typecheck_mode == flags::TypecheckMode::None
|| graph_data.is_type_checked(&roots, &lib) || graph_data.is_type_checked(&roots, &lib)
{ {
if let Some(result) = graph_data.check( if let Some(result) = graph_data.check(
&roots, &roots,
self.flags.check != flags::CheckFlag::None, self.flags.typecheck_mode != flags::TypecheckMode::None,
false, false,
) { ) {
return result; return result;
@ -417,11 +417,16 @@ impl ProcState {
.map(|cf| cf.get_check_js()) .map(|cf| cf.get_check_js())
.unwrap_or(false); .unwrap_or(false);
graph_data graph_data
.check(&roots, self.flags.check != flags::CheckFlag::None, check_js) .check(
&roots,
self.flags.typecheck_mode != flags::TypecheckMode::None,
check_js,
)
.unwrap()?; .unwrap()?;
} }
let config_type = if self.flags.check == flags::CheckFlag::None { let config_type = if self.flags.typecheck_mode == flags::TypecheckMode::None
{
emit::ConfigType::Emit emit::ConfigType::Emit
} else { } else {
emit::ConfigType::Check { emit::ConfigType::Check {
@ -437,7 +442,7 @@ impl ProcState {
log::warn!("{}", ignored_options); log::warn!("{}", ignored_options);
} }
if self.flags.check == flags::CheckFlag::None { if self.flags.typecheck_mode == flags::TypecheckMode::None {
let options = emit::EmitOptions { let options = emit::EmitOptions {
ts_config, ts_config,
reload: self.flags.reload, reload: self.flags.reload,
@ -451,7 +456,7 @@ impl ProcState {
.as_ref() .as_ref()
.map(|cf| cf.specifier.clone()); .map(|cf| cf.specifier.clone());
let options = emit::CheckOptions { let options = emit::CheckOptions {
check: self.flags.check.clone(), typecheck_mode: self.flags.typecheck_mode.clone(),
debug: self.flags.log_level == Some(log::Level::Debug), debug: self.flags.log_level == Some(log::Level::Debug),
emit_with_diagnostics: false, emit_with_diagnostics: false,
maybe_config_specifier, maybe_config_specifier,
@ -472,7 +477,7 @@ impl ProcState {
log::debug!("{}", emit_result.stats); log::debug!("{}", emit_result.stats);
} }
if self.flags.check != flags::CheckFlag::None { if self.flags.typecheck_mode != flags::TypecheckMode::None {
let mut graph_data = self.graph_data.write(); let mut graph_data = self.graph_data.write();
graph_data.set_type_checked(&roots, &lib); graph_data.set_type_checked(&roots, &lib);
} }

View file

@ -10,8 +10,8 @@ use crate::emit;
use crate::file_watcher; use crate::file_watcher;
use crate::file_watcher::ResolutionResult; use crate::file_watcher::ResolutionResult;
use crate::flags::BenchFlags; use crate::flags::BenchFlags;
use crate::flags::CheckFlag;
use crate::flags::Flags; use crate::flags::Flags;
use crate::flags::TypecheckMode;
use crate::fs_util::collect_specifiers; use crate::fs_util::collect_specifiers;
use crate::fs_util::is_supported_bench_path; use crate::fs_util::is_supported_bench_path;
use crate::graph_util::contains_specifier; use crate::graph_util::contains_specifier;
@ -517,7 +517,7 @@ pub async fn run_benchmarks_with_watch(
let include = bench_flags.include.unwrap_or_else(|| vec![".".to_string()]); let include = bench_flags.include.unwrap_or_else(|| vec![".".to_string()]);
let ignore = bench_flags.ignore.clone(); let ignore = bench_flags.ignore.clone();
let paths_to_watch: Vec<_> = include.iter().map(PathBuf::from).collect(); let paths_to_watch: Vec<_> = include.iter().map(PathBuf::from).collect();
let no_check = ps.flags.check == CheckFlag::None; let no_check = ps.flags.typecheck_mode == TypecheckMode::None;
let resolver = |changed: Option<Vec<PathBuf>>| { let resolver = |changed: Option<Vec<PathBuf>>| {
let mut cache = cache::FetchCacher::new( let mut cache = cache::FetchCacher::new(

View file

@ -1,8 +1,8 @@
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
use crate::flags::CheckFlag;
use crate::flags::Flags; use crate::flags::Flags;
use crate::flags::InstallFlags; use crate::flags::InstallFlags;
use crate::flags::TypecheckMode;
use crate::fs_util::canonicalize_path; use crate::fs_util::canonicalize_path;
use deno_core::error::generic_error; use deno_core::error::generic_error;
use deno_core::error::AnyError; use deno_core::error::AnyError;
@ -306,10 +306,12 @@ fn resolve_shim_data(
// we should avoid a default branch here to ensure we continue to cover any // we should avoid a default branch here to ensure we continue to cover any
// changes to this flag. // changes to this flag.
match flags.check { match flags.typecheck_mode {
CheckFlag::All => (), TypecheckMode::All => (),
CheckFlag::None => executable_args.push("--no-check".to_string()), TypecheckMode::None => executable_args.push("--no-check".to_string()),
CheckFlag::Local => executable_args.push("--no-check=remote".to_string()), TypecheckMode::Local => {
executable_args.push("--no-check=remote".to_string())
}
} }
if flags.unstable { if flags.unstable {
@ -584,7 +586,7 @@ mod tests {
&Flags { &Flags {
allow_net: Some(vec![]), allow_net: Some(vec![]),
allow_read: Some(vec![]), allow_read: Some(vec![]),
check: CheckFlag::None, typecheck_mode: TypecheckMode::None,
log_level: Some(Level::Error), log_level: Some(Level::Error),
..Flags::default() ..Flags::default()
}, },

View file

@ -1,11 +1,11 @@
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
use crate::deno_dir::DenoDir; use crate::deno_dir::DenoDir;
use crate::flags::CheckFlag;
use crate::flags::CompileFlags; use crate::flags::CompileFlags;
use crate::flags::DenoSubcommand; use crate::flags::DenoSubcommand;
use crate::flags::Flags; use crate::flags::Flags;
use crate::flags::RunFlags; use crate::flags::RunFlags;
use crate::flags::TypecheckMode;
use crate::fs_util; use crate::fs_util;
use crate::standalone::Metadata; use crate::standalone::Metadata;
use crate::standalone::MAGIC_TRAILER; use crate::standalone::MAGIC_TRAILER;
@ -274,7 +274,7 @@ pub fn compile_to_runtime_flags(
lock_write: false, lock_write: false,
lock: None, lock: None,
log_level: flags.log_level, log_level: flags.log_level,
check: CheckFlag::All, typecheck_mode: TypecheckMode::All,
compat: flags.compat, compat: flags.compat,
unsafely_ignore_certificate_errors: flags unsafely_ignore_certificate_errors: flags
.unsafely_ignore_certificate_errors .unsafely_ignore_certificate_errors

View file

@ -10,9 +10,9 @@ use crate::emit;
use crate::file_fetcher::File; use crate::file_fetcher::File;
use crate::file_watcher; use crate::file_watcher;
use crate::file_watcher::ResolutionResult; use crate::file_watcher::ResolutionResult;
use crate::flags::CheckFlag;
use crate::flags::Flags; use crate::flags::Flags;
use crate::flags::TestFlags; use crate::flags::TestFlags;
use crate::flags::TypecheckMode;
use crate::fs_util::collect_specifiers; use crate::fs_util::collect_specifiers;
use crate::fs_util::is_supported_test_ext; use crate::fs_util::is_supported_test_ext;
use crate::fs_util::is_supported_test_path; use crate::fs_util::is_supported_test_path;
@ -1075,7 +1075,7 @@ pub async fn run_tests_with_watch(
let include = test_flags.include.unwrap_or_else(|| vec![".".to_string()]); let include = test_flags.include.unwrap_or_else(|| vec![".".to_string()]);
let ignore = test_flags.ignore.clone(); let ignore = test_flags.ignore.clone();
let paths_to_watch: Vec<_> = include.iter().map(PathBuf::from).collect(); let paths_to_watch: Vec<_> = include.iter().map(PathBuf::from).collect();
let no_check = ps.flags.check == CheckFlag::None; let no_check = ps.flags.typecheck_mode == TypecheckMode::None;
let resolver = |changed: Option<Vec<PathBuf>>| { let resolver = |changed: Option<Vec<PathBuf>>| {
let mut cache = cache::FetchCacher::new( let mut cache = cache::FetchCacher::new(