UNPKG

snes-disassembler

Version:

A Super Nintendo (SNES) ROM disassembler for 65816 assembly

133 lines 3.95 kB
/** * Error and Warning Consolidation Manager * * Implements a comprehensive system to consolidate error and warning messages * into summaries, reducing repetition and providing users with clear overviews * of issues that occurred during their session. */ export declare enum MessageSeverity { FATAL = "fatal", ERROR = "error", WARNING = "warning", INFO = "info", DEBUG = "debug" } export declare enum MessageCategory { ROM_PARSING = "rom_parsing", INSTRUCTION_DECODE = "instruction_decode", MEMORY_ACCESS = "memory_access", ASSET_EXTRACTION = "asset_extraction", OUTPUT_GENERATION = "output_generation", VALIDATION = "validation", CONFIGURATION = "configuration", PERFORMANCE = "performance", AUDIO_PROCESSING = "audio_processing", AI_ANALYSIS = "ai_analysis" } export interface ConsolidatedMessage { id: string; severity: MessageSeverity; category: MessageCategory; title: string; message: string; count: number; firstOccurrence: Date; lastOccurrence: Date; context: Array<{ timestamp: Date; location?: string; address?: number; additionalData?: any; }>; suggestions?: string[]; relatedMessages?: string[]; } export interface SessionSummary { sessionId: string; startTime: Date; endTime?: Date; totalMessages: number; severityCounts: Record<MessageSeverity, number>; categoryCounts: Record<MessageCategory, number>; consolidatedMessages: ConsolidatedMessage[]; criticalIssues: ConsolidatedMessage[]; recommendations: string[]; performanceMetrics?: { processingTime: number; memoryUsage: number; operationsCompleted: number; }; } export declare class ErrorWarningManager { private logger; private sessionId; private sessionStartTime; private rawMessages; private consolidatedMessages; private messageCounter; private performanceMetrics; constructor(sessionId?: string); private generateSessionId; /** * Add a message to the manager for consolidation */ addMessage(severity: MessageSeverity, category: MessageCategory, message: string, context?: { location?: string; address?: number; additionalData?: any; }): void; /** * Add an error (convenience method) */ addError(category: MessageCategory, message: string, context?: any): void; /** * Add a warning (convenience method) */ addWarning(category: MessageCategory, message: string, context?: any): void; /** * Add a fatal error (convenience method) */ addFatalError(category: MessageCategory, message: string, context?: any): void; private generateMessageId; private consolidateMessage; private findMatchingPattern; private getSeverityWeight; private generateTitle; private generateSuggestions; /** * Generate a comprehensive session summary */ generateSessionSummary(): SessionSummary; private generateRecommendations; /** * Get messages by severity */ getMessagesBySeverity(severity: MessageSeverity): ConsolidatedMessage[]; /** * Get messages by category */ getMessagesByCategory(category: MessageCategory): ConsolidatedMessage[]; /** * Get critical issues that need immediate attention */ getCriticalIssues(): ConsolidatedMessage[]; /** * Update performance metrics */ updatePerformanceMetrics(metrics: Partial<typeof this.performanceMetrics>): void; /** * Clear all messages and reset the session */ reset(): void; /** * Get session statistics */ getSessionStats(): { sessionId: string; duration: number; totalMessages: number; uniqueMessages: number; mostCommonIssue?: ConsolidatedMessage; }; } //# sourceMappingURL=error-warning-manager.d.ts.map