agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
39 lines (35 loc) • 1.3 kB
JavaScript
/**
* @file Create a block object from an AST node
* @description Single responsibility: Transform AST node into structured block object
*/
const extractBlockName = require('./extractBlockName');
const normalizeForComparison = require('./normalizeForComparison');
const generateHash = require('./generateHash');
const calculateComplexity = require('./calculateComplexity');
const extractParameters = require('./extractParameters');
const extractDependencies = require('./extractDependencies');
/**
* Create a block object from an AST node
*/
function createBlockFromNode(node, content, type, filePath) {
const startLine = node.loc.start.line;
const endLine = node.loc.end.line;
const blockContent = content.substring(node.range[0], node.range[1]);
const normalizedContent = normalizeForComparison(blockContent, type);
return {
type,
name: extractBlockName(node, type),
file: filePath,
startLine,
endLine,
content: blockContent,
normalizedContent,
hash: generateHash(normalizedContent),
complexity: calculateComplexity(node, blockContent),
lineCount: endLine - startLine + 1,
astNode: node.type,
parameters: extractParameters(node),
dependencies: extractDependencies(node, content)
};
}
module.exports = createBlockFromNode;