agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
27 lines (23 loc) • 753 B
JavaScript
/**
* @file Calculate file-level metrics
* @description Single responsibility: Calculate WET code metrics for a single file
*/
/**
* Calculate file-level metrics
*/
function calculateFileMetrics(content, blocks, duplicateGroups) {
const lines = content.split('\n').length;
const duplicateLines = duplicateGroups.reduce((sum, group) =>
sum + group.blocks.reduce((s, b) => s + b.lineCount, 0), 0
);
const wetScore = lines > 0 ? Math.round((duplicateLines / lines) * 100) : 0;
return {
linesOfCode: lines,
duplicateLines,
duplicateRatio: lines > 0 ? duplicateLines / lines : 0,
wetScore,
blocksAnalyzed: blocks.length,
duplicateGroups: duplicateGroups.length
};
}
module.exports = calculateFileMetrics;