diff options
Diffstat (limited to 'cli/tools')
-rw-r--r-- | cli/tools/bench.rs | 53 | ||||
-rw-r--r-- | cli/tools/doc.rs | 127 | ||||
-rw-r--r-- | cli/tools/test.rs | 53 | ||||
-rw-r--r-- | cli/tools/vendor/mod.rs | 42 |
4 files changed, 32 insertions, 243 deletions
diff --git a/cli/tools/bench.rs b/cli/tools/bench.rs index 9dfe2cd37..3946435df 100644 --- a/cli/tools/bench.rs +++ b/cli/tools/bench.rs @@ -3,7 +3,6 @@ use crate::args::BenchFlags; use crate::args::Flags; use crate::args::TypeCheckMode; -use crate::cache; use crate::colors; use crate::compat; use crate::create_main_worker; @@ -14,11 +13,8 @@ use crate::fs_util::is_supported_bench_path; use crate::graph_util::contains_specifier; use crate::graph_util::graph_valid; use crate::located_script_name; -use crate::lockfile; use crate::ops; use crate::proc_state::ProcState; -use crate::resolver::ImportMapResolver; -use crate::resolver::JsxResolver; use crate::tools::test::format_test_error; use crate::tools::test::TestFilter; @@ -571,28 +567,13 @@ pub async fn run_benchmarks_with_watch( let no_check = ps.options.type_check_mode() == TypeCheckMode::None; let resolver = |changed: Option<Vec<PathBuf>>| { - let mut cache = cache::FetchCacher::new( - ps.dir.gen_cache.clone(), - ps.file_fetcher.clone(), - Permissions::allow_all(), - Permissions::allow_all(), - ); - let paths_to_watch = paths_to_watch.clone(); let paths_to_watch_clone = paths_to_watch.clone(); - let maybe_import_map_resolver = - ps.maybe_import_map.clone().map(ImportMapResolver::new); - let maybe_jsx_resolver = ps - .options - .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_result = ps.options.to_maybe_imports(); let files_changed = changed.is_some(); let include = include.clone(); let ignore = ignore.clone(); - let check_js = ps.options.check_js(); + let ps = ps.clone(); async move { let bench_modules = @@ -607,29 +588,15 @@ pub async fn run_benchmarks_with_watch( .map(|url| (url.clone(), ModuleKind::Esm)) .collect() }; - 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 { - maybe_import_map_resolver - .as_ref() - .map(|im| im.as_resolver()) - }; - let graph = deno_graph::create_graph( - bench_modules - .iter() - .map(|s| (s.clone(), ModuleKind::Esm)) - .collect(), - false, - maybe_imports, - &mut cache, - maybe_resolver, - maybe_locker, - None, - None, - ) - .await; - graph_valid(&graph, !no_check, check_js)?; + let graph = ps + .create_graph( + bench_modules + .iter() + .map(|s| (s.clone(), ModuleKind::Esm)) + .collect(), + ) + .await?; + graph_valid(&graph, !no_check, ps.options.check_js())?; // TODO(@kitsonk) - This should be totally derivable from the graph. for specifier in bench_modules { diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index fbb784f98..ae0f37f1b 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -9,88 +9,13 @@ use crate::proc_state::ProcState; use crate::write_json_to_stdout; use crate::write_to_stdout_ignore_sigpipe; use deno_ast::MediaType; +use deno_core::anyhow::bail; use deno_core::error::AnyError; -use deno_core::futures::future; -use deno_core::futures::future::FutureExt; use deno_core::resolve_url_or_path; use deno_doc as doc; -use deno_graph::create_graph; -use deno_graph::source::LoadFuture; -use deno_graph::source::LoadResponse; -use deno_graph::source::Loader; -use deno_graph::source::ResolveResponse; -use deno_graph::source::Resolver; use deno_graph::ModuleKind; use deno_graph::ModuleSpecifier; -use deno_runtime::permissions::Permissions; -use import_map::ImportMap; use std::path::PathBuf; -use std::sync::Arc; - -struct StubDocLoader; - -impl Loader for StubDocLoader { - fn load( - &mut self, - _specifier: &ModuleSpecifier, - _is_dynamic: bool, - ) -> LoadFuture { - Box::pin(future::ready(Ok(None))) - } -} - -#[derive(Debug)] -struct DocResolver { - import_map: Option<Arc<ImportMap>>, -} - -impl Resolver for DocResolver { - fn resolve( - &self, - specifier: &str, - referrer: &ModuleSpecifier, - ) -> ResolveResponse { - if let Some(import_map) = &self.import_map { - return match import_map.resolve(specifier, referrer) { - Ok(specifier) => ResolveResponse::Specifier(specifier), - Err(err) => ResolveResponse::Err(err.into()), - }; - } - - match deno_core::resolve_import(specifier, referrer.as_str()) { - Ok(specifier) => ResolveResponse::Specifier(specifier), - Err(err) => ResolveResponse::Err(err.into()), - } - } -} - -struct DocLoader { - ps: ProcState, -} - -impl Loader for DocLoader { - fn load( - &mut self, - specifier: &ModuleSpecifier, - _is_dynamic: bool, - ) -> LoadFuture { - let specifier = specifier.clone(); - let ps = self.ps.clone(); - async move { - ps.file_fetcher - .fetch(&specifier, &mut Permissions::allow_all()) - .await - .map(|file| { - Some(LoadResponse::Module { - specifier, - content: file.source.clone(), - maybe_headers: file.maybe_headers, - }) - }) - } - .boxed_local() - } -} pub async fn print_docs( flags: Flags, @@ -102,28 +27,19 @@ pub async fn print_docs( .unwrap_or_else(|| "--builtin".to_string()); let source_parser = deno_graph::DefaultSourceParser::new(); - let parse_result = if source_file == "--builtin" { - let mut loader = StubDocLoader; + let mut doc_nodes = if source_file == "--builtin" { let source_file_specifier = ModuleSpecifier::parse("deno://lib.deno.d.ts").unwrap(); - let graph = create_graph( - vec![(source_file_specifier.clone(), ModuleKind::Esm)], - false, - None, - &mut loader, - None, - None, - None, - None, - ) - .await; + let graph = ps + .create_graph(vec![(source_file_specifier.clone(), ModuleKind::Esm)]) + .await?; let doc_parser = doc::DocParser::new(graph, doc_flags.private, &source_parser); doc_parser.parse_source( &source_file_specifier, MediaType::Dts, get_types(ps.options.unstable()).into(), - ) + )? } else { let module_specifier = resolve_url_or_path(&source_file)?; @@ -142,32 +58,12 @@ pub async fn print_docs( // Save our fake file into file fetcher cache. ps.file_fetcher.insert_cached(root); - let mut loader = DocLoader { ps: ps.clone() }; - let resolver = DocResolver { - import_map: ps.maybe_import_map.clone(), - }; - let graph = create_graph( - vec![(root_specifier.clone(), ModuleKind::Esm)], - false, - None, - &mut loader, - Some(&resolver), - None, - None, - None, - ) - .await; + let graph = ps + .create_graph(vec![(root_specifier.clone(), ModuleKind::Esm)]) + .await?; let doc_parser = doc::DocParser::new(graph, doc_flags.private, &source_parser); - doc_parser.parse_with_reexports(&root_specifier) - }; - - let mut doc_nodes = match parse_result { - Ok(nodes) => nodes, - Err(e) => { - eprintln!("{}", e); - std::process::exit(1); - } + doc_parser.parse_with_reexports(&root_specifier)? }; if doc_flags.json { @@ -178,8 +74,7 @@ pub async fn print_docs( let nodes = doc::find_nodes_by_name_recursively(doc_nodes, filter.clone()); if nodes.is_empty() { - eprintln!("Node {} was not found!", filter); - std::process::exit(1); + bail!("Node {} was not found!", filter); } format!( "{}", diff --git a/cli/tools/test.rs b/cli/tools/test.rs index 4bebe6fee..5586026cc 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -3,7 +3,6 @@ use crate::args::Flags; use crate::args::TestFlags; use crate::args::TypeCheckMode; -use crate::cache; use crate::colors; use crate::compat; use crate::create_main_worker; @@ -18,11 +17,8 @@ use crate::fs_util::is_supported_test_path; use crate::graph_util::contains_specifier; use crate::graph_util::graph_valid; use crate::located_script_name; -use crate::lockfile; use crate::ops; use crate::proc_state::ProcState; -use crate::resolver::ImportMapResolver; -use crate::resolver::JsxResolver; use crate::tools::coverage::CoverageCollector; use deno_ast::swc::common::comments::CommentKind; @@ -1394,28 +1390,13 @@ pub async fn run_tests_with_watch( let no_check = ps.options.type_check_mode() == TypeCheckMode::None; let resolver = |changed: Option<Vec<PathBuf>>| { - let mut cache = cache::FetchCacher::new( - ps.dir.gen_cache.clone(), - ps.file_fetcher.clone(), - Permissions::allow_all(), - Permissions::allow_all(), - ); - let paths_to_watch = paths_to_watch.clone(); let paths_to_watch_clone = paths_to_watch.clone(); - let maybe_import_map_resolver = - ps.maybe_import_map.clone().map(ImportMapResolver::new); - let maybe_jsx_resolver = ps - .options - .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_result = ps.options.to_maybe_imports(); let files_changed = changed.is_some(); let include = include.clone(); let ignore = ignore.clone(); - let check_js = ps.options.check_js(); + let ps = ps.clone(); async move { let test_modules = if test_flags.doc { @@ -1433,29 +1414,15 @@ pub async fn run_tests_with_watch( .map(|url| (url.clone(), ModuleKind::Esm)) .collect() }; - 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 { - maybe_import_map_resolver - .as_ref() - .map(|im| im.as_resolver()) - }; - let graph = deno_graph::create_graph( - test_modules - .iter() - .map(|s| (s.clone(), ModuleKind::Esm)) - .collect(), - false, - maybe_imports, - &mut cache, - maybe_resolver, - maybe_locker, - None, - None, - ) - .await; - graph_valid(&graph, !no_check, check_js)?; + let graph = ps + .create_graph( + test_modules + .iter() + .map(|s| (s.clone(), ModuleKind::Esm)) + .collect(), + ) + .await?; + graph_valid(&graph, !no_check, ps.options.check_js())?; // TODO(@kitsonk) - This should be totally derivable from the graph. for specifier in test_modules { diff --git a/cli/tools/vendor/mod.rs b/cli/tools/vendor/mod.rs index 48f6ea7f1..a7b26aa79 100644 --- a/cli/tools/vendor/mod.rs +++ b/cli/tools/vendor/mod.rs @@ -9,7 +9,6 @@ use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::resolve_url_or_path; -use deno_runtime::permissions::Permissions; use log::warn; use crate::args::CliOptions; @@ -19,10 +18,7 @@ use crate::args::VendorFlags; use crate::fs_util; use crate::fs_util::relative_specifier; use crate::fs_util::specifier_to_file_path; -use crate::lockfile; use crate::proc_state::ProcState; -use crate::resolver::ImportMapResolver; -use crate::resolver::JsxResolver; use crate::tools::fmt::format_json; mod analyze; @@ -271,43 +267,7 @@ async fn create_graph( }) .collect::<Result<Vec<_>, AnyError>>()?; - // todo(dsherret): there is a lot of copy and paste here from - // other parts of the codebase. We should consolidate this. - let mut cache = crate::cache::FetchCacher::new( - ps.dir.gen_cache.clone(), - ps.file_fetcher.clone(), - Permissions::allow_all(), - Permissions::allow_all(), - ); - let maybe_locker = lockfile::as_maybe_locker(ps.lockfile.clone()); - let maybe_imports = ps.options.to_maybe_imports()?; - let maybe_import_map_resolver = - ps.maybe_import_map.clone().map(ImportMapResolver::new); - let maybe_jsx_resolver = ps - .options - .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 { - maybe_import_map_resolver - .as_ref() - .map(|im| im.as_resolver()) - }; - - Ok( - deno_graph::create_graph( - entry_points, - false, - maybe_imports, - &mut cache, - maybe_resolver, - maybe_locker, - None, - None, - ) - .await, - ) + ps.create_graph(entry_points).await } #[cfg(test)] |