agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
51 lines (45 loc) ⢠1.88 kB
JavaScript
/**
* @file Format detailed technical debt analysis
* @description Single responsibility: Detailed debt analysis output formatting
*/
const path = require('path');
/**
* Output detailed technical debt analysis
* @param {Object} analysis - Debt analysis results
*/
function formatComplexityDetailedDebt(analysis) {
console.log('\nšø TECHNICAL DEBT ANALYSIS\n');
console.log('=' .repeat(50));
console.log(`š Debt Score: ${analysis.debtScore}/100 (${analysis.priority} priority)`);
console.log(`š Debt Category: ${analysis.category}`);
console.log(`š Issues Found: ${analysis.issues.length}\n`);
if (analysis.todoItems.length > 0) {
console.log(`š TODO Items: ${analysis.todoItems.length}`);
const highPriorityTodos = analysis.todoItems.filter(todo => todo.priority === 'HIGH');
if (highPriorityTodos.length > 0) {
console.log(' High Priority TODOs:');
highPriorityTodos.forEach(item => {
console.log(` - ${item.type} in ${path.basename(item.file)}:${item.line}`);
console.log(` ${item.description}`);
});
}
console.log();
}
if (analysis.codeSmells.length > 0) {
console.log(`š Code Smells: ${analysis.codeSmells.length}`);
for (const smell of analysis.codeSmells) {
console.log(` - ${smell.type} in ${path.basename(smell.file)} (${smell.count} occurrences, ${smell.severity})`);
}
console.log();
}
if (analysis.recommendations.length > 0) {
console.log('š” Debt Recommendations:');
for (let index = 0; index < analysis.recommendations.length; index++) {
const rec = analysis.recommendations[index];
console.log(` ${index + 1}. [${rec.priority}] ${rec.type}`);
console.log(` ${rec.description}`);
console.log(` Action: ${rec.action}\n`);
}
}
}
module.exports = formatComplexityDetailedDebt;