woaru
Version:
Universal Project Setup Autopilot - Analyze and automatically configure development tools for ANY programming language
75 lines • 2.4 kB
TypeScript
/**
* Base SOLID Checker - Abstrakte Basisklasse für alle SOLID-Prinzipien-Checker
*/
import { SOLIDViolation, SOLIDPrinciple } from '../types/solid-types';
export declare abstract class BaseSOLIDChecker {
protected abstract principle: SOLIDPrinciple;
protected abstract supportedLanguages: string[];
/**
* Hauptmethode für SOLID-Prinzipien-Check
*/
abstract check(filePath: string, language: string): Promise<SOLIDViolation[]>;
/**
* Prüft ob die Sprache unterstützt wird
*/
supportsLanguage(language: string): boolean;
/**
* Führt ein externes Tool aus und parsed das Ergebnis
*/
protected runTool(command: string, args?: string[], options?: {
cwd?: string;
timeout?: number;
}): Promise<string>;
/**
* Berechnet einen Severity-Score basierend auf Metriken
*/
protected calculateSeverity(value: number, thresholds: {
low: number;
medium: number;
high: number;
}): 'low' | 'medium' | 'high' | 'critical';
/**
* Extrahiert Dateinamen ohne Pfad für bessere Lesbarkeit
*/
protected getFileName(filePath: string): string;
/**
* Generiert eine konsistente Beschreibung für SOLID-Verstöße
*/
protected createViolation(params: {
file: string;
line?: number;
class?: string;
method?: string;
description: string;
explanation: string;
impact: string;
suggestion: string;
severity: 'low' | 'medium' | 'high' | 'critical';
metrics?: {
complexity?: number;
methodCount?: number;
dependencies?: number;
parameters?: number;
linesOfCode?: number;
importConcerns?: string[];
classCount?: number;
};
}): SOLIDViolation;
/**
* Prüft ob eine Datei TypeScript oder JavaScript ist
*/
protected isTypeScriptFile(filePath: string): boolean;
/**
* Prüft ob eine Datei JavaScript ist
*/
protected isJavaScriptFile(filePath: string): boolean;
/**
* Analysiert Import-Statements für Concern-Detection
*/
protected analyzeImportConcerns(imports: string[]): string[];
/**
* Hilfsmethode für Pattern-Matching in Import-Strings
*/
private matchesPattern;
}
//# sourceMappingURL=BaseSOLIDChecker.d.ts.map