rexuws
Version:
An express-like framework built on top of uWebsocket.js aims at simple codebase and high performance
19 lines (18 loc) • 865 B
TypeScript
import AbstractRoutingParser, { IRouteBaseHandler, Ctor } from '../../core';
import { HttpMethod } from '../../../utils/types';
import { TMiddleware } from '../../../middlewares';
import { IGetRouteHandlers } from '../default';
/**
* @abstract
* An abstract class which extends from `AbstractRoutingParser` and implements `IGetRouteHandlers` to
* allow accessing routeHandlers from outside
*/
export default abstract class BaseRouter<T extends Ctor> extends AbstractRoutingParser<IRouteBaseHandler, T> implements IGetRouteHandlers {
protected add(method: HttpMethod, args: unknown[]): this;
/**
* Transfrom arguments into [path, middlewares] to fulfill the overrided add() in BaseRouter
* @param args
*/
protected abstract transform(args: unknown[]): [string, TMiddleware[]];
getRouteHandlers(): Map<string, IRouteBaseHandler>;
}