UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

45 lines (37 loc) 1.22 kB
/** * @file Calculate project-level metrics * @description Single responsibility: Calculate WET code metrics for entire project */ /** * Calculate project-level metrics */ function calculateProjectMetrics(fileResults, duplicateGroups, allBlocks) { const totalFiles = fileResults.length; const filesWithDuplicates = new Set(); duplicateGroups.forEach(group => { group.blocks.forEach(block => { filesWithDuplicates.add(block.file); }); }); const totalLinesSaved = duplicateGroups.reduce((sum, group) => sum + group.impact.linesSaved, 0 ); const totalComplexity = allBlocks.reduce((sum, block) => sum + block.complexity, 0 ); const duplicateComplexity = duplicateGroups.reduce((sum, group) => sum + group.impact.complexity, 0 ); const wetScore = totalComplexity > 0 ? Math.round((duplicateComplexity / totalComplexity) * 100) : 0; return { filesWithDuplicates: filesWithDuplicates.size, percentFilesWithDuplicates: totalFiles > 0 ? Math.round((filesWithDuplicates.size / totalFiles) * 100) : 0, totalLinesSaved, totalComplexity, duplicateComplexity, wetScore }; } module.exports = calculateProjectMetrics;