UNPKG

apex-code-coverage-transformer

Version:

Transform Salesforce Apex code coverage JSONs into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.

63 lines 2.05 kB
'use strict'; function isObject(val) { return typeof val === 'object' && val !== null; } function isValidPosition(pos) { return isObject(pos) && typeof pos.line === 'number' && typeof pos.column === 'number'; } function isValidStatementMap(statementMap) { if (!isObject(statementMap)) return false; return Object.values(statementMap).every((statement) => { if (!isObject(statement)) return false; const { start, end } = statement; return isValidPosition(start) && isValidPosition(end); }); } function isValidDeployItem(item) { if (!isObject(item)) return false; const { path, fnMap, branchMap, f, b, s, statementMap } = item; const checks = [ typeof path === 'string', isObject(fnMap), isObject(branchMap), isObject(f), isObject(b), isObject(s), isValidStatementMap(statementMap), ]; return checks.every(Boolean); } function isDeployCoverageData(data) { if (!isObject(data)) return false; return Object.entries(data).every(([, item]) => isValidDeployItem(item)); } function isSingleTestCoverageData(data) { if (!isObject(data)) return false; const { id, name, totalLines, lines, totalCovered, coveredPercent } = data; const checks = [ typeof id === 'string', typeof name === 'string', typeof totalLines === 'number', typeof totalCovered === 'number', typeof coveredPercent === 'number', isObject(lines), isObject(lines) && Object.values(lines).every((line) => typeof line === 'number'), ]; return checks.every(Boolean); } function isTestCoverageDataArray(data) { return Array.isArray(data) && data.every(isSingleTestCoverageData); } export function checkCoverageDataType(data) { if (isDeployCoverageData(data)) return 'DeployCoverageData'; if (isTestCoverageDataArray(data)) return 'TestCoverageData'; return 'Unknown'; } //# sourceMappingURL=setCoverageDataType.js.map