agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
40 lines (33 loc) • 1.3 kB
JavaScript
/**
* @file Generate parameterized function recommendation
* @description Single responsibility: Create recommendation for parameterizing functions
*/
const analyzeDifferences = require('./analyzeDifferences');
const inferRequiredParameters = require('./inferRequiredParameters');
function generateParameterizedFunctionRecommendation(group, projectContext) {
const { blocks } = group;
const differences = analyzeDifferences(blocks);
const parameters = inferRequiredParameters(blocks, differences);
return {
type: 'PARAMETERIZE_FUNCTION',
title: 'Create parameterized function',
description: `${blocks.length} similar functions can be consolidated with parameters`,
impact: {
linesReduced: blocks.reduce((sum, b) => sum + (b.endLine - b.startLine), 0) * 0.7,
filesAffected: new Set(blocks.map(b => b.file)).size,
maintainability: 'HIGH',
effort: 'LOW'
},
implementation: {
suggestedParameters: parameters,
description: 'Replace hardcoded values with parameters'
},
benefits: [
'Flexible, reusable function',
'Reduced duplication',
'Easier to test with different inputs',
'Single point of maintenance'
]
};
}
module.exports = generateParameterizedFunctionRecommendation;