summaryrefslogtreecommitdiff
path: root/cli/tools/coverage/mod.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-05-01 14:35:23 -0400
committerGitHub <noreply@github.com>2023-05-01 14:35:23 -0400
commit9efed4c7a3d32de62e9c9b5e0c6712ce97637abb (patch)
treeaa370f95df93c71f6c57d6a01a50b4df1955ee57 /cli/tools/coverage/mod.rs
parent30628288ce2b411ca3def46129a4606073e16bac (diff)
refactor(cli): remove ProcState - add CliFactory (#18900)
This removes `ProcState` and replaces it with a new `CliFactory` which initializes our "service structs" on demand. This isn't a performance improvement at the moment for `deno run`, but might unlock performance improvements in the future.
Diffstat (limited to 'cli/tools/coverage/mod.rs')
-rw-r--r--cli/tools/coverage/mod.rs17
1 files changed, 10 insertions, 7 deletions
diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs
index d3044a716..223bac316 100644
--- a/cli/tools/coverage/mod.rs
+++ b/cli/tools/coverage/mod.rs
@@ -4,7 +4,7 @@ use crate::args::CoverageFlags;
use crate::args::FileFlags;
use crate::args::Flags;
use crate::colors;
-use crate::proc_state::ProcState;
+use crate::factory::CliFactory;
use crate::tools::fmt::format_json;
use crate::tools::test::is_supported_test_path;
use crate::util::fs::FileCollector;
@@ -623,8 +623,11 @@ pub async fn cover_files(
return Err(generic_error("No matching coverage profiles found"));
}
- let ps = ProcState::from_flags(flags).await?;
- let root_dir_url = ps.npm_resolver.root_dir_url();
+ let factory = CliFactory::from_flags(flags).await?;
+ let root_dir_url = factory.npm_resolver().await?.root_dir_url();
+ let file_fetcher = factory.file_fetcher()?;
+ let cli_options = factory.cli_options();
+ let emitter = factory.emitter()?;
let script_coverages = collect_coverages(coverage_flags.files)?;
let script_coverages = filter_coverages(
@@ -667,13 +670,13 @@ pub async fn cover_files(
for script_coverage in script_coverages {
let module_specifier = deno_core::resolve_url_or_path(
&script_coverage.url,
- ps.options.initial_cwd(),
+ cli_options.initial_cwd(),
)?;
let maybe_file = if module_specifier.scheme() == "file" {
- ps.file_fetcher.get_source(&module_specifier)
+ file_fetcher.get_source(&module_specifier)
} else {
- ps.file_fetcher
+ file_fetcher
.fetch_cached(&module_specifier, 10)
.with_context(|| {
format!("Failed to fetch \"{module_specifier}\" from cache.")
@@ -700,7 +703,7 @@ pub async fn cover_files(
| MediaType::Mts
| MediaType::Cts
| MediaType::Tsx => {
- match ps.emitter.maybed_cached_emit(&file.specifier, &file.source) {
+ match emitter.maybed_cached_emit(&file.specifier, &file.source) {
Some(code) => code.into(),
None => {
return Err(anyhow!(