UNPKG

arrow-express

Version:

Library to bootstrap express applications with zero configuration

63 lines (62 loc) 2.18 kB
import Express from "express"; import { ControllerConfiguration } from "../controller/controller"; export declare class AppConfigurator { private _prefix; private readonly _express; private readonly _controllers; private readonly logRequests; private _configured; /** * Create AppConfigurator * @param expressApplication - express application * @param logRequests - flag if requests should be logged, true by default */ constructor(expressApplication: Express.Application, logRequests?: boolean); /** * Starts application, register controllers routes in express app * and connect to configured port. * @param printConfiguration - print express application routes enabled by default. */ configure(printConfiguration?: boolean): void; /** * Register prefix for all paths in application * @param prefix - prefix string eg: 'api' */ prefix(prefix: string): AppConfigurator; /** * Register controller in application. * @param controller - registered controller */ registerController(controller: ControllerConfiguration<any, any>): AppConfigurator; /** * Register list of controllers in application. * @param controllers - controllers to register */ registerControllers(...controllers: ControllerConfiguration<any, any>[]): AppConfigurator; private printExpressConfig; private configureControllers; private configureController; private registerRouteInExpress; private createApplicationRequestHandler; private logRequest; private getExpressRoutesAsStrings; private static expressRouteAsString; /** * Get final route path * @param paths - array of paths * @private */ private static getRoutePath; private static canSendResponse; } type ApplicationOptions = { app: Express.Application; logRequests?: boolean; }; /** * Creates application core * @param options.app - Express application used by application * @param options.logRequests - log requests, enabled by default */ export declare function Application(options: ApplicationOptions): AppConfigurator; export {};