UNPKG

@whatwg-node/router

Version:
14 lines (13 loc) 961 B
import { ServerAdapter, ServerAdapterBaseObject, ServerAdapterContext } from '@whatwg-node/server'; export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'; export interface RouterRequest extends Request { method: HTTPMethod; parsedUrl: URL; params: Record<string, string>; query: Record<string, string | string[]>; } export type RouteMethodKey = Lowercase<HTTPMethod> | 'all'; export type RouterHandler<TServerContext> = (request: RouterRequest, ctx: ServerAdapterContext<TServerContext>) => Promise<Response | void> | Response | void; export type RouteMethod<TServerContext> = (path: string, ...handlers: RouterHandler<TServerContext>[]) => Router<TServerContext>; export type RouterBaseObject<TServerContext> = Record<RouteMethodKey, RouteMethod<TServerContext>> & ServerAdapterBaseObject<TServerContext>; export type Router<TServerContext> = ServerAdapter<TServerContext, RouterBaseObject<TServerContext>>;