eureka-plugins
Version:
Eureka Bridge for adding Plugins
39 lines (38 loc) • 1.24 kB
TypeScript
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;
}