bb-inspired
Version:
Core library for BB-inspired NestJS backend
26 lines (25 loc) • 1.27 kB
TypeScript
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { PluginOptions } from './plugin.module';
import { HookService } from './hook.service';
import { PluginMetadata, PluginRegistrationOptions, PluginManager as IPluginManager, HookHandler } from '../../interfaces/plugin.interfaces';
export declare class PluginManagerMain implements IPluginManager, OnModuleInit, OnModuleDestroy {
private readonly options;
private readonly hookService;
private readonly moduleRef;
private readonly logger;
private readonly plugins;
private readonly enabledPlugins;
private readonly moduleContexts;
constructor(options: PluginOptions, hookService: HookService, moduleRef: ModuleRef);
onModuleInit(): Promise<void>;
onModuleDestroy(): Promise<void>;
register(plugin: PluginRegistrationOptions): Promise<void>;
enable(pluginName: string): Promise<boolean>;
disable(pluginName: string): Promise<boolean>;
getPlugins(): PluginMetadata[];
getPlugin(name: string): PluginMetadata | undefined;
isEnabled(name: string): boolean;
registerHook(hookName: string, handler: HookHandler): void;
executeHook<T = any, R = any>(hookName: string, data: T): Promise<R[]>;
}