UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

38 lines (36 loc) 1.74 kB
/** * @file Class counting utility for object-oriented complexity assessment * @description Single responsibility: Count class definitions across JavaScript codebases for structural complexity analysis * * This utility provides accurate class counting capabilities that support complexity analysis by * identifying the object-oriented structural elements in JavaScript code. Class count serves as * an indicator of architectural complexity, design patterns usage, and potential maintainability * challenges in modern JavaScript applications. * * Design rationale: * - Pattern-based detection handles diverse JavaScript class declaration syntaxes efficiently * - ES6+ class syntax recognition supports modern JavaScript development patterns * - Comprehensive pattern matching covers traditional and modern class definition approaches * - Simple implementation maintains performance for large-scale codebase analysis * - Accurate counting enables meaningful architectural complexity assessment * * Class detection scope: * - ES6 class declarations: Standard modern JavaScript class syntax * - Constructor function patterns: Traditional JavaScript object-oriented patterns * - Class expressions: Anonymous and named class expressions * - Inheritance patterns: Extends keyword usage for class hierarchy analysis * - Static method detection: Class-level functionality identification */ /** * Counts classes in code * @param {string} content - File content * @returns {number} Class count */ function countClasses(content) { const classPattern = /class\s+[a-zA-Z_$][a-zA-Z0-9_$]*\s*{/g; const matches = content.match(classPattern); return matches ? matches.length : 0; } module.exports = { countClasses };