summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/bench.rs53
-rw-r--r--cli/tools/doc.rs127
-rw-r--r--cli/tools/test.rs53
-rw-r--r--cli/tools/vendor/mod.rs42
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)]