thrilled-be-core
Version:
Core Express backend package with middleware, logging, security, and base application setup
60 lines • 1.52 kB
TypeScript
import { Express } from 'express';
import { Logger } from '../logging/Logger';
import { Plugin } from './Plugin';
import { PluginConfig } from '../types';
export interface PluginRegistration {
plugin: Plugin;
config?: PluginConfig;
enabled?: boolean;
}
export declare class PluginManager {
private plugins;
private loadOrder;
private logger;
constructor(logger?: Logger);
/**
* Register a plugin with optional configuration
*/
register(plugin: Plugin, config?: PluginConfig, enabled?: boolean): this;
/**
* Get a registered plugin by name
*/
get(name: string): Plugin | undefined;
/**
* Check if a plugin is registered and enabled
*/
has(name: string): boolean;
/**
* Enable a plugin
*/
enable(name: string): boolean;
/**
* Disable a plugin
*/
disable(name: string): boolean;
/**
* Get list of all registered plugins
*/
list(): {
name: string;
version: string;
enabled: boolean;
}[];
/**
* Sort plugins by their dependencies to determine load order
*/
private calculateLoadOrder;
/**
* Initialize all registered and enabled plugins in dependency order
*/
initializeAll(app: Express): Promise<void>;
/**
* Get the load order of plugins (useful for debugging)
*/
getLoadOrder(): string[];
/**
* Clear all registered plugins
*/
clear(): void;
}
//# sourceMappingURL=PluginManager.d.ts.map