userpravah
Version:
UserPravah is an extensible, framework-agnostic tool for analyzing user flows and navigation patterns in web applications. It supports multiple frameworks (Angular, React) and output formats (DOT/Graphviz, JSON) with a plugin-based architecture for easy e
74 lines (73 loc) • 2.58 kB
TypeScript
import { IFrameworkAnalyzer } from "../../core/framework-analyzer.interface.js";
import { ProjectAnalysisOptions, AnalysisResult } from "../../core/types.js";
export declare class ReactAnalyzer implements IFrameworkAnalyzer {
private project;
private routes;
private flows;
private menus;
private projectPath;
private processedComponents;
private componentToFileMap;
private fileToComponentMap;
private routeComponents;
getFrameworkName(): string;
canAnalyze(projectPath: string): Promise<boolean>;
getSupportedExtensions(): string[];
getConfigFilePatterns(): string[];
analyze(options: ProjectAnalysisOptions): Promise<AnalysisResult>;
private addSourceFiles;
private buildComponentMap;
private extractComponentsFromFile;
private isComponentName;
private detectRoutingLibrary;
private analyzeReactRouterRouting;
private extractReactRouterRoutes;
private extractReactRouterConfigRoutes;
private getJsxTagName;
private extractRouteInfo;
private getJsxAttributes;
private extractAttributeValue;
private extractJsxElementComponent;
private extractNestedRoutes;
private isRouteConfigArray;
private processRouteConfigArray;
private processRouteConfigObject;
private extractStringValue;
private extractComponentFromInitializer;
private getComponentNameFromPath;
private kebabToPascalCase;
private buildFullPath;
private addRoute;
private analyzeNextJsRouting;
private analyzeNextJsPagesRouter;
private analyzeNextJsAppRouter;
private nextJsFileToRoute;
private nextJsAppDirToRoute;
private getComponentNameFromFile;
private analyzeGatsbyRouting;
private gatsbyFileToRoute;
private analyzeRemixRouting;
private remixFileToRoute;
private analyzeTanstackRouting;
private processTanstackRoute;
private analyzeReachRouterRouting;
private analyzeGenericReactPatterns;
private analyzeSwitchRouting;
private analyzeConditionalRouting;
private analyzeRouteConfigurations;
private analyzeNavigationFlows;
private extractProgrammaticNavigation;
private extractLinkNavigation;
private extractAnchorNavigation;
private extractPathFromTemplate;
private getMainComponentFromFile;
private analyzeMenuStructures;
private extractMenuFromFile;
private isMenuArray;
private isMenuObject;
private processMenuArray;
private extractMenuFromObject;
private extractMenuChildren;
private extractStringArray;
private addHierarchicalFlows;
}