UNPKG

peezy-cli

Version:

Production-ready CLI for scaffolding modern applications with curated full-stack templates, intelligent migrations, and enterprise security.

92 lines (91 loc) 2.41 kB
/** * Plugin Manager v1.0 * * Manages plugin lifecycle, loading, and execution */ import type { PluginConfig, PluginRegistryEntry, ScaffoldContext, InstallContext, ProjectConfig, ValidationResult } from "./types.js"; /** * Plugin Manager - handles plugin discovery, loading, and execution */ export declare class PluginManager { private plugins; private config; private cliVersion; constructor(config: PluginConfig, cliVersion: string); /** * Load all configured plugins */ loadPlugins(): Promise<void>; /** * Load a single plugin */ loadPlugin(pluginName: string, config?: Record<string, any>): Promise<void>; /** * Unload a plugin */ unloadPlugin(pluginName: string): Promise<void>; /** * Unload all plugins */ unloadAllPlugins(): Promise<void>; /** * Execute beforeScaffold hooks */ executeBeforeScaffold(context: ScaffoldContext): Promise<void>; /** * Execute templateTransform hooks */ executeTemplateTransform(context: ScaffoldContext): Promise<void>; /** * Execute afterScaffold hooks */ executeAfterScaffold(context: ScaffoldContext): Promise<void>; /** * Execute beforeInstall hooks */ executeBeforeInstall(context: InstallContext): Promise<void>; /** * Execute afterInstall hooks */ executeAfterInstall(context: InstallContext): Promise<void>; /** * Execute configValidation hooks */ executeConfigValidation(config: ProjectConfig): Promise<ValidationResult[]>; /** * Get loaded plugins */ getLoadedPlugins(): PluginRegistryEntry[]; /** * Get plugin by name */ getPlugin(name: string): PluginRegistryEntry | undefined; /** * Check if plugin is loaded */ isPluginLoaded(name: string): boolean; /** * Execute hooks of a specific type */ private executeHooks; /** * Find plugin module path */ private findPlugin; /** * Validate plugin structure */ private validatePlugin; /** * Check version compatibility */ private checkVersionCompatibility; } /** * Default plugin configuration */ export declare const defaultPluginConfig: PluginConfig; /** * Load plugin configuration from file */ export declare function loadPluginConfig(configPath?: string): Promise<PluginConfig>;