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