From 8c1677ecbcbb474fc6a5ac9b5f73b562677bb829 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 3 Oct 2023 19:05:06 -0400 Subject: refactor(npm): break up `NpmModuleLoader` and move more methods into the managed `CliNpmResolver` (#20777) Part of https://github.com/denoland/deno/issues/18967 --- cli/tools/coverage/mod.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'cli/tools/coverage/mod.rs') 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, include: Vec, exclude: Vec, - npm_root_dir: &str, + npm_resolver: &dyn CliNpmResolver, ) -> Vec { let include: Vec = 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 -- cgit v1.2.3