UNPKG

neura-express-app

Version:

Basic express application starter with some common utilities.

44 lines (43 loc) 2.12 kB
import { Request, Response, NextFunction, Router, RequestHandler, IRouter } from "express"; import { INeuraLogger } from "../utils/logger.util"; import { INeuraContainer } from "../utils/container.util"; import { ClassConstructor } from "class-transformer"; export interface NeuraSession { } export interface NeuraRequest<T, U> { body: T; query: U; session: NeuraSession; headers: { [key: string]: string; }; expressRequest: Request; expressResponse: Response; cookies: { [key: string]: string; }; } export declare class NeuraRouter { protected readonly container: INeuraContainer; router: Router; routePrefix: string | undefined; protected logger: INeuraLogger; constructor(container: INeuraContainer); use(...handlers: Array<RequestHandler>): void; get<T, U>(path: string, cb: (request: NeuraRequest<T, U>) => Promise<any>, bodyToValidate?: ClassConstructor<T>, queryToValidate?: ClassConstructor<U>): void; post<T, U>(path: string, cb: (request: NeuraRequest<T, U>) => Promise<any>, bodyToValidate?: ClassConstructor<T>, queryToValidate?: ClassConstructor<U>): void; put<T, U>(path: string, cb: (request: NeuraRequest<T, U>) => Promise<any>, bodyToValidate?: ClassConstructor<T>, queryToValidate?: ClassConstructor<U>): void; delete<T, U>(path: string, cb: (request: NeuraRequest<T, U>) => Promise<any>, bodyToValidate?: ClassConstructor<T>, queryToValidate?: ClassConstructor<U>): void; protected validateAndRespond<T, U>(req: Request, res: Response, next: NextFunction, cb: (request: NeuraRequest<T, U>) => Promise<any>, bodyToValidate?: ClassConstructor<T>, queryToValidate?: ClassConstructor<U>): Promise<any>; protected getFullRoutePath(path: string): string; } export declare abstract class NeuraController { protected readonly container: INeuraContainer; protected logger: INeuraLogger; protected router: NeuraRouter; private routesRegistered; constructor(container: INeuraContainer); getRouterPrefix(): string | undefined; abstract registerRoutes(): void; getRouter(): IRouter; }