import { Url, MiddlewareInstance, RouteInstance, ErrorCallback } from '../@types'; import Response from './Response'; import Request from './Request'; import Logger from './Logger'; export default class Engine { private resolved; private request; private response; private middlewares; private method; private url; private logger; private errorCallback; constructor(url: Url, method: string, request: Request, response: Response, logger: Logger, errorCallback: ErrorCallback | null); /** * returns the parameter value */ private getParameterValue; /** * capture route parameters */ private captureParameter; /** * runs through the route, and captures parameters */ private captureParameters; /** * check if route url matches request url */ private matchUrl; /** * validate that the middleware method matches request method */ private validateMiddleware; /** * validate that the route method matches the request method */ private validateRoute; /** * asynchronously runs the middleware */ private runMiddlewares; /** * asynchronously runs the matching route */ private runRoute; /** * processes the route */ private process; /** * sets or overrides the existing middlewares */ use(middlewares: MiddlewareInstance[]): this; /** * stores route rules for http OPTIONS method */ options(route: RouteInstance): Promise; /** * stores route rules for http HEAD method */ head(route: RouteInstance): Promise; /** * stores route rules for http GET method */ get(route: RouteInstance): Promise; /** * stores route rules for http POST method */ post(route: RouteInstance): Promise; /** * stores route rules for http PUT method */ put(route: RouteInstance): Promise; /** * stores route rules for http DELETE method */ delete(route: RouteInstance): Promise; /** * stores route rules for all http methods */ all(route: RouteInstance): Promise; }