UNPKG

code-relation-analyzer

Version:

A TypeScript project dependency analysis tool that generates function-level dependency graphs

197 lines 5.24 kB
/** * 分析结果相关类型定义 */ import { ProjectInfo, FileInfo, DependencyInfo } from './project'; export interface AnalyzeProjectOptions { /** 项目路径 */ projectPath: string; /** 根目录 */ rootDir: string; /** 输出路径 */ outputPath?: string; /** 是否包含node_modules */ includeNodeModules?: boolean; /** 是否包含测试文件 */ includeTests?: boolean; /** 是否包含声明文件 */ includeDeclarations?: boolean; /** 是否使用tsconfig */ useTsConfig?: boolean; /** 最大分析深度 */ maxDepth?: number; /** 文件匹配模式 */ filePatterns?: string[]; /** 排除模式 */ excludePatterns?: string[]; /** 是否生成可视化 */ generateVisualization?: boolean; /** 是否生成报告 */ generateReport?: boolean; /** 缓存配置 */ cache?: CacheOptions; /** 性能配置 */ performance?: PerformanceOptions; } export interface CacheOptions { /** 是否启用缓存 */ enabled: boolean; /** 缓存目录 */ directory?: string; /** 缓存过期时间(毫秒) */ ttl?: number; } export interface PerformanceOptions { /** 最大并发数 */ maxConcurrency?: number; /** 内存限制(MB) */ memoryLimit?: number; /** 超时时间(毫秒) */ timeout?: number; } export interface ProjectAnalysisResult { /** 项目信息 */ projectInfo: ProjectInfo; /** 文件列表 */ files: FileInfo[]; /** 依赖关系 */ dependencies: DependencyInfo[]; /** 全局依赖 */ globalDependencies: DependencyInfo[]; /** 继承关系 */ inheritanceRelations: any[]; /** 函数调用 */ functionCalls: any[]; /** 参数流 */ parameterFlow: any[]; /** 依赖图 */ dependencyGraph: any; /** 函数调用图 */ functionCallGraph: any; /** 继承图 */ inheritanceGraph: any; /** 全局依赖图 */ globalDependencyGraph: any; /** 分析统计 */ statistics: AnalysisStatistics; /** 问题报告 */ issues: AnalysisIssue[]; /** 建议 */ recommendations: Recommendation[]; /** 生成时间 */ generatedAt: Date; } export interface AnalysisStatistics { /** 分析开始时间 */ startTime?: Date; /** 分析结束时间 */ endTime?: Date; /** 分析耗时(毫秒) */ duration?: number; /** 总文件数 */ totalFiles: number; /** 跳过的文件数 */ filesSkipped?: number; /** 发现的问题数 */ issuesFound?: number; /** 峰值内存使用(MB) */ peakMemoryUsage?: number; /** 缓存命中率 */ cacheHitRate?: number; /** 平均复杂度 */ averageComplexity: number; /** 最大复杂度 */ maxComplexity: number; /** 总复杂度 */ totalComplexity: number; /** 总依赖数 */ totalDependencies: number; /** 内部依赖数 */ internalDependencies: number; /** 外部依赖数 */ externalDependencies: number; /** 最大深度 */ maxDepth: number; /** 平均文件大小 */ averageFileSize: number; /** 总行数 */ totalLines: number; /** 循环依赖数 */ circularDependencies: number; /** 平均每文件依赖数 */ averageDependenciesPerFile: number; /** 总函数数 */ totalFunctions?: number; /** 总类数 */ totalClasses?: number; /** 总接口数 */ totalInterfaces?: number; /** 总全局依赖数 */ totalGlobalDependencies?: number; } export interface AnalysisIssue { /** 问题ID */ id?: string; /** 问题类型 */ type: string; /** 严重程度 */ severity: 'info' | 'warning' | 'error'; /** 问题描述 */ message: string; /** 文件路径 */ file?: string; /** 行号 */ line?: number; /** 列号 */ column?: number; /** 相关代码片段 */ codeSnippet?: string; /** 修复建议 */ fixSuggestion?: string; } export interface Recommendation { /** 建议ID */ id?: string; /** 建议类型 */ type: string; /** 优先级 */ priority: 'low' | 'medium' | 'high'; /** 建议标题 */ title: string; /** 建议描述 */ description: string; /** 影响的文件 */ affectedFiles?: string[]; /** 预期收益 */ expectedBenefit?: string; /** 实施难度 */ difficulty: 'easy' | 'medium' | 'hard'; } export interface AnalysisProgress { /** 当前阶段 */ stage: string; /** 当前进度(0-100) */ progress: number; /** 当前处理的文件 */ currentFile?: string; /** 已处理文件数 */ processedFiles: number; /** 总文件数 */ totalFiles: number; /** 预估剩余时间(毫秒) */ estimatedTimeRemaining?: number; /** 状态消息 */ message?: string; } export interface AnalysisContext { /** 项目根路径 */ projectRoot: string; /** TypeScript程序 */ program?: any; /** 类型检查器 */ typeChecker?: any; /** 源文件映射 */ sourceFiles?: Map<string, any>; /** 配置选项 */ options: AnalyzeProjectOptions; } //# sourceMappingURL=analysis.d.ts.map