UNPKG

@storm-stack/plugin-system

Version:

A library used to create and manage a plugin-styled architecture in a TypeScript application.

17 lines (16 loc) 1.24 kB
import type { IPluginLoader, IPluginModule, PluginDefinition, PluginInstance } from "../types"; /** * A base class to detect properly loaded plugins. */ export declare abstract class PluginLoader<TContext = any, TPluginModule extends IPluginModule<TContext> = IPluginModule<TContext>> implements IPluginLoader<TContext, TPluginModule> { readonly rootPath?: string | undefined; readonly tsconfig?: string | undefined; readonly autoInstall?: boolean | undefined; protected resolver: (request: string) => Promise<string>; constructor(rootPath?: string | undefined, tsconfig?: string | undefined, autoInstall?: boolean | undefined); abstract process: (context: TContext, instance: PluginInstance<TContext, TPluginModule>, options: Record<string, any>) => Promise<void>; load: (definition: PluginDefinition, options?: Record<string, any>) => Promise<PluginInstance<TContext, TPluginModule>>; isValid: (module: TPluginModule) => boolean; protected instantiate: (definition: PluginDefinition, module: TPluginModule, resolvedPath: string, options?: Record<string, any>) => PluginInstance<TContext, TPluginModule>; protected resolve: (definition: PluginDefinition, _?: Record<string, any>) => unknown; }