1 | import { mergeProcessCovs, ProcessCov } from "@c88/v8-coverage";
|
2 | import { RichProcessCov, ScriptMeta } from "./spawn-inspected";
|
3 |
|
4 | export 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 |
|
16 | export 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 | }
|