agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
33 lines (27 loc) • 935 B
JavaScript
/**
* @file Group complexity calculation
* @description Responsible for calculating complexity scores for duplicate groups
*/
/**
* Calculate complexity score for a duplicate group
* @param {Object} group - Duplicate group
* @returns {number} Complexity score
*/
function calculateGroupComplexity(group) {
// Simple complexity calculation based on:
// - Number of lines
// - Presence of control structures
// - Number of variables/functions
const avgLines = group.blocks.reduce((sum, block) =>
sum + block.lines.length, 0) / group.blocks.length;
const controlStructures = group.blocks[0].content.match(
/(if|for|while|switch|try|catch)/g
)?.length || 0;
const variables = group.blocks[0].content.match(
/(const|let|var|function)/g
)?.length || 0;
return Math.min(100, (avgLines * 2) + (controlStructures * 5) + (variables * 3));
}
module.exports = {
calculateGroupComplexity
};