diff options
Diffstat (limited to 'cli/tools')
-rw-r--r-- | cli/tools/bench.rs | 34 | ||||
-rw-r--r-- | cli/tools/compile.rs | 14 | ||||
-rw-r--r-- | cli/tools/doc.rs | 5 | ||||
-rw-r--r-- | cli/tools/info.rs | 3 | ||||
-rw-r--r-- | cli/tools/test.rs | 34 | ||||
-rw-r--r-- | cli/tools/vendor/mod.rs | 5 | ||||
-rw-r--r-- | cli/tools/vendor/test.rs | 3 |
7 files changed, 50 insertions, 48 deletions
diff --git a/cli/tools/bench.rs b/cli/tools/bench.rs index 107fd2b9b..1a5df92bf 100644 --- a/cli/tools/bench.rs +++ b/cli/tools/bench.rs @@ -31,6 +31,7 @@ use deno_core::task::spawn; use deno_core::task::spawn_blocking; use deno_core::v8; use deno_core::ModuleSpecifier; +use deno_graph::GraphKind; use deno_runtime::permissions::Permissions; use deno_runtime::permissions::PermissionsContainer; use deno_runtime::tokio_util::create_and_run_current_thread; @@ -693,7 +694,11 @@ pub async fn run_benchmarks_with_watch( // file would have impact on other files, which is undesirable. let permissions = Permissions::from_options(&cli_options.permissions_options())?; - let no_check = cli_options.type_check_mode() == TypeCheckMode::None; + let type_check = cli_options.type_check_mode() != TypeCheckMode::None; + let graph_kind = match type_check { + true => GraphKind::All, + false => GraphKind::CodeOnly, + }; let resolver = |changed: Option<Vec<PathBuf>>| { let paths_to_watch = bench_options.files.include.clone(); @@ -714,7 +719,7 @@ pub async fn run_benchmarks_with_watch( bench_modules.clone() }; let graph = module_graph_builder - .create_graph(bench_modules.clone()) + .create_graph(graph_kind, bench_modules.clone()) .await?; graph_valid_with_cli_options(&graph, &bench_modules, &cli_options)?; @@ -726,32 +731,19 @@ pub async fn run_benchmarks_with_watch( // This needs to be accessible to skip getting dependencies if they're already there, // otherwise this will cause a stack overflow with circular dependencies output: &mut HashSet<&'a ModuleSpecifier>, - no_check: bool, ) { if let Some(module) = maybe_module.and_then(|m| m.esm()) { for dep in module.dependencies.values() { if let Some(specifier) = &dep.get_code() { if !output.contains(specifier) { output.insert(specifier); - get_dependencies( - graph, - graph.get(specifier), - output, - no_check, - ); + get_dependencies(graph, graph.get(specifier), output); } } - if !no_check { - if let Some(specifier) = &dep.get_type() { - if !output.contains(specifier) { - output.insert(specifier); - get_dependencies( - graph, - graph.get(specifier), - output, - no_check, - ); - } + if let Some(specifier) = &dep.get_type() { + if !output.contains(specifier) { + output.insert(specifier); + get_dependencies(graph, graph.get(specifier), output); } } } @@ -761,7 +753,7 @@ pub async fn run_benchmarks_with_watch( // This bench module and all it's dependencies let mut modules = HashSet::new(); modules.insert(&specifier); - get_dependencies(&graph, graph.get(&specifier), &mut modules, no_check); + get_dependencies(&graph, graph.get(&specifier), &mut modules); paths_to_watch.extend( modules diff --git a/cli/tools/compile.rs b/cli/tools/compile.rs index 2ce03e353..540c23fc8 100644 --- a/cli/tools/compile.rs +++ b/cli/tools/compile.rs @@ -2,6 +2,7 @@ use crate::args::CompileFlags; use crate::args::Flags; +use crate::args::TypeCheckMode; use crate::factory::CliFactory; use crate::standalone::is_standalone_binary; use crate::util::path::path_has_trailing_slash; @@ -10,6 +11,7 @@ use deno_core::anyhow::Context; use deno_core::error::generic_error; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; +use deno_graph::GraphKind; use deno_runtime::colors; use std::path::Path; use std::path::PathBuf; @@ -44,10 +46,20 @@ pub async fn compile( let graph = Arc::try_unwrap( module_graph_builder - .create_graph_and_maybe_check(module_roots) + .create_graph_and_maybe_check(module_roots.clone()) .await?, ) .unwrap(); + let graph = if cli_options.type_check_mode() == TypeCheckMode::None { + graph + } else { + // In this case, the previous graph creation did type checking, which will + // create a module graph with types information in it. We don't want to + // store that in the eszip so create a code only module graph from scratch. + module_graph_builder + .create_graph(GraphKind::CodeOnly, module_roots) + .await? + }; let parser = parsed_source_cache.as_capturing_parser(); let eszip = eszip::EszipV2::from_graph(graph, &parser, Default::default())?; diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index 2cb53cb6a..87fa25315 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -16,6 +16,7 @@ use deno_core::error::AnyError; use deno_core::resolve_path; use deno_core::resolve_url_or_path; use deno_doc as doc; +use deno_graph::GraphKind; use deno_graph::ModuleSpecifier; use std::path::PathBuf; @@ -43,7 +44,7 @@ pub async fn print_docs( Vec::new(), ); let analyzer = deno_graph::CapturingModuleAnalyzer::default(); - let mut graph = deno_graph::ModuleGraph::default(); + let mut graph = deno_graph::ModuleGraph::new(GraphKind::TypesOnly); graph .build( vec![source_file_specifier.clone()], @@ -87,7 +88,7 @@ pub async fn print_docs( file_fetcher.insert_cached(root); let graph = module_graph_builder - .create_graph(vec![root_specifier.clone()]) + .create_graph(GraphKind::TypesOnly, vec![root_specifier.clone()]) .await?; if let Some(lockfile) = maybe_lockfile { diff --git a/cli/tools/info.rs b/cli/tools/info.rs index 63a755369..95a7da7b0 100644 --- a/cli/tools/info.rs +++ b/cli/tools/info.rs @@ -11,6 +11,7 @@ use deno_core::resolve_url_or_path; use deno_core::serde_json; use deno_core::serde_json::json; use deno_graph::Dependency; +use deno_graph::GraphKind; use deno_graph::Module; use deno_graph::ModuleError; use deno_graph::ModuleGraph; @@ -43,7 +44,7 @@ pub async fn info(flags: Flags, info_flags: InfoFlags) -> Result<(), AnyError> { let mut loader = module_graph_builder.create_graph_loader(); loader.enable_loading_cache_info(); // for displaying the cache information let graph = module_graph_builder - .create_graph_with_loader(vec![specifier], &mut loader) + .create_graph_with_loader(GraphKind::All, vec![specifier], &mut loader) .await?; if let Some(lockfile) = maybe_lockfile { diff --git a/cli/tools/test.rs b/cli/tools/test.rs index f78e32539..bc8f68599 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -39,6 +39,7 @@ use deno_core::task::spawn_blocking; use deno_core::url::Url; use deno_core::v8; use deno_core::ModuleSpecifier; +use deno_graph::GraphKind; use deno_runtime::deno_io::Stdio; use deno_runtime::deno_io::StdioPipe; use deno_runtime::fmt_errors::format_js_error; @@ -1706,7 +1707,11 @@ pub async fn run_tests_with_watch( // file would have impact on other files, which is undesirable. let permissions = Permissions::from_options(&cli_options.permissions_options())?; - let no_check = cli_options.type_check_mode() == TypeCheckMode::None; + let type_check = cli_options.type_check_mode() != TypeCheckMode::None; + let graph_kind = match type_check { + true => GraphKind::All, + false => GraphKind::CodeOnly, + }; let log_level = cli_options.log_level(); let resolver = |changed: Option<Vec<PathBuf>>| { @@ -1731,7 +1736,7 @@ pub async fn run_tests_with_watch( test_modules.clone() }; let graph = module_graph_builder - .create_graph(test_modules.clone()) + .create_graph(graph_kind, test_modules.clone()) .await?; graph_valid_with_cli_options(&graph, &test_modules, &cli_options)?; @@ -1743,32 +1748,19 @@ pub async fn run_tests_with_watch( // This needs to be accessible to skip getting dependencies if they're already there, // otherwise this will cause a stack overflow with circular dependencies output: &mut HashSet<&'a ModuleSpecifier>, - no_check: bool, ) { if let Some(module) = maybe_module.and_then(|m| m.esm()) { for dep in module.dependencies.values() { if let Some(specifier) = &dep.get_code() { if !output.contains(specifier) { output.insert(specifier); - get_dependencies( - graph, - graph.get(specifier), - output, - no_check, - ); + get_dependencies(graph, graph.get(specifier), output); } } - if !no_check { - if let Some(specifier) = &dep.get_type() { - if !output.contains(specifier) { - output.insert(specifier); - get_dependencies( - graph, - graph.get(specifier), - output, - no_check, - ); - } + if let Some(specifier) = &dep.get_type() { + if !output.contains(specifier) { + output.insert(specifier); + get_dependencies(graph, graph.get(specifier), output); } } } @@ -1778,7 +1770,7 @@ pub async fn run_tests_with_watch( // This test module and all it's dependencies let mut modules = HashSet::new(); modules.insert(&specifier); - get_dependencies(&graph, graph.get(&specifier), &mut modules, no_check); + get_dependencies(&graph, graph.get(&specifier), &mut modules); paths_to_watch.extend( modules diff --git a/cli/tools/vendor/mod.rs b/cli/tools/vendor/mod.rs index 5690f5b22..61ada605c 100644 --- a/cli/tools/vendor/mod.rs +++ b/cli/tools/vendor/mod.rs @@ -10,6 +10,7 @@ use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; +use deno_graph::GraphKind; use log::warn; use crate::args::CliOptions; @@ -371,7 +372,9 @@ async fn create_graph( .map(|p| resolve_url_or_path(p, initial_cwd)) .collect::<Result<Vec<_>, _>>()?; - module_graph_builder.create_graph(entry_points).await + module_graph_builder + .create_graph(GraphKind::All, entry_points) + .await } #[cfg(test)] diff --git a/cli/tools/vendor/test.rs b/cli/tools/vendor/test.rs index e8a474ed3..08b6d8355 100644 --- a/cli/tools/vendor/test.rs +++ b/cli/tools/vendor/test.rs @@ -16,6 +16,7 @@ use deno_core::serde_json; use deno_graph::source::LoadFuture; use deno_graph::source::LoadResponse; use deno_graph::source::Loader; +use deno_graph::GraphKind; use deno_graph::ModuleGraph; use import_map::ImportMap; @@ -279,7 +280,7 @@ async fn build_test_graph( Default::default(), ) }); - let mut graph = ModuleGraph::default(); + let mut graph = ModuleGraph::new(GraphKind::All); graph .build( roots, |