Router
class Router<TData = Record<never, never>> - TData is the req.data context expected from the parent.
Constructor
new Router<TData>(prefix?: string)- prefix defaults to"/"
Methods
get / post / put / patch / delete(url, handler, middlewares?, schemas?)- returns the router type widened with the new routeuse(middleware)- middleware for routes registered after this call; widensreq.datause(prefix, router)/use(router)- mount a routercors(rules: CorsRules): this- merge default CORS for this routeraddRoute(route): this- same inference from a route object; optionalcorsfield
CorsRules
type CorsAllow =
| string
| ((req: HttpRequest) => Promise<string | undefined> | string | undefined);
type CorsRules = {
allowOrigin?: CorsAllow;
allowMethods?: CorsAllow;
allowHeaders?: CorsAllow;
allowCredentials?: boolean;
maxAge?: string;
};On mount, each route gets mergeCorsRules(parent.corsRules, child.corsRules, route.cors). Later keys win. Guide: CORS.