UNPKG

file-routing-expressjs

Version:

A dependency-free, flexible, system-based file routing for Express.

58 lines (55 loc) 1.98 kB
import { Express, RequestHandler, ErrorRequestHandler } from 'express'; type ExpressMethod = "get" | "post" | "delete" | "put" | "patch" | "all"; type PartialExpressMethodRecord<T> = Partial<Record<ExpressMethod, T>>; type FileBasedRoutingOptions = { app: Express; target?: string; }; type RouteConfig = Partial<{ pattern: RegExp | string | PartialExpressMethodRecord<RegExp | string>; }>; type DirRouteConfig = Partial<{ pattern: RegExp | string; }>; type FilesHandlerConfig = { route: string; name: string; basename: string; target: string; isParam: boolean; }; type DirsHandlerConfig = FilesHandlerConfig & { parent: string; }; type MapRoutesParams = { target: string; route: string; parentConfig?: { route: string; }; }; type RouterRequestHandlersMap = Record<ExpressMethod, RequestHandler | undefined>; type ErrorHandler = ErrorRequestHandler; type RouterDirMiddleware = RequestHandler | RequestHandler[]; type RouterFileMiddleware = RouterDirMiddleware | PartialExpressMethodRecord<RouterDirMiddleware>; type RouterFileError = ErrorHandler | PartialExpressMethodRecord<ErrorHandler | undefined> | undefined; type DirRouteContext = { config: RouteConfig; middlewares: RequestHandler[]; errorHandler: ErrorHandler | undefined; }; type FileRouteContext = { config: RouteConfig; middlewares: RouterFileMiddleware; errorHandler: RouterFileError; }; type RouterEndpoint = { depth: number; name: string; endpoint: string; method: string; middlewares: string[]; errorHandler: string; }; type RouterEndpoints = RouterEndpoint[]; export type { DirRouteConfig, DirRouteContext, DirsHandlerConfig, ErrorHandler, ExpressMethod, FileBasedRoutingOptions, FileRouteContext, FilesHandlerConfig, MapRoutesParams, PartialExpressMethodRecord, RouteConfig, RouterDirMiddleware, RouterEndpoint, RouterEndpoints, RouterFileError, RouterFileMiddleware, RouterRequestHandlersMap };