UNPKG

docker-pilot

Version:

A powerful, scalable Docker CLI library for managing containerized applications of any size

72 lines 2.41 kB
/** * Base Plugin class for Docker Pilot * Provides common functionality for all plugins */ import { Plugin, PluginMetadata, PluginHooks, CommandContext, CommandOptions, CommandResult } from '../types'; import { Logger } from '../utils/Logger'; import { I18n } from '../utils/i18n'; export declare abstract class BasePlugin implements Plugin { readonly metadata: PluginMetadata; protected logger: Logger; protected context: CommandContext | null; protected i18n: I18n; readonly hooks?: PluginHooks; readonly commands?: Record<string, (args: string[], options: CommandOptions) => Promise<CommandResult>>; constructor(metadata: PluginMetadata, hooks?: PluginHooks, commands?: Record<string, (args: string[], options: CommandOptions) => Promise<CommandResult>>); /** * Initialize the plugin */ initialize(context: CommandContext): Promise<void>; /** * Cleanup the plugin */ cleanup(): Promise<void>; /** * Update plugin configuration */ updateConfig(config: any): Promise<void>; /** * Update language for the plugin */ updateLanguage(language: string): void; /** * Check if plugin is compatible with Docker Pilot version */ isCompatible(_dockerPilotVersion: string): boolean; /** * Get plugin status */ getStatus(): 'active' | 'inactive' | 'error'; /** * Called when plugin is initialized * Override this method in your plugin */ protected onInitialize(): Promise<void>; /** * Called when plugin is being cleaned up * Override this method in your plugin */ protected onCleanup(): Promise<void>; /** * Called when plugin configuration is updated * Override this method in your plugin */ protected onConfigUpdate(_config: any): Promise<void>; /** * Helper method to emit events */ protected emit(event: string, data?: any): void; /** * Helper method to execute Docker commands */ protected executeCommand(command: string, args?: string[]): Promise<any>; /** * Helper method to get service status */ protected getServiceStatus(serviceName?: string): Promise<any>; /** * Helper method to log messages */ protected log(level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: any): void; } //# sourceMappingURL=BasePlugin.d.ts.map