@hapiness/core
Version:
Project to have a HapiJS (https://hapijs.com/) based framework to create easier NodeJS back-end with some awesome features
48 lines (47 loc) • 1.12 kB
TypeScript
import { Type } from '../decorators';
import { Observable } from 'rxjs';
import { CoreModule } from './module';
import { ExtensionShutdownPriority } from '../enums';
export interface ExtensionWithConfig {
token: Type<any>;
config: any;
}
export interface Extension {
value: any;
instance: any;
token: Type<any>;
}
export interface ExtensionShutdown {
priority: ExtensionShutdownPriority;
resolver: Observable<any>;
}
/**
* OnExtensionLoad Hook
*
* @param {CoreModule} module
* @param {any} config
* @returns Observable
*/
export interface OnExtensionLoad {
onExtensionLoad(module: CoreModule, config: any): Observable<Extension>;
}
/**
* OnModuleInstantiated Hook
*
* @param {CoreModule} module
* @param {any} server
* @returns Observable
*/
export interface OnModuleInstantiated {
onModuleInstantiated(module: CoreModule, server: any): Observable<void>;
}
/**
* OnShutdown Hook
*
* @param {CoreModule} module
* @param {any} server
* @returns Observable
*/
export interface OnShutdown {
onShutdown(module: CoreModule, server: any): ExtensionShutdown;
}