UNPKG

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
/** * @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;