agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
46 lines (39 loc) • 1.44 kB
JavaScript
/**
* @file Duplicate group processor
* @description Responsible for processing duplicate groups to add detailed analysis
*/
const { calculateSimilarity } = require('./similarityCalculator');
const { calculateGroupComplexity } = require('./groupComplexityCalculator');
const { determineDeduplicationOpportunity } = require('./opportunityDeterminer');
const { calculateEstimatedSavings } = require('./groupSavingsCalculator');
/**
* Process duplicate groups to add detailed analysis
* @param {Array} duplicateGroups - Array of duplicate groups
* @param {Object} wetPatterns - WET patterns configuration
* @returns {Array} Processed groups with analysis
*/
function processDuplicateGroups(duplicateGroups, wetPatterns) {
return duplicateGroups.map(group => {
const pattern = wetPatterns[group.type] || wetPatterns['repeated_pattern'];
// Calculate complexity score
const complexityScore = calculateGroupComplexity(group);
// Determine deduplication opportunity
const deduplicationOpportunity = determineDeduplicationOpportunity(
group.similarity,
complexityScore,
group.blocks.length
);
// Estimate savings
const estimatedSavings = calculateEstimatedSavings(group, pattern);
return {
...group,
pattern,
complexityScore,
deduplicationOpportunity,
estimatedSavings
};
});
}
module.exports = {
processDuplicateGroups
};