UNPKG

hors

Version:
45 lines (44 loc) 1.96 kB
import { Container } from 'inversify'; import * as express from 'express'; import 'reflect-metadata'; import { IBindSimpleEvent } from './simple-event'; import Transaction from './transaction/transaction'; import { EndpointHandler, EndpointErrorHandler, EndpointMiddleware } from './transaction/transaction-types'; import { ApiHttpMethod } from './decorators/api-endpoint'; declare type EndpointRegisterType = { method: ApiHttpMethod; url: string; isPublic: boolean; }; export declare type ExpressConfigurationHandler = (app: express.Express, iocContainer: Container) => void; export declare type IocContainerConfigurationHandler = (iocContainer: Container) => void; export declare class HorsServer { private iocContainer; private app; private httpServerInstance; private authenticationMiddleware; private errorHandler; private notFoundHandler; private expressConfigurationHandler; onTransactionStart: IBindSimpleEvent<Transaction>; onTransactionEnd: IBindSimpleEvent<Transaction>; onListen: IBindSimpleEvent<number>; onRegisterEndpoint: IBindSimpleEvent<EndpointRegisterType>; start(port: number): Promise<void>; stop(): Promise<void>; setAuthenticationMiddleware(middleware: EndpointMiddleware): HorsServer; setErrorHandler(handler: EndpointErrorHandler): HorsServer; setNotFoundHandler(handler: EndpointHandler): HorsServer; configureIocContainer(handler: IocContainerConfigurationHandler): HorsServer; configureExpressInstance(handler: ExpressConfigurationHandler): HorsServer; getExpressInstance(): express.Express; /** * Hydrates the Express application with endpoints and authentication middleware */ private registerEndpoints; /** * Creates a middleware for constracting the Transaction and injecting it into express request */ private createAddTransactionMiddleware; } export {};