UNPKG

sca-tool

Version:

Universal static code analysis tool for calculating API operation costs across multiple frameworks (NestJS, Express, Fastify)

84 lines 3.01 kB
import { AnalyzerConfig, FileAnalysis, ProjectAnalysis } from './types'; /** * Main API Cost Analyzer class */ export declare class ApiCostAnalyzer { private config; private allPaths; private currentConditions; private sourceFile; constructor(config?: Partial<AnalyzerConfig>); /** * Load configuration from file with fallbacks */ static loadConfigFromFile(configPath?: string): AnalyzerConfig; /** * Create analyzer with config loaded from file */ static fromConfigFile(configPath?: string): ApiCostAnalyzer; /** * Set framework preset */ setFramework(framework: string): void; /** * Update configuration */ updateConfig(config: Partial<AnalyzerConfig>): void; /** * Analyze a single TypeScript/JavaScript file for API operation costs * @param filePath Path to the file to analyze * @returns File analysis results including methods, execution paths, and cost calculations */ analyzeFile(filePath: string): FileAnalysis; /** * Analyze multiple files */ analyzeFiles(filePaths: string[]): FileAnalysis[]; /** * Analyze entire project */ /** * Analyze an entire project directory * @param projectPath Path to the project directory * @param patterns Glob patterns to match files (default: TypeScript and JavaScript files) * @returns Project analysis results */ analyzeProject(projectPath: string, patterns?: string[]): ProjectAnalysis; private generatePathDescription; private generateMethodSummary; private analyzeMethod; private analyzeNode; private analyzeAwaitStatement; private analyzeVariableStatement; private analyzeCallExpression; private extractOperationName; private isPartOfMethodChain; private extractOperationFromStatement; private extractParallelOperations; private generateRecommendations; private generateFileSummary; private generateProjectSummary; private visit; private isMethodDeclaration; /** * Check if a node is an arrow function property (common in modern NestJS services) * Handles both class property declarations and object literal assignments */ private isArrowFunctionProperty; private getMethodName; private getClassName; private shouldAnalyzeMethod; } /** * Convenience function to quickly analyze a file with NestJS preset */ export declare function analyzeNestJSFile(filePath: string, customConfig?: Partial<AnalyzerConfig>): FileAnalysis; /** * Convenience function to quickly analyze a NestJS project */ export declare function analyzeNestJSProject(projectPath: string, patterns?: string[], customConfig?: Partial<AnalyzerConfig>): ProjectAnalysis; /** * Convenience function for Express projects */ export declare function analyzeExpressProject(projectPath: string, patterns?: string[], customConfig?: Partial<AnalyzerConfig>): ProjectAnalysis; //# sourceMappingURL=analyzer.d.ts.map