summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-01-15 19:15:39 -0500
committerGitHub <noreply@github.com>2024-01-15 19:15:39 -0500
commit4e72ca313a8fa1d826783bdc5657937da97d590c (patch)
tree254bb4074df8a8dfe42200bc0e613b7e082651f3 /cli/tools
parent3ff80eb1521c49a43e0fae53840e5a636571ebfe (diff)
refactor: use globbing from deno_config (#21925)
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/bench/mod.rs5
-rw-r--r--cli/tools/bundle.rs3
-rw-r--r--cli/tools/coverage/mod.rs31
-rw-r--r--cli/tools/doc.rs23
-rw-r--r--cli/tools/fmt.rs2
-rw-r--r--cli/tools/lint.rs2
-rw-r--r--cli/tools/registry/mod.rs8
-rw-r--r--cli/tools/registry/tar.rs2
-rw-r--r--cli/tools/test/mod.rs5
9 files changed, 39 insertions, 42 deletions
diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs
index 1eb703813..146c9e8bd 100644
--- a/cli/tools/bench/mod.rs
+++ b/cli/tools/bench/mod.rs
@@ -15,12 +15,12 @@ use crate::tools::test::format_test_error;
use crate::tools::test::TestFilter;
use crate::util::file_watcher;
use crate::util::fs::collect_specifiers;
-use crate::util::glob::FilePatterns;
-use crate::util::glob::PathOrPattern;
use crate::util::path::is_script_ext;
use crate::version::get_user_agent;
use crate::worker::CliMainWorkerFactory;
+use deno_config::glob::FilePatterns;
+use deno_config::glob::PathOrPattern;
use deno_core::error::generic_error;
use deno_core::error::AnyError;
use deno_core::error::JsError;
@@ -408,6 +408,7 @@ fn is_supported_bench_path(path: &Path, patterns: &FilePatterns) -> bool {
.map(|p| {
p.inner().iter().any(|p| match p {
PathOrPattern::Path(p) => p == path,
+ PathOrPattern::RemoteUrl(_) => true,
PathOrPattern::Pattern(p) => p.matches_path(path),
})
})
diff --git a/cli/tools/bundle.rs b/cli/tools/bundle.rs
index d66a993d6..c70392419 100644
--- a/cli/tools/bundle.rs
+++ b/cli/tools/bundle.rs
@@ -99,9 +99,10 @@ async fn bundle_action(
let out_file = &bundle_flags.out_file;
if let Some(out_file) = out_file {
+ let out_file = cli_options.initial_cwd().join(out_file);
let output_bytes = bundle_output.code.as_bytes();
let output_len = output_bytes.len();
- util::fs::write_file(out_file, output_bytes, 0o644)?;
+ util::fs::write_file(&out_file, output_bytes, 0o644)?;
log::info!(
"{} {:?} ({})",
colors::green("Emit"),
diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs
index c7d84d91d..ec77c1bb8 100644
--- a/cli/tools/coverage/mod.rs
+++ b/cli/tools/coverage/mod.rs
@@ -9,12 +9,13 @@ use crate::npm::CliNpmResolver;
use crate::tools::fmt::format_json;
use crate::tools::test::is_supported_test_path;
use crate::util::fs::FileCollector;
-use crate::util::glob::FilePatterns;
-use crate::util::glob::PathOrPatternSet;
use crate::util::text_encoding::source_map_from_code;
use deno_ast::MediaType;
use deno_ast::ModuleSpecifier;
+use deno_config::glob::FilePatterns;
+use deno_config::glob::PathOrPattern;
+use deno_config::glob::PathOrPatternSet;
use deno_core::anyhow::anyhow;
use deno_core::anyhow::Context;
use deno_core::error::generic_error;
@@ -375,19 +376,25 @@ fn collect_coverages(
files: FileFlags,
initial_cwd: &Path,
) -> Result<Vec<cdp::ScriptCoverage>, AnyError> {
- let files = files.with_absolute_paths(initial_cwd);
let mut coverages: Vec<cdp::ScriptCoverage> = Vec::new();
let file_patterns = FilePatterns {
include: Some({
- let files = if files.include.is_empty() {
- vec![initial_cwd.to_path_buf()]
+ if files.include.is_empty() {
+ PathOrPatternSet::new(vec![PathOrPattern::Path(
+ initial_cwd.to_path_buf(),
+ )])
} else {
- files.include
- };
- PathOrPatternSet::from_absolute_paths(files)?
+ PathOrPatternSet::from_relative_path_or_patterns(
+ initial_cwd,
+ &files.include,
+ )?
+ }
}),
- exclude: PathOrPatternSet::from_absolute_paths(files.ignore)
- .context("Invalid ignore pattern.")?,
+ exclude: PathOrPatternSet::from_relative_path_or_patterns(
+ initial_cwd,
+ &files.ignore,
+ )
+ .context("Invalid ignore pattern.")?,
};
let file_paths = FileCollector::new(|file_path, _| {
file_path
@@ -463,7 +470,9 @@ pub async fn cover_files(
assert!(!coverage_flags.files.include.is_empty());
// Use the first include path as the default output path.
- let coverage_root = coverage_flags.files.include[0].clone();
+ let coverage_root = cli_options
+ .initial_cwd()
+ .join(&coverage_flags.files.include[0]);
let script_coverages =
collect_coverages(coverage_flags.files, cli_options.initial_cwd())?;
if script_coverages.is_empty() {
diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs
index 5e9f32a8f..7a51f6356 100644
--- a/cli/tools/doc.rs
+++ b/cli/tools/doc.rs
@@ -11,8 +11,8 @@ use crate::factory::CliFactory;
use crate::graph_util::graph_lock_or_exit;
use crate::tsc::get_types_declaration_file_text;
use crate::util::fs::collect_specifiers;
-use crate::util::glob::FilePatterns;
-use crate::util::glob::PathOrPatternSet;
+use deno_config::glob::FilePatterns;
+use deno_config::glob::PathOrPatternSet;
use deno_core::anyhow::bail;
use deno_core::anyhow::Context;
use deno_core::error::AnyError;
@@ -25,7 +25,6 @@ use deno_graph::ModuleSpecifier;
use doc::DocDiagnostic;
use indexmap::IndexMap;
use std::collections::BTreeMap;
-use std::path::PathBuf;
use std::rc::Rc;
async fn generate_doc_nodes_for_builtin_types(
@@ -94,21 +93,9 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> {
let module_specifiers = collect_specifiers(
FilePatterns {
- include: Some(PathOrPatternSet::from_absolute_paths(
- source_files
- .iter()
- .map(|p| {
- if p.starts_with("https:")
- || p.starts_with("http:")
- || p.starts_with("file:")
- {
- // todo(dsherret): don't store URLs in PathBufs
- PathBuf::from(p)
- } else {
- cli_options.initial_cwd().join(p)
- }
- })
- .collect(),
+ include: Some(PathOrPatternSet::from_relative_path_or_patterns(
+ cli_options.initial_cwd(),
+ source_files,
)?),
exclude: Default::default(),
},
diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs
index c35c72844..ad35615a0 100644
--- a/cli/tools/fmt.rs
+++ b/cli/tools/fmt.rs
@@ -19,10 +19,10 @@ use crate::util::diff::diff;
use crate::util::file_watcher;
use crate::util::fs::canonicalize_path;
use crate::util::fs::FileCollector;
-use crate::util::glob::FilePatterns;
use crate::util::path::get_extension;
use crate::util::text_encoding;
use deno_ast::ParsedSource;
+use deno_config::glob::FilePatterns;
use deno_core::anyhow::anyhow;
use deno_core::anyhow::bail;
use deno_core::anyhow::Context;
diff --git a/cli/tools/lint.rs b/cli/tools/lint.rs
index 52890ae24..20fd12ce2 100644
--- a/cli/tools/lint.rs
+++ b/cli/tools/lint.rs
@@ -13,10 +13,10 @@ use crate::tools::fmt::run_parallelized;
use crate::util::file_watcher;
use crate::util::fs::canonicalize_path;
use crate::util::fs::FileCollector;
-use crate::util::glob::FilePatterns;
use crate::util::path::is_script_ext;
use crate::util::sync::AtomicFlag;
use deno_ast::MediaType;
+use deno_config::glob::FilePatterns;
use deno_core::anyhow::bail;
use deno_core::error::generic_error;
use deno_core::error::AnyError;
diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs
index d635ccf55..20a1d70ae 100644
--- a/cli/tools/registry/mod.rs
+++ b/cli/tools/registry/mod.rs
@@ -36,7 +36,6 @@ use crate::tools::registry::graph::resolve_config_file_roots_from_exports;
use crate::tools::registry::graph::surface_fast_check_type_graph_errors;
use crate::tools::registry::graph::MemberRoots;
use crate::util::display::human_size;
-use crate::util::glob::PathOrPatternSet;
use crate::util::import_map::ImportMapUnfurler;
mod api;
@@ -127,10 +126,9 @@ async fn prepare_publish(
let Some((scope, package_name)) = name.split_once('/') else {
bail!("Invalid package name, use '@<scope_name>/<package_name> format");
};
- let exclude_patterns = deno_json.to_files_config().and_then(|files| {
- PathOrPatternSet::from_absolute_paths(files.unwrap_or_default().exclude)
- .context("Invalid config file exclude pattern.")
- })?;
+ let exclude_patterns = deno_json
+ .to_files_config()
+ .map(|files| files.unwrap_or_default().exclude)?;
let tarball = deno_core::unsync::spawn_blocking(move || {
let unfurler = ImportMapUnfurler::new(&import_map);
diff --git a/cli/tools/registry/tar.rs b/cli/tools/registry/tar.rs
index 218e4f67e..6eaaf1095 100644
--- a/cli/tools/registry/tar.rs
+++ b/cli/tools/registry/tar.rs
@@ -12,8 +12,8 @@ use std::path::Path;
use std::path::PathBuf;
use tar::Header;
-use crate::util::glob::PathOrPatternSet;
use crate::util::import_map::ImportMapUnfurler;
+use deno_config::glob::PathOrPatternSet;
#[derive(Debug, Clone, PartialEq)]
pub struct PublishableTarballFile {
diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs
index 2c226db4d..d1dc76028 100644
--- a/cli/tools/test/mod.rs
+++ b/cli/tools/test/mod.rs
@@ -16,8 +16,6 @@ use crate::module_loader::ModuleLoadPreparer;
use crate::ops;
use crate::util::file_watcher;
use crate::util::fs::collect_specifiers;
-use crate::util::glob::FilePatterns;
-use crate::util::glob::PathOrPattern;
use crate::util::path::get_extension;
use crate::util::path::is_script_ext;
use crate::util::path::mapped_specifier_for_tsc;
@@ -26,6 +24,8 @@ use crate::worker::CliMainWorkerFactory;
use deno_ast::swc::common::comments::CommentKind;
use deno_ast::MediaType;
use deno_ast::SourceRangedForSpanned;
+use deno_config::glob::FilePatterns;
+use deno_config::glob::PathOrPattern;
use deno_core::anyhow;
use deno_core::anyhow::bail;
use deno_core::anyhow::Context as _;
@@ -1065,6 +1065,7 @@ fn is_supported_test_path_predicate(
.map(|p| {
p.inner().iter().any(|p| match p {
PathOrPattern::Path(p) => p == path,
+ PathOrPattern::RemoteUrl(_) => true,
PathOrPattern::Pattern(p) => p.matches_path(path),
})
})