docker-pilot
Version:
A powerful, scalable Docker CLI library for managing containerized applications of any size
72 lines • 2.41 kB
TypeScript
/**
* 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