UNPKG

dinoloop-es8

Version:

A lightweight REST API Library for building scalable Node.js server-side applications powered by Typescript

78 lines (77 loc) 2.99 kB
import { IRouterCallBack, IMiddlewareProvider, Express, Request, Response, NextFunction } from '../types'; export interface IDino { registerController<T>(controller: Function & { prototype: T; }): void; registerApplicationError<T>(type: Function & { prototype: T; }): void; disableRouteNotFoundException(): void; enableUserIdentity(): void; requestStart<T>(middleware: Function & { prototype: T; }): void; requestEnd<T>(middleware: Function & { prototype: T; }): void; serverError<T>(middleware: Function & { prototype: T; }): void; applicationStart<T>(middleware: Function & { prototype: T; }): void; dependencyResolver<T>(injector: T, cb: (injector: T, type: any) => any): void; bind(): void; useRouter(cb: () => any): void; } export interface IAppContainer { controllers: Function[]; baseUri: string; startMiddleware: Function[]; endMiddleware: Function[]; appStartMiddleware: Function[]; diContainer: any; diResolveCallback: any; errorController: Function; errorMiddleware: Function[]; routeNotFoundMiddleware: Function; raiseModelError: boolean; enableTaskContext: boolean; useRouter: IRouterCallBack; build(): void; } export interface IDIContainer { resolve<T>(type: any): T; } export interface IDinoContainer { builtInRequestEndMiddleware(middleware: Function): void; builtInErrorMiddleware(middleware: Function): void; builtInRequestStartMiddleware(middleware: Function): void; routeNotFoundMiddleware(middleware: Function): void; appStartMiddleware(middleware: Function): void; requestStartMiddleware(middleware: Function): void; requestEndMiddleware(middleware: Function): void; registerErrorMiddleware(middleware: Function): void; registerErrorController(type: Function): void; registerController(type: Function): void; } export interface IRouteTable { add(route: string, httpVerb: string): void; getRoutes(): string[]; } export interface IDinoController { patch(req: Request, res: Response, next: NextFunction): void; invoke(actionName: string, httpVerb: string, requestUrl: string): void; invokeAsync(actionName: string, httpVerb: string, requestUrl: string): Promise<void>; } export interface IDinoErrorController { patch(err: Error, req: Request, res: Response, next: NextFunction): void; invoke(actionName: string): void; } export interface IDinoRouter { registerMiddlewares(middlewares: IMiddlewareProvider[]): void; registerBeginActionFilters(actionFilters: IMiddlewareProvider[]): void; registerAfterActionFilters(actionFilters: IMiddlewareProvider[]): void; registerResultFilters(resultFilters: IMiddlewareProvider[]): void; registerExceptionFilters(app: Express, uri: string | RegExp, filters: IMiddlewareProvider[]): void; }