hors
Version:
Node.js API framework
45 lines (44 loc) • 1.96 kB
TypeScript
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 {};