diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-10-03 19:05:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-03 19:05:06 -0400 |
commit | 8c1677ecbcbb474fc6a5ac9b5f73b562677bb829 (patch) | |
tree | 885a45a67e6aed7dc70307df718b176a729c8655 /cli/tools/coverage/mod.rs | |
parent | 494822175fd69f8c20a2e21ddcedcb3287064cce (diff) |
refactor(npm): break up `NpmModuleLoader` and move more methods into the managed `CliNpmResolver` (#20777)
Part of https://github.com/denoland/deno/issues/18967
Diffstat (limited to 'cli/tools/coverage/mod.rs')
-rw-r--r-- | cli/tools/coverage/mod.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index 2b8e67c82..23aef89fb 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -5,6 +5,7 @@ use crate::args::FileFlags; use crate::args::Flags; use crate::colors; use crate::factory::CliFactory; +use crate::npm::CliNpmResolver; use crate::tools::fmt::format_json; use crate::tools::test::is_supported_test_path; use crate::util::fs::FileCollector; @@ -601,7 +602,7 @@ fn filter_coverages( coverages: Vec<ScriptCoverage>, include: Vec<String>, exclude: Vec<String>, - npm_root_dir: &str, + npm_resolver: &dyn CliNpmResolver, ) -> Vec<ScriptCoverage> { let include: Vec<Regex> = include.iter().map(|e| Regex::new(e).unwrap()).collect(); @@ -613,11 +614,14 @@ fn filter_coverages( .into_iter() .filter(|e| { let is_internal = e.url.starts_with("ext:") - || e.url.starts_with(npm_root_dir) || e.url.ends_with("__anonymous__") || e.url.ends_with("$deno$test.js") || e.url.ends_with(".snap") - || is_supported_test_path(Path::new(e.url.as_str())); + || is_supported_test_path(Path::new(e.url.as_str())) + || Url::parse(&e.url) + .ok() + .map(|url| npm_resolver.in_npm_package(&url)) + .unwrap_or(false); let is_included = include.iter().any(|p| p.is_match(&e.url)); let is_excluded = exclude.iter().any(|p| p.is_match(&e.url)); @@ -636,7 +640,7 @@ pub async fn cover_files( } let factory = CliFactory::from_flags(flags).await?; - let root_dir_url = factory.npm_resolver().await?.root_dir_url(); + let npm_resolver = factory.npm_resolver().await?; let file_fetcher = factory.file_fetcher()?; let cli_options = factory.cli_options(); let emitter = factory.emitter()?; @@ -646,7 +650,7 @@ pub async fn cover_files( script_coverages, coverage_flags.include, coverage_flags.exclude, - root_dir_url.as_str(), + npm_resolver.as_ref(), ); let proc_coverages: Vec<_> = script_coverages |