woaru
Version:
Universal Project Setup Autopilot - Analyze and automatically configure development tools for ANY programming language
104 lines • 2.66 kB
TypeScript
/**
* SOLID Principles Type Definitions for WOARU
* Definiert alle Typen für SOLID-Prinzipien-Analyse
*/
export type SOLIDPrinciple = 'SRP' | 'OCP' | 'LSP' | 'ISP' | 'DIP';
export interface SOLIDViolation {
principle: SOLIDPrinciple;
severity: 'critical' | 'high' | 'medium' | 'low';
file: string;
line?: number;
column?: number;
class?: string;
method?: string;
description: string;
explanation: string;
impact: string;
suggestion: string;
metrics?: {
complexity?: number;
methodCount?: number;
dependencies?: number;
parameters?: number;
linesOfCode?: number;
importConcerns?: string[];
classCount?: number;
};
}
export interface SOLIDCheckResult {
filePath: string;
language: string;
violations: SOLIDViolation[];
metrics: {
classCount: number;
methodCount: number;
avgComplexity: number;
maxComplexity: number;
solidScore: number;
concernDiversity: number;
};
suggestions: string[];
}
export interface ProjectSOLIDResult {
totalFiles: number;
totalViolations: number;
overallSOLIDScore: number;
principleBreakdown: {
SRP: {
violations: number;
score: number;
};
OCP: {
violations: number;
score: number;
};
LSP: {
violations: number;
score: number;
};
ISP: {
violations: number;
score: number;
};
DIP: {
violations: number;
score: number;
};
};
srpViolations: SOLIDViolation[];
ocpViolations: SOLIDViolation[];
ispViolations: SOLIDViolation[];
dipViolations: SOLIDViolation[];
lspViolations: SOLIDViolation[];
recommendations: string[];
}
export interface ClassAnalysis {
name: string;
line: number;
methods: MethodAnalysis[];
imports: string[];
complexity: number;
linesOfCode: number;
concerns: string[];
}
export interface MethodAnalysis {
name: string;
line: number;
parameters: number;
complexity: number;
linesOfCode: number;
}
export interface ImportConcern {
type: 'database' | 'http' | 'filesystem' | 'email' | 'validation' | 'ui' | 'business' | 'utility';
evidence: string[];
confidence: number;
}
export interface SOLIDToolConfig {
name: string;
command: string;
outputFormat: 'json' | 'xml' | 'text';
supportedLanguages: string[];
supportedPrinciples: SOLIDPrinciple[];
parser: string;
}
//# sourceMappingURL=solid-types.d.ts.map