diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-07-19 11:58:18 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-19 11:58:18 -0400 |
commit | 0ab262b901348e9251262a02bef17d14ed13b997 (patch) | |
tree | fc5a6e3926ea7480714cbc844098eca6c43c1ab5 /cli/tools/coverage/mod.rs | |
parent | e99d64acedb6e111d33f53599da494865978f1aa (diff) |
feat: emit files on demand and fix racy emit (#15220)
Diffstat (limited to 'cli/tools/coverage/mod.rs')
-rw-r--r-- | cli/tools/coverage/mod.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index d2c6c1894..1ff7f2bc2 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -2,10 +2,11 @@ use crate::args::CoverageFlags; use crate::args::Flags; -use crate::cache::EmitCache; use crate::colors; +use crate::emit::get_source_hash; use crate::fs_util::collect_files; use crate::proc_state::ProcState; +use crate::text_encoding::source_map_from_code; use crate::tools::fmt::format_json; use deno_ast::MediaType; @@ -17,7 +18,6 @@ use deno_core::serde_json; use deno_core::sourcemap::SourceMap; use deno_core::url::Url; use deno_core::LocalInspectorSession; -use deno_core::SourceMapGetter; use regex::Regex; use std::fs; use std::fs::File; @@ -665,7 +665,8 @@ pub async fn cover_files( })?; // Check if file was transpiled - let transpiled_source = match file.media_type { + let original_source = &file.source; + let transpiled_code = match file.media_type { MediaType::JavaScript | MediaType::Unknown | MediaType::Cjs @@ -677,8 +678,10 @@ pub async fn cover_files( | MediaType::Mts | MediaType::Cts | MediaType::Tsx => { - match ps.dir.gen_cache.get_emit_text(&file.specifier) { - Some(source) => source, + let source_hash = + get_source_hash(original_source, ps.emit_options_hash); + match ps.emit_cache.get_emit_code(&file.specifier, source_hash) { + Some(code) => code, None => { return Err(anyhow!( "Missing transpiled source code for: \"{}\". @@ -693,13 +696,10 @@ pub async fn cover_files( } }; - let original_source = &file.source; - let maybe_source_map = ps.get_source_map(&script_coverage.url); - let coverage_report = generate_coverage_report( &script_coverage, - &transpiled_source, - &maybe_source_map, + &transpiled_code, + &source_map_from_code(&transpiled_code), &out_mode, ); |