@gabliam/web-core
Version:
Gabliam plugin for add web-core
39 lines (38 loc) • 1.76 kB
TypeScript
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>;
}