UNPKG

@gabliam/web-core

Version:
39 lines (38 loc) 1.76 kB
import { Container, gabliamValue, Registry } from '@gabliam/core'; import { RestMetadata } from './plugin-config'; import { WebConfiguration, WebConfigurationContructor } from './web-configuration'; /** * Base class for web plugin. */ export declare abstract class WebPluginBase<T> { private webConfiguration; constructor(config?: Partial<WebConfigurationContructor<T>>); /** * Bind the app. In this method, you create the application and bind. * * @param {Container} container - The container. * @param {Registry} registry - The registry. * @param {WebConfiguration} webConfiguration - The WebConfiguration instance for add configuration. * @returns gabliamValue */ abstract bindApp(container: Container, registry: Registry, webConfiguration: WebConfiguration): gabliamValue<void>; abstract buildControllers(restMetadata: RestMetadata, container: Container): gabliamValue<void>; /** * binding phase * * @param {Container} container - The container. * @param {Registry} registry - The registry. */ bind(container: Container, registry: Registry): Promise<void>; /** * Management of @WebConfig and @WebConfigAfterControllers decorator in config class * * @param {Container} container - The container * @param {Registry} registry - The registry * @param {any} confInstance - The current instance of confi class */ config(container: Container, registry: Registry, confInstance: any): void; abstract destroy(container: Container, registry: Registry): gabliamValue<void>; start(container: Container, registry: Registry): Promise<void>; abstract stop(container: Container, registry: Registry): gabliamValue<void>; }