agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
35 lines (30 loc) • 895 B
JavaScript
/**
* @file Identify files with most duplication
* @description Single responsibility: Find top files with duplicate code
*/
/**
* Identify files with most duplication
*/
function identifyTopOffenders(duplicateGroups) {
const fileStats = new Map();
duplicateGroups.forEach(group => {
group.blocks.forEach(block => {
if (!fileStats.has(block.file)) {
fileStats.set(block.file, {
file: block.file,
duplicateBlocks: 0,
totalDuplicateLines: 0,
groups: []
});
}
const stats = fileStats.get(block.file);
stats.duplicateBlocks++;
stats.totalDuplicateLines += block.lineCount;
stats.groups.push(group);
});
});
return Array.from(fileStats.values())
.sort((a, b) => b.totalDuplicateLines - a.totalDuplicateLines)
.slice(0, 10);
}
module.exports = identifyTopOffenders;