agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
34 lines (29 loc) • 1.03 kB
JavaScript
/**
* @file Extract function complexity from AST
* @description Single responsibility: Extract function definitions and their complexity from AST
*/
const { walk } = require('../../ast/astParser');
const analyzeFunctionComplexity = require('./analyzeFunctionComplexity');
/**
* Extract function complexity information from AST
*/
function extractFunctionComplexity(ast, filePath, content) {
const functions = [];
const lines = content.split('\n');
walk.simple(ast, {
FunctionDeclaration(node) {
const funcInfo = analyzeFunctionComplexity(node, lines, filePath);
if (funcInfo) functions.push(funcInfo);
},
FunctionExpression(node) {
const funcInfo = analyzeFunctionComplexity(node, lines, filePath);
if (funcInfo) functions.push(funcInfo);
},
ArrowFunctionExpression(node) {
const funcInfo = analyzeFunctionComplexity(node, lines, filePath);
if (funcInfo) functions.push(funcInfo);
}
});
return functions;
}
module.exports = extractFunctionComplexity;