summaryrefslogtreecommitdiff
path: root/cli/tools/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/coverage')
-rw-r--r--cli/tools/coverage/mod.rs24
1 files changed, 13 insertions, 11 deletions
diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs
index eaa087171..9fead6e37 100644
--- a/cli/tools/coverage/mod.rs
+++ b/cli/tools/coverage/mod.rs
@@ -20,6 +20,7 @@ use deno_core::serde_json;
use deno_core::sourcemap::SourceMap;
use deno_core::url::Url;
use deno_core::LocalInspectorSession;
+use deno_core::ModuleCode;
use regex::Regex;
use std::fs;
use std::fs::File;
@@ -170,16 +171,16 @@ struct CoverageReport {
fn generate_coverage_report(
script_coverage: &ScriptCoverage,
- script_source: &str,
+ script_source: String,
maybe_source_map: &Option<Vec<u8>>,
output: &Option<PathBuf>,
) -> CoverageReport {
let maybe_source_map = maybe_source_map
.as_ref()
.map(|source_map| SourceMap::from_slice(source_map).unwrap());
- let text_lines = TextLines::new(script_source);
+ let text_lines = TextLines::new(&script_source);
- let comment_ranges = deno_ast::lex(script_source, MediaType::JavaScript)
+ let comment_ranges = deno_ast::lex(&script_source, MediaType::JavaScript)
.into_iter()
.filter(|item| {
matches!(item.inner, deno_ast::TokenOrComment::Comment { .. })
@@ -680,14 +681,14 @@ pub async fn cover_files(
})?;
// Check if file was transpiled
- let original_source = &file.source;
- let transpiled_code = match file.media_type {
+ let original_source = file.source.clone();
+ let transpiled_code: ModuleCode = match file.media_type {
MediaType::JavaScript
| MediaType::Unknown
| MediaType::Cjs
| MediaType::Mjs
- | MediaType::Json => file.source.as_ref().to_string(),
- MediaType::Dts | MediaType::Dmts | MediaType::Dcts => "".to_string(),
+ | MediaType::Json => file.source.into(),
+ MediaType::Dts | MediaType::Dmts | MediaType::Dcts => Default::default(),
MediaType::TypeScript
| MediaType::Jsx
| MediaType::Mts
@@ -695,7 +696,7 @@ pub async fn cover_files(
| MediaType::Tsx => {
let source_hash = get_source_hash(&file.source, ps.emit_options_hash);
match ps.emit_cache.get_emit_code(&file.specifier, source_hash) {
- Some(code) => code,
+ Some(code) => code.into(),
None => {
return Err(anyhow!(
"Missing transpiled source code for: \"{}\".
@@ -710,15 +711,16 @@ pub async fn cover_files(
}
};
+ let source_map = source_map_from_code(&transpiled_code);
let coverage_report = generate_coverage_report(
&script_coverage,
- &transpiled_code,
- &source_map_from_code(&transpiled_code),
+ transpiled_code.take_as_string(),
+ &source_map,
&out_mode,
);
if !coverage_report.found_lines.is_empty() {
- reporter.report(&coverage_report, original_source)?;
+ reporter.report(&coverage_report, &original_source)?;
}
}