UNPKG

eureka-plugins

Version:

Eureka Bridge for adding Plugins

39 lines (38 loc) 1.24 kB
import PluginExtension from './extensions/PluginExtension'; import { IManifiestInfo } from './interfaces/IManifiestInfo'; import { ExtendsOf } from './interfaces/ExtendsOf'; import IDependencyDescriptor from './extensions/IDependencyDescriptor'; import { PluginLogger } from './PluginLogger'; /** * Manifiest required to register and hydrate a Eureka Plugin */ export default abstract class PluginManifiest<T extends PluginExtension> { private pluginType; private dependencies; private instance; private hydratedCompleted; /** * @ignore * Register a new Manifiest plugin for hydration * @param pluginToExport Plugin Type to register * @param dependencies Dependency List */ constructor(pluginToExport: ExtendsOf<T>, dependencies: IDependencyDescriptor); /** * Get the manifiest info for the plugin */ getManifiest(): IManifiestInfo; /** * @ignore * Hydrate the plugin according to the manifiest data * @param resolutions Dependecy resolutions list */ hydrate(resolutions: { [key: string]: any; }, logger: PluginLogger): Promise<void>; /** * @ignore * Get the plugin instance */ protected getPlugin(): T; }