next-connect
Version:
The method routing and middleware layer for Next.js (and many others)
23 lines (22 loc) • 1.33 kB
TypeScript
import type { HandlerOptions, Nextable, RouteMatch, RouteShortcutMethod, ValueOrPromise } from "./types.js";
export type RequestHandler<Req extends Request, Ctx> = (req: Req, ctx: Ctx) => ValueOrPromise<Response | void>;
export declare class EdgeRouter<Req extends Request = Request, Ctx = unknown> {
private router;
private add;
all: RouteShortcutMethod<this, RequestHandler<Req, Ctx>>;
get: RouteShortcutMethod<this, RequestHandler<Req, Ctx>>;
head: RouteShortcutMethod<this, RequestHandler<Req, Ctx>>;
post: RouteShortcutMethod<this, RequestHandler<Req, Ctx>>;
put: RouteShortcutMethod<this, RequestHandler<Req, Ctx>>;
patch: RouteShortcutMethod<this, RequestHandler<Req, Ctx>>;
delete: RouteShortcutMethod<this, RequestHandler<Req, Ctx>>;
use(base: RouteMatch | Nextable<RequestHandler<Req, Ctx>> | EdgeRouter<Req, Ctx>, ...fns: (Nextable<RequestHandler<Req, Ctx>> | EdgeRouter<Req, Ctx>)[]): this;
private prepareRequest;
clone(): EdgeRouter<Req, Ctx>;
run(req: Req, ctx: Ctx): Promise<unknown>;
handler(options?: HandlerOptions<RequestHandler<Req, Ctx>>): (req: Req, ctx: Ctx) => Promise<any>;
}
export declare function getPathname(req: Request & {
nextUrl?: URL;
}): string;
export declare function createEdgeRouter<Req extends Request, Ctx>(): EdgeRouter<Req, Ctx>;