UNPKG

@api-buddy/plugin-utils

Version:

Shared utilities for API Buddy plugins

50 lines (47 loc) 1.37 kB
import { Logger, Plugin, PluginContext } from '@api-buddy/types'; export { Logger, Plugin, PluginContext, PluginHook } from '@api-buddy/types'; interface PluginManagerOptions { cwd?: string; logger?: Partial<Logger>; pluginsDir?: string | string[]; nodeModulesDirs?: string[]; } /** * A simple plugin manager that handles loading and managing plugins. * Can be extended to add custom plugin functionality. */ declare class SimplePluginManager { protected plugins: Map<string, Plugin>; protected context: PluginContext; protected options: { pluginsDir: string[]; nodeModulesDirs: string[]; }; private defaultLogger; constructor(options?: PluginManagerOptions); /** * Register a plugin */ registerPlugin(plugin: Plugin): Promise<void>; /** * Get a registered plugin by name */ getPlugin<T extends Plugin = Plugin>(name: string): T | undefined; /** * Get all registered plugins */ getPlugins(): Plugin[]; /** * Check if a plugin is registered */ hasPlugin(name: string): boolean; /** * Unregister a plugin */ unregisterPlugin(name: string): Promise<boolean>; /** * Load plugins from the specified directories */ loadPlugins(): Promise<void>; } export { type PluginManagerOptions, SimplePluginManager };