UNPKG

@hapiness/core

Version:

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

108 lines (107 loc) 3.05 kB
import { CoreModule, OnExtensionLoad, OnModuleInstantiated, ExtensionWithConfig, Extension, OnShutdown, ExtensionShutdown } from '../../core/interfaces'; import { HapiConfig } from './interfaces'; import { Observable } from 'rxjs'; import { Server } from 'hapi'; export declare class HttpServerExt implements OnExtensionLoad, OnModuleInstantiated, OnShutdown { static setConfig(config: HapiConfig): ExtensionWithConfig; /** * Initialize HapiJS Server * * @param {CoreModule} module * @param {HapiConfig} config * @returns Observable */ onExtensionLoad(module: CoreModule, config: HapiConfig): Observable<Extension>; /** * Build Lifecycle components * Add routes by modules * Add Lifecycle handlers * Start HapiJS Server * * @param {CoreModule} module * @param {Server} server * @returns Observable */ onModuleInstantiated(module: CoreModule, server: Server): Observable<any>; /** * Shutdown HapiJS server extension * * @param {CoreModule} module * @param {Server} server * @returns ExtensionShutdown */ onShutdown(module: CoreModule, server: Server): ExtensionShutdown; /** * Format the config provided * to a list of ConnectionOptions * * @param {HapiConfig} config * @returns ConnectionOptions */ private formatConnections(config); /** * Register a HapiJS Plugin * * @param {CoreModule} module * @param {Server} server * @returns Observable */ private registerPlugin(module, server); /** * Add routes from CoreModule * * @param {CoreRoute[]} module * @returns Observable */ private registerHandler(routes?); /** * Build CoreRoute based on a module * * @param {CoreModule} module * @returns Observable */ private buildRoutes(module); /** * Trigger the http handler hook * Reply automatically * * @param {Request} request * @param {ReplyNoContinue} reply * @param {CoreRoute} route * @returns void */ private httpHandler(request, reply, route); /** * Format response to HTTPHandlerResponse object * * @param {any} data * @returns HTTPHandlerResponse */ private formatResponse(data); /** * Check of response is not empty * * @param {any} response * @returns boolean */ private isValid(response); /** * Initialize and instantiate lifecycle components * * @param {CoreModule} module * @param {Server} server */ private instantiateLifecycle(module, server); /** * Lifecycle Event Handler * Instantiate the Lifecycle component * And trigger the hook * * @param {Type<any>} lifecycle * @param {CoreModule} module * @param {Request} request * @param {ReplyWithContinue} reply * @returns Observable */ private eventHandler(lifecycle, module, request, reply); }