saltfish
Version:
An interactive video-guided tour system for web applications
106 lines • 3.26 kB
TypeScript
/**
* Error severity levels
*/
export declare enum ErrorSeverity {
INFO = "info",
WARNING = "warning",
ERROR = "error",
CRITICAL = "critical"
}
/**
* Error context information
*/
export interface ErrorContext {
component?: string;
method?: string;
userId?: string;
playlistId?: string;
stepId?: string;
errorType?: string;
additionalData?: Record<string, any>;
}
/**
* Error handling options
*/
export interface ErrorHandlerOptions {
severity?: ErrorSeverity;
shouldLog?: boolean;
shouldThrow?: boolean;
shouldUpdateStore?: boolean;
shouldTriggerEvent?: boolean;
shouldDestroy?: boolean;
}
/**
* Centralized error handler for consistent error handling across the application
*/
export declare class ErrorHandler {
private static readonly DEFAULT_OPTIONS;
/**
* Handles an error with consistent logging, reporting, and response
* @param error The error to handle (Error object, string, or unknown)
* @param context Context information about where the error occurred
* @param options Options for how to handle the error
*/
static handle(error: Error | string | unknown, context?: ErrorContext, options?: ErrorHandlerOptions): Error;
/**
* Handles initialization errors
*/
static handleInitializationError(error: Error | string | unknown, context?: ErrorContext): Error;
/**
* Handles playlist loading errors
*/
static handlePlaylistError(error: Error | string | unknown, context?: ErrorContext): Error;
/**
* Handles video loading/playback errors
*/
static handleVideoError(error: Error | string | unknown, context?: ErrorContext): Error;
/**
* Handles network/API errors
*/
static handleNetworkError(error: Error | string | unknown, context?: ErrorContext): Error;
/**
* Handles non-critical errors (warnings)
*/
static handleWarning(error: Error | string | unknown, context?: ErrorContext): Error;
/**
* Handles cleanup/destroy errors
*/
static handleCleanupError(error: Error | string | unknown, context?: ErrorContext): Error;
/**
* Normalizes different error types to Error objects
*/
private static normalizeError;
/**
* Formats error message with context information
*/
private static formatErrorMessage;
/**
* Logs error with appropriate severity level
*/
private static logError;
/**
* Updates store with error state
*/
private static updateStore;
/**
* Triggers error event through EventManager
*/
private static triggerErrorEvent;
/**
* Destroys player for critical errors
*/
private static destroyPlayer;
/**
* Creates a standardized error with context
*/
static createError(message: string, context?: ErrorContext): Error;
/**
* Checks if an error is recoverable based on its type and context
*/
static isRecoverable(error: Error): boolean;
/**
* Safely executes a function with error handling
*/
static safeExecute<T>(fn: () => T | Promise<T>, context?: ErrorContext, options?: ErrorHandlerOptions): Promise<T | null>;
}
//# sourceMappingURL=ErrorHandler.d.ts.map