agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
44 lines (36 loc) • 1.71 kB
JavaScript
/**
* @file Refactoring recommendation generator
* @description Generates recommendations for refactoring improvements
*/
/**
* Generate recommendations for refactoring improvements
* @param {Object} opportunityBreakdown - Breakdown of opportunity types
* @param {Object} priorityBreakdown - Breakdown by priority
* @param {Object} utilityStats - Utility file statistics
* @returns {Array} Array of recommendations
*/
function generateRefactoringRecommendations(opportunityBreakdown, priorityBreakdown, utilityStats) {
const recommendations = [];
if (priorityBreakdown.HIGH > 0) {
recommendations.push(`PRIORITY: Address ${priorityBreakdown.HIGH} high-priority refactoring opportunities`);
}
if (opportunityBreakdown.export_promotion > 0) {
recommendations.push(`Consider promoting ${opportunityBreakdown.export_promotion} utility functions to exports for better reusability`);
}
if (opportunityBreakdown.barrel_file_creation > 0) {
recommendations.push(`Create ${opportunityBreakdown.barrel_file_creation} index files to improve import organization`);
}
if (utilityStats.totalUnexportedItems > 0) {
const exportRatio = utilityStats.totalExportedItems / (utilityStats.totalExportedItems + utilityStats.totalUnexportedItems);
if (exportRatio < 0.5) {
recommendations.push(`Low utility export ratio (${Math.round(exportRatio * 100)}%) - consider exporting more utility functions`);
}
}
if (recommendations.length === 0) {
recommendations.push('Code organization is well-structured - no significant refactoring opportunities detected');
}
return recommendations;
}
module.exports = {
generateRefactoringRecommendations
};