@iopa/router
Version:
Lightweight and fast router for IOPA applications
27 lines • 1.22 kB
TypeScript
import type { IContextIopa, IRouterResult, IRouter, IRouterApp, Next, AppHandler } from '@iopa/types';
interface IRoute {
path: string;
method: string;
handler: NamedAppHandler;
}
declare type NamedAppHandler = AppHandler & {
id: string;
options?: unknown;
};
export default class RouterMiddleware {
readonly router: IRouter<NamedAppHandler>;
readonly strict: boolean;
protected _basePath: string;
routes: IRoute[];
constructor(app: IRouterApp, options?: {
router?: IRouter<NamedAppHandler>;
});
invoke(context: IContextIopa<any>, next: Next): Promise<void>;
protected _addRoute(method: string, path: string, handler: NamedAppHandler, options?: unknown): IRoute;
protected _matchRoute(context: IContextIopa): Promise<IRouterResult<NamedAppHandler | null>>;
protected _preprocessRoute(result: IRouterResult<NamedAppHandler | null>, context: IContextIopa): void;
protected _validateRoute(result: IRouterResult<NamedAppHandler | null>, context: IContextIopa): Promise<void>;
protected _handleRoute(result: IRouterResult<NamedAppHandler | null>, context: IContextIopa, next: Next): Promise<void>;
}
export {};
//# sourceMappingURL=index.d.ts.map