UNPKG

agentsqripts

Version:

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

35 lines (30 loc) 1.11 kB
/** * @file Calculate duplication impact score * @description Single responsibility: Calculate the impact of code duplication */ /** * Calculate duplication impact score */ function calculateDuplicationImpact(blocks) { const totalLines = blocks.reduce((sum, b) => sum + b.lineCount, 0); const totalComplexity = blocks.reduce((sum, b) => sum + b.complexity, 0); const filesAffected = new Set(blocks.map(b => b.file)).size; // Calculate potential savings const avgLines = totalLines / blocks.length; const potentialLinesSaved = (blocks.length - 1) * avgLines; // Impact score considers multiple factors const score = ( potentialLinesSaved * 1.0 + // Lines saved totalComplexity * 0.5 + // Complexity filesAffected * 10 + // Cross-file impact blocks.length * 5 // Number of duplicates ); return { score: Math.round(score), linesSaved: Math.round(potentialLinesSaved), filesAffected, occurrences: blocks.length, complexity: totalComplexity }; } module.exports = calculateDuplicationImpact;