Spaces:
Sleeping
Sleeping
import { FunctionCov, ProcessCov, RangeCov, ScriptCov } from "./types"; | |
/** | |
* Creates a deep copy of a process coverage. | |
* | |
* @param processCov Process coverage to clone. | |
* @return Cloned process coverage. | |
*/ | |
export function cloneProcessCov(processCov: Readonly<ProcessCov>): ProcessCov { | |
const result: ScriptCov[] = []; | |
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. | |
*/ | |
export function cloneScriptCov(scriptCov: Readonly<ScriptCov>): ScriptCov { | |
const functions: FunctionCov[] = []; | |
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. | |
*/ | |
export function cloneFunctionCov(functionCov: Readonly<FunctionCov>): FunctionCov { | |
const ranges: RangeCov[] = []; | |
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. | |
*/ | |
export function cloneRangeCov(rangeCov: Readonly<RangeCov>): RangeCov { | |
return { | |
startOffset: rangeCov.startOffset, | |
endOffset: rangeCov.endOffset, | |
count: rangeCov.count, | |
}; | |
} | |