agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
76 lines (64 loc) โข 3.25 kB
JavaScript
/**
* @file Format complexity analysis summary
* @description Single responsibility: Summary output formatting for complexity analysis
*/
const path = require('path');
/**
* Output complexity analysis summary
* @param {Object} results - Analysis results
* @param {Object} options - Output options
*/
function formatComplexitySummary(results, options) {
console.log('๐ COMPLEXITY ANALYSIS SUMMARY\n');
if (results.fileAnalysis) {
const analysis = results.fileAnalysis;
console.log(`๐ File: ${path.basename(analysis.file)}`);
console.log(`๐ Complexity: ${analysis.complexity}`);
console.log(`๐ Maintainability: ${analysis.maintainabilityIndex}/100`);
console.log(`โ ๏ธ Issues: ${analysis.issues.length}`);
if (analysis.issues.length > 0) {
const highSeverityIssues = analysis.issues.filter(i => i.severity === 'HIGH');
if (highSeverityIssues.length > 0) {
console.log('\n๐จ High Priority Issues:');
highSeverityIssues.forEach(issue => {
console.log(` - ${issue.type}: ${issue.recommendation}`);
});
}
}
}
if (results.projectAnalysis) {
const analysis = results.projectAnalysis;
console.log(`๐ Overall Complexity: ${analysis.overallComplexity}`);
console.log(`๐ Files Analyzed: ${analysis.analyzedFiles}`);
console.log(`๐ Average Maintainability: ${Math.round(analysis.averageMaintainabilityIndex)}/100`);
const problemFiles = analysis.complexityBreakdown.high + analysis.complexityBreakdown.critical;
if (problemFiles > 0) {
console.log(`โ ๏ธ Problem Files: ${problemFiles}`);
}
}
if (results.debtAnalysis) {
const analysis = results.debtAnalysis;
console.log(`๐ธ Technical Debt: ${analysis.priority} (${analysis.debtScore}/100)`);
console.log(`๐ TODO Items: ${analysis.todoItems.length}`);
console.log(`๐ Code Smells: ${analysis.codeSmells.length}`);
console.log(`๐งช Has Tests: ${analysis.testCoverage.hasTests ? 'Yes' : 'No'}`);
}
console.log('\n๐ค AI Agent Guidance:');
if (results.fileAnalysis) {
const complexity = results.fileAnalysis.complexity;
console.log(` - SCOPE: Single file analysis (${complexity} complexity)`);
console.log(` - FOCUS: ${results.fileAnalysis.issues.length > 0 ? 'Function-level refactoring' : 'No issues detected'}`);
}
if (results.projectAnalysis) {
const analysis = results.projectAnalysis;
console.log(` - SCOPE: Project-wide complexity analysis (${analysis.overallComplexity})`);
console.log(` - FILES_AFFECTED: ${analysis.complexityBreakdown.high + analysis.complexityBreakdown.critical} need attention`);
console.log(` - PRIORITY: ${analysis.recommendations.length > 0 ? analysis.recommendations[0].priority : 'LOW'}`);
}
if (results.debtAnalysis && results.debtAnalysis.priority !== 'LOW') {
console.log(` - DEBT_SCOPE: Technical debt cleanup needed (${results.debtAnalysis.priority})`);
console.log(` - DEBT_FOCUS: ${results.debtAnalysis.recommendations[0]?.type || 'General cleanup'}`);
}
console.log(`\nโฑ๏ธ Analysis completed at: ${new Date().toLocaleString()}`);
}
module.exports = formatComplexitySummary;