UNPKG

agentsqripts

Version:

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

59 lines (56 loc) 2.39 kB
/** * @file UI Problems Analysis orchestrator for user experience optimization * @description Single responsibility: Coordinate comprehensive UI/UX issue detection * * This analyzer identifies user interface and user experience issues in frontend code * including ambiguous labels, icon inconsistencies, accessibility problems, and other * UI patterns that could negatively impact user experience and usability. * * Design rationale: * - Unified interface handles both file-level and project-level analysis * - Specialized detectors focus on specific UI problem categories * - Modular architecture enables adding new UI pattern detectors * - Consistent analysis results enable integration with development workflows */ const fs = require('fs'); const path = require('path'); const { analyzeFileUIProblems } = require('./uiFileAnalyzer'); const { analyzeProjectUIProblems } = require('./uiProjectAnalyzer'); const { detectAmbiguousLabels } = require('./ambiguousLabelDetector'); const { detectIconInconsistencies } = require('./inconsistentIconDetector'); /** * Analyze UI problems with automatic file vs project detection * * Technical function: Routes analysis to appropriate analyzer based on target type * * Implementation rationale: * - Automatic detection provides convenient unified interface * - fs.promises.stat check determines file vs directory without blocking * - Delegation pattern enables specialized analysis for different scopes * - Consistent return format regardless of analysis scope * * Analysis routing strategy: * - Directory targets trigger comprehensive project-wide analysis * - File targets enable focused analysis for specific components * - Options parameter allows customization of detection sensitivity * - Error handling maintains robustness for invalid paths * * @param {string} target - File or directory path * @param {Object} options - Analysis options * @returns {Promise<Object>} UI problem analysis results */ async function analyzeUIProblems(target, options = {}) { const stats = await fs.promises.stat(target); if (stats.isDirectory()) { return analyzeProjectUIProblems(target, options); } else { return analyzeFileUIProblems(target, options); } } module.exports = { analyzeUIProblems, analyzeFileUIProblems, analyzeProjectUIProblems, detectAmbiguousLabels, detectIconInconsistencies };