source: frontend/node_modules/@bcoe/v8-coverage/src/lib/clone.ts

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.7 KB
RevLine 
[9af201e]1import { FunctionCov, ProcessCov, RangeCov, ScriptCov } from "./types";
2
3/**
4 * Creates a deep copy of a process coverage.
5 *
6 * @param processCov Process coverage to clone.
7 * @return Cloned process coverage.
8 */
9export function cloneProcessCov(processCov: Readonly<ProcessCov>): ProcessCov {
10 const result: ScriptCov[] = [];
11 for (const scriptCov of processCov.result) {
12 result.push(cloneScriptCov(scriptCov));
13 }
14
15 return {
16 result,
17 };
18}
19
20/**
21 * Creates a deep copy of a script coverage.
22 *
23 * @param scriptCov Script coverage to clone.
24 * @return Cloned script coverage.
25 */
26export function cloneScriptCov(scriptCov: Readonly<ScriptCov>): ScriptCov {
27 const functions: FunctionCov[] = [];
28 for (const functionCov of scriptCov.functions) {
29 functions.push(cloneFunctionCov(functionCov));
30 }
31
32 return {
33 scriptId: scriptCov.scriptId,
34 url: scriptCov.url,
35 functions,
36 };
37}
38
39/**
40 * Creates a deep copy of a function coverage.
41 *
42 * @param functionCov Function coverage to clone.
43 * @return Cloned function coverage.
44 */
45export function cloneFunctionCov(functionCov: Readonly<FunctionCov>): FunctionCov {
46 const ranges: RangeCov[] = [];
47 for (const rangeCov of functionCov.ranges) {
48 ranges.push(cloneRangeCov(rangeCov));
49 }
50
51 return {
52 functionName: functionCov.functionName,
53 ranges,
54 isBlockCoverage: functionCov.isBlockCoverage,
55 };
56}
57
58/**
59 * Creates a deep copy of a function coverage.
60 *
61 * @param rangeCov Range coverage to clone.
62 * @return Cloned range coverage.
63 */
64export function cloneRangeCov(rangeCov: Readonly<RangeCov>): RangeCov {
65 return {
66 startOffset: rangeCov.startOffset,
67 endOffset: rangeCov.endOffset,
68 count: rangeCov.count,
69 };
70}
Note: See TracBrowser for help on using the repository browser.