76 lines
1.5 KiB
Plaintext
76 lines
1.5 KiB
Plaintext
/**
|
|
* Creates a deep copy of a process coverage.
|
|
*
|
|
* @param processCov Process coverage to clone.
|
|
* @return Cloned process coverage.
|
|
*/
|
|
function cloneProcessCov(processCov) {
|
|
const result = [];
|
|
for (const scriptCov of processCov.result) {
|
|
result.push(cloneScriptCov(scriptCov));
|
|
}
|
|
|
|
return {
|
|
result,
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Creates a deep copy of a script coverage.
|
|
*
|
|
* @param scriptCov Script coverage to clone.
|
|
* @return Cloned script coverage.
|
|
*/
|
|
function cloneScriptCov(scriptCov) {
|
|
const functions = [];
|
|
for (const functionCov of scriptCov.functions) {
|
|
functions.push(cloneFunctionCov(functionCov));
|
|
}
|
|
|
|
return {
|
|
scriptId: scriptCov.scriptId,
|
|
url: scriptCov.url,
|
|
functions,
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Creates a deep copy of a function coverage.
|
|
*
|
|
* @param functionCov Function coverage to clone.
|
|
* @return Cloned function coverage.
|
|
*/
|
|
function cloneFunctionCov(functionCov) {
|
|
const ranges = [];
|
|
for (const rangeCov of functionCov.ranges) {
|
|
ranges.push(cloneRangeCov(rangeCov));
|
|
}
|
|
|
|
return {
|
|
functionName: functionCov.functionName,
|
|
ranges,
|
|
isBlockCoverage: functionCov.isBlockCoverage,
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Creates a deep copy of a function coverage.
|
|
*
|
|
* @param rangeCov Range coverage to clone.
|
|
* @return Cloned range coverage.
|
|
*/
|
|
function cloneRangeCov(rangeCov) {
|
|
return {
|
|
startOffset: rangeCov.startOffset,
|
|
endOffset: rangeCov.endOffset,
|
|
count: rangeCov.count,
|
|
};
|
|
}
|
|
|
|
module.exports = {
|
|
cloneProcessCov,
|
|
cloneScriptCov,
|
|
cloneFunctionCov,
|
|
cloneRangeCov,
|
|
};
|