agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
42 lines (36 loc) • 1.42 kB
JavaScript
/**
* @file Main React pattern analyzer
* @description Single responsibility: Orchestrate React performance pattern analysis
*/
const isReactFile = require('./isReactFile');
const detectRenderOptimization = require('./detectRenderOptimization');
const detectInlineObjectCreation = require('./detectInlineObjectCreation');
const detectUseEffectIssues = require('./detectUseEffectIssues');
const detectStateUpdates = require('./detectStateUpdates');
const detectUnmemoizedCallbacks = require('./detectUnmemoizedCallbacks');
const detectKeyPropIssues = require('./detectKeyPropIssues');
/**
* Analyze React performance patterns
* @param {string} content - File content
* @param {string} filePath - File path
* @returns {Array} React performance issues
*/
function analyzeReactPatterns(content, filePath) {
// Only analyze files that appear to be React components
if (!isReactFile(content)) {
return [];
}
const issues = [];
const lines = content.split('\n');
// Detect various React performance issues
const reactIssues = [
detectRenderOptimization(lines, filePath, content),
detectInlineObjectCreation(lines, filePath),
detectUseEffectIssues(lines, filePath),
detectStateUpdates(lines, filePath),
detectUnmemoizedCallbacks(lines, filePath),
detectKeyPropIssues(lines, filePath)
];
return issues.concat(...reactIssues);
}
module.exports = analyzeReactPatterns;