next-connect
Version:
The method routing and middleware layer for Next.js (and many others)
22 lines (21 loc) • 884 B
TypeScript
import type { FindResult, FunctionLike, HttpMethod, Nextable, RouteMatch } from "./types.js";
export type Route<H> = {
method: HttpMethod | "";
fns: (H | Router<H extends FunctionLike ? H : never>)[];
isMiddle: boolean;
} & ({
keys: string[] | false;
pattern: RegExp;
} | {
matchAll: true;
});
export declare class Router<H extends FunctionLike> {
base: string;
routes: Route<Nextable<H>>[];
constructor(base?: string, routes?: Route<Nextable<H>>[]);
add(method: HttpMethod | "", route: RouteMatch | Nextable<H>, ...fns: Nextable<H>[]): this;
use(base: RouteMatch | Nextable<H> | Router<H>, ...fns: (Nextable<H> | Router<H>)[]): this;
clone(base?: string): Router<H>;
static exec<H extends FunctionLike>(fns: Nextable<H>[], ...args: Parameters<H>): Promise<unknown>;
find(method: HttpMethod, pathname: string): FindResult<H>;
}