@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
TypeScript
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;