UNPKG

code-relation-analyzer

Version:

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

296 lines 8.21 kB
/** * 配置相关类型定义 */ export interface CodeRelationConfig { /** 项目配置 */ project: ProjectConfig; /** 分析配置 */ analysis: AnalysisConfig; /** 可视化配置 */ visualization: VisualizationConfig; /** 输出配置 */ output: OutputConfig; /** 性能配置 */ performance: PerformanceConfig; /** 缓存配置 */ cache: CacheConfig; /** 日志配置 */ logging: LoggingConfig; } export interface ProjectConfig { /** 项目根目录 */ rootDir: string; /** 包含的文件模式 */ include: string[]; /** 排除的文件模式 */ exclude: string[]; /** TypeScript配置文件路径 */ tsConfigPath?: string; /** 是否包含node_modules */ includeNodeModules: boolean; /** 是否包含测试文件 */ includeTestFiles: boolean; /** 是否包含声明文件 */ includeDeclarationFiles: boolean; /** 文件编码 */ encoding: string; } export interface AnalysisConfig { /** 最大分析深度 */ maxDepth: number; /** 是否分析文件依赖 */ analyzeFileDependencies: boolean; /** 是否分析继承关系 */ analyzeInheritance: boolean; /** 是否分析函数调用 */ analyzeFunctionCalls: boolean; /** 是否分析参数流 */ analyzeParameterFlow: boolean; /** 是否分析全局依赖 */ analyzeGlobalDependencies: boolean; /** 是否计算复杂度 */ calculateComplexity: boolean; /** 是否检测循环依赖 */ detectCircularDependencies: boolean; /** 是否生成建议 */ generateRecommendations: boolean; /** 复杂度阈值 */ complexityThresholds: ComplexityThresholds; } export interface ComplexityThresholds { /** 圈复杂度阈值 */ cyclomaticComplexity: { warning: number; error: number; }; /** 认知复杂度阈值 */ cognitiveComplexity: { warning: number; error: number; }; /** 函数长度阈值 */ functionLength: { warning: number; error: number; }; /** 参数数量阈值 */ parameterCount: { warning: number; error: number; }; /** 嵌套深度阈值 */ nestingDepth: { warning: number; error: number; }; } export interface VisualizationConfig { /** 是否生成可视化 */ enabled: boolean; /** 默认图表类型 */ defaultType: string; /** 画布尺寸 */ dimensions: { width: number; height: number; }; /** 主题名称 */ theme: string; /** 是否启用交互 */ interactive: boolean; /** 是否启用动画 */ animated: boolean; /** 节点配置 */ nodes: NodeVisualizationConfig; /** 边配置 */ edges: EdgeVisualizationConfig; /** 布局配置 */ layout: LayoutVisualizationConfig; } export interface NodeVisualizationConfig { /** 最小大小 */ minSize: number; /** 最大大小 */ maxSize: number; /** 默认颜色 */ defaultColor: string; /** 颜色映射 */ colorMapping: Record<string, string>; /** 是否显示标签 */ showLabels: boolean; /** 标签字体大小 */ labelFontSize: number; } export interface EdgeVisualizationConfig { /** 最小宽度 */ minWidth: number; /** 最大宽度 */ maxWidth: number; /** 默认颜色 */ defaultColor: string; /** 颜色映射 */ colorMapping: Record<string, string>; /** 是否显示箭头 */ showArrows: boolean; /** 箭头大小 */ arrowSize: number; } export interface LayoutVisualizationConfig { /** 布局算法 */ algorithm: string; /** 力导向参数 */ forceParameters: { linkDistance: number; linkStrength: number; chargeStrength: number; centerStrength: number; }; /** 层次布局参数 */ hierarchicalParameters: { nodeSpacing: number; levelSpacing: number; direction: 'horizontal' | 'vertical'; }; } export interface OutputConfig { /** 输出目录 */ outputDir: string; /** 输出格式 */ formats: OutputFormat[]; /** 是否生成HTML报告 */ generateHtmlReport: boolean; /** 是否生成JSON数据 */ generateJsonData: boolean; /** 是否生成CSV数据 */ generateCsvData: boolean; /** 是否压缩输出 */ compress: boolean; /** 文件命名模式 */ fileNaming: FileNamingConfig; } export type OutputFormat = 'html' | 'json' | 'csv' | 'svg' | 'png' | 'pdf'; export interface FileNamingConfig { /** 是否包含时间戳 */ includeTimestamp: boolean; /** 是否包含项目名 */ includeProjectName: boolean; /** 自定义前缀 */ prefix?: string; /** 自定义后缀 */ suffix?: string; } export interface PerformanceConfig { /** 最大并发数 */ maxConcurrency: number; /** 内存限制(MB) */ memoryLimit: number; /** 超时时间(毫秒) */ timeout: number; /** 是否启用增量分析 */ incrementalAnalysis: boolean; /** 是否启用并行处理 */ parallelProcessing: boolean; /** 批处理大小 */ batchSize: number; } export interface CacheConfig { /** 是否启用缓存 */ enabled: boolean; /** 缓存目录 */ directory: string; /** 缓存过期时间(毫秒) */ ttl: number; /** 最大缓存大小(MB) */ maxSize: number; /** 缓存策略 */ strategy: CacheStrategy; /** 是否压缩缓存 */ compress: boolean; } export type CacheStrategy = 'lru' | 'lfu' | 'fifo' | 'ttl'; export interface LoggingConfig { /** 日志级别 */ level: LogLevel; /** 是否输出到控制台 */ console: boolean; /** 是否输出到文件 */ file: boolean; /** 日志文件路径 */ filePath?: string; /** 日志格式 */ format: LogFormat; /** 是否启用颜色 */ colors: boolean; /** 是否显示时间戳 */ timestamp: boolean; } export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent'; export type LogFormat = 'simple' | 'detailed' | 'json'; export interface CLIConfig { /** 默认命令 */ defaultCommand: string; /** 是否显示进度条 */ showProgress: boolean; /** 是否显示详细输出 */ verbose: boolean; /** 是否启用颜色输出 */ colors: boolean; /** 是否在完成后打开报告 */ openReport: boolean; /** 交互模式配置 */ interactive: InteractiveConfig; } export interface InteractiveConfig { /** 是否启用交互模式 */ enabled: boolean; /** 是否确认覆盖文件 */ confirmOverwrite: boolean; /** 是否选择输出格式 */ selectOutputFormats: boolean; /** 是否配置可视化选项 */ configureVisualization: boolean; } export interface ValidationConfig { /** 是否验证TypeScript配置 */ validateTsConfig: boolean; /** 是否验证项目结构 */ validateProjectStructure: boolean; /** 是否验证依赖关系 */ validateDependencies: boolean; /** 是否严格模式 */ strictMode: boolean; /** 自定义验证规则 */ customRules: ValidationRule[]; } export interface ValidationRule { /** 规则名称 */ name: string; /** 规则描述 */ description: string; /** 规则类型 */ type: ValidationRuleType; /** 规则参数 */ parameters: Record<string, any>; /** 是否启用 */ enabled: boolean; /** 严重程度 */ severity: 'warning' | 'error'; } export type ValidationRuleType = 'file-naming' | 'import-order' | 'circular-dependency' | 'unused-export' | 'missing-type' | 'complexity-limit' | 'custom'; export interface PluginConfig { /** 已启用的插件 */ enabled: string[]; /** 插件配置 */ configurations: Record<string, any>; /** 插件目录 */ pluginDir?: string; } export interface ExperimentalConfig { /** 是否启用实验性功能 */ enabled: boolean; /** 实验性功能列表 */ features: string[]; /** 实验性配置 */ configurations: Record<string, any>; } //# sourceMappingURL=config.d.ts.map