UNPKG

@hapiness/core

Version:

Project to have a HapiJS (https://hapijs.com/) based framework to create easier NodeJS back-end with some awesome features

107 lines (106 loc) 2.96 kB
import { Observable } from 'rxjs'; import { ExtensionWithConfig, BootstrapOptions } from './interfaces'; import { Type } from './decorators'; export declare class Hapiness { private static module; private static extensions; private static logger; private static shutdownUtils; private static defaultTimeout; /** * Entrypoint to bootstrap a module * will load the extentions and trigger * module's hooks * * @param {Type<any>} module * @param {Array<Type<any>|ExtensionWithConfig>} extensions? * @param {BootstrapOptions} options? * @returns Promise */ static bootstrap(module: Type<any>, extensions?: Array<Type<any> | ExtensionWithConfig>, options?: BootstrapOptions): Promise<void>; /** * Force a shutdown * * @returns Observable */ static shutdown(): Observable<boolean>; private static handleShutdownSignals(); /** * Retrieve all shutdown hooks * * @returns ExtensionShutdown[] */ private static getShutdownHooks(); /** * Load extensions * * @param {Array<Type<any>|ExtensionWithConfig>} extensions * @param {CoreModule} moduleResolved * @param {BootstrapOptions} options? * @returns Observable */ private static loadExtensions(extensions, moduleResolved, options); /** * Instantiate module * * @param {Extension[]} extensionsLoaded * @param {CoreModule} moduleResolved * @returns Observable */ private static instantiateModule(extensionsLoaded, moduleResolved, options); /** * Call Register Hooks * * @param {CoreModule} moduleInstantiated * @returns Observable */ private static callRegister(moduleInstantiated); /** * Call Start Hooks * * @param {CoreModule} moduleInstantiated * @returns Observable */ private static callStart(moduleInstantiated); /** * Check if the provided module * is right * * @param {Type<any>} module * @returns Observable */ private static checkArg(module); /** * Convert an extension type to ExtensionWithConfig * * @param {} extension * @returns ExtensionWithConfig */ private static toExtensionWithConfig(extension); /** * Call the OnExtensionLoad hook * of an extension * * @param {ExtensionWithConfig} extension * @returns Observable */ private static loadExtention(extension, module, options); /** * Call the OnModuleInstantiated hook * of an extension * * @param {Extension} extension * @returns Observable */ private static moduleInstantiated(extension, module); } /** * Error handler * Call onError of Root module * Or log in console * * @param {Error} error * @param {any} data * @returns void */ export declare function errorHandler(error: Error, data?: any): void;