diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-01-15 19:15:39 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-15 19:15:39 -0500 |
commit | 4e72ca313a8fa1d826783bdc5657937da97d590c (patch) | |
tree | 254bb4074df8a8dfe42200bc0e613b7e082651f3 /cli/tools | |
parent | 3ff80eb1521c49a43e0fae53840e5a636571ebfe (diff) |
refactor: use globbing from deno_config (#21925)
Diffstat (limited to 'cli/tools')
-rw-r--r-- | cli/tools/bench/mod.rs | 5 | ||||
-rw-r--r-- | cli/tools/bundle.rs | 3 | ||||
-rw-r--r-- | cli/tools/coverage/mod.rs | 31 | ||||
-rw-r--r-- | cli/tools/doc.rs | 23 | ||||
-rw-r--r-- | cli/tools/fmt.rs | 2 | ||||
-rw-r--r-- | cli/tools/lint.rs | 2 | ||||
-rw-r--r-- | cli/tools/registry/mod.rs | 8 | ||||
-rw-r--r-- | cli/tools/registry/tar.rs | 2 | ||||
-rw-r--r-- | cli/tools/test/mod.rs | 5 |
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), }) }) |