harmony-plugin-manager
Version:
A comprehensive TypeScript library for generating harmonious color palettes with WCAG 2.1 accessibility compliance
77 lines • 2.85 kB
TypeScript
/**
* Error handling utilities and custom error classes for plugin system
*
* Provides structured error types for different failure scenarios:
* - PluginError: General plugin execution failures
* - PluginRegistrationError: Registration-specific failures
* - PluginDependencyError: Dependency resolution failures
* - PluginValidationError: Input/configuration validation failures
*/
/**
* Base error class for plugin-related failures
* Captures the plugin name and original error for debugging
*/
export declare class PluginError extends Error {
readonly pluginName: string;
readonly originalError?: Error | undefined;
constructor(message: string, pluginName: string, originalError?: Error | undefined);
}
/**
* Error thrown when plugin registration fails
* Typically due to naming conflicts or invalid metadata
*/
export declare class PluginRegistrationError extends Error {
readonly pluginName: string;
constructor(message: string, pluginName: string);
}
/**
* Error thrown when plugin dependencies cannot be resolved
* Indicates missing or disabled required dependencies
*/
export declare class PluginDependencyError extends Error {
readonly pluginName: string;
readonly missingDependency: string;
constructor(message: string, pluginName: string, missingDependency: string);
}
/**
* Error thrown when plugin validation fails
* Indicates specific field or configuration issues
*/
export declare class PluginValidationError extends Error {
readonly pluginName: string;
readonly field: string;
constructor(message: string, pluginName: string, field: string);
}
/**
* Utility class for error handling and creation
* Provides consistent error wrapping and type checking
*/
export declare class ErrorUtils {
/**
* Wraps any error as a PluginError if not already one
* Preserves the original error chain for debugging
*/
static wrapPluginError(error: Error, pluginName: string): PluginError;
/**
* Type guard to check if error is a PluginError
*/
static isPluginError(error: Error): error is PluginError;
/**
* Extracts plugin name from plugin-related errors
* Returns undefined for non-plugin errors
*/
static extractPluginName(error: Error): string | undefined;
/**
* Factory method for creating registration errors
*/
static createRegistrationError(pluginName: string, reason: string): PluginRegistrationError;
/**
* Factory method for creating dependency errors
*/
static createDependencyError(pluginName: string, missingDependency: string): PluginDependencyError;
/**
* Factory method for creating validation errors
*/
static createValidationError(pluginName: string, field: string, reason: string): PluginValidationError;
}
//# sourceMappingURL=error.utils.d.ts.map