UNPKG

902 BPlain TextView Raw
1import { mergeProcessCovs, ProcessCov } from "@c88/v8-coverage";
2import { RichProcessCov, ScriptMeta } from "./spawn-inspected";
3
4export function mergeRichProcessCovs(processCovs: ReadonlyArray<RichProcessCov>): RichProcessCov {
5 const urlToMeta: Map<string, ScriptMeta> = createScriptMetaMap(processCovs);
6 const merged: ProcessCov = mergeProcessCovs(processCovs);
7
8 for (const scriptCov of merged.result) {
9 const meta: ScriptMeta = urlToMeta.get(scriptCov.url)!;
10 Object.assign(scriptCov, meta);
11 }
12
13 return merged as RichProcessCov;
14}
15
16export function createScriptMetaMap(processCovs: ReadonlyArray<RichProcessCov>): Map<string, ScriptMeta> {
17 const urlToScriptData: Map<string, ScriptMeta> = new Map();
18 for (const processCov of processCovs) {
19 for (const scriptCov of processCov.result) {
20 urlToScriptData.set(scriptCov.url, scriptCov);
21 }
22 }
23 return urlToScriptData;
24}