@teclone/r-server
Version:
A lightweight, extensible web-server with inbuilt routing-engine, static file server, file upload handler, request body parser, middleware support and lots more
147 lines (146 loc) • 5.16 kB
TypeScript
import { Wrapper } from './Wrapper';
import { Callback, Middleware, Method, MiddlewareInstance, Routes, RouteId, MiddlewareId } from '../@types';
interface RouterConstructOpts {
/**
* indicating if parent middlewares should be inherited when it gets mounted, defaults to true.
*/
inheritMiddlewares?: boolean;
/**
* defines routers base path
*/
basePath?: string;
}
export declare class Router {
private basePath;
private routes;
private middlewares;
private inheritMiddlewares;
/**
*
* @param inheritMiddlewares - boolean indicating if parent middlewares should be inherited, defaults to true.
*/
constructor(opts?: RouterConstructOpts);
/**
* resolves the url route by joining it to the base path
*/
private resolvePath;
/**
* resolves a route callback options
*/
private resolveMiddlewares;
/**
* resolves a use middleware options
*/
private resolveMethods;
/**
* sets the route rule for a given http method
*
* @param method - the http method
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
private set;
/**
* returns the routes.
*/
getRoutes(): Routes;
/**
* returns the middlewares
*/
getMiddlewares(): MiddlewareInstance[];
/**
* returns routing base path that gets prepended to all route and middleware urls
*/
getBasePath(): string;
/**
* sets routing base path that gets prepended to all route and middleware urls
*/
setBasePath(basePath: string): this;
/**
* stores route rules for http OPTIONS method
*
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
options(path: string, callback: Callback, use?: Middleware | Middleware[]): RouteId;
/**
* stores route rules for http HEAD method
*
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
head(path: string, callback: Callback, use?: Middleware | Middleware[]): RouteId;
/**
* stores route rules for http GET method
*
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
get(path: string, callback: Callback, use?: Middleware | Middleware[]): RouteId;
/**
* stores route rules for http POST method
*
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
post(path: string, callback: Callback, use?: Middleware | Middleware[]): RouteId;
/**
* stores route rules for http PUT method
*
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
put(path: string, callback: Callback, use?: Middleware | Middleware[]): RouteId;
/**
* stores route rules for http DELETE method
*
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
delete(path: string, callback: Callback, use?: Middleware | Middleware[]): RouteId;
/**
* stores route rules for all http methods
*
* @param url - route url
* @param callback - route callback handler
* @param options - route configuration object or middleware or array of middlewares
*/
any(path: string, callback: Callback, use?: Middleware | Middleware[]): RouteId;
/**
* creates and returns a route wrapper for the given url
*/
route(url: string): Wrapper;
/**
* registers a middleware to be called whenever the given url is visited
*
* @param url - url to apply middleware to. use * to appy to all urls
* @param middleware - the middleware or array of middlewares
* @param options - middleware configuration option. here, you can specify the http method
* that the middleware will run against
*@returns {MiddlewareId} returns the middleware id, can be used to delete the middleware.
*/
use(path: string, middleware: Middleware | Middleware[], operation?: Method | Method[]): MiddlewareId;
/**
* sets or gets the inherit parent's middlewares flag.
* @param status - if given, it sets this value
*/
shouldInheritMiddlewares(status?: boolean): boolean;
/**
* removes a given route
* @param id route id
*/
removeRoute(id: RouteId): boolean;
/**
* removes a given middleware. returns true if it succeeds, otherwise, it returns false
* @param id middleware id
*/
removeMiddleware(id: RouteId): boolean;
}
export {};