next-connect
Version:
The method routing and middleware layer for Next.js (and many others)
23 lines (22 loc) • 1.52 kB
TypeScript
/// <reference types="node" resolution-mode="require"/>
import type { IncomingMessage, ServerResponse } from "http";
import type { HandlerOptions, Nextable, RouteMatch, RouteShortcutMethod, ValueOrPromise } from "./types.js";
export type RequestHandler<Req extends IncomingMessage, Res extends ServerResponse> = (req: Req, res: Res) => ValueOrPromise<void>;
export declare class NodeRouter<Req extends IncomingMessage = IncomingMessage, Res extends ServerResponse = ServerResponse> {
private router;
private add;
all: RouteShortcutMethod<this, RequestHandler<Req, Res>>;
get: RouteShortcutMethod<this, RequestHandler<Req, Res>>;
head: RouteShortcutMethod<this, RequestHandler<Req, Res>>;
post: RouteShortcutMethod<this, RequestHandler<Req, Res>>;
put: RouteShortcutMethod<this, RequestHandler<Req, Res>>;
patch: RouteShortcutMethod<this, RequestHandler<Req, Res>>;
delete: RouteShortcutMethod<this, RequestHandler<Req, Res>>;
use(base: RouteMatch | Nextable<RequestHandler<Req, Res>> | NodeRouter<Req, Res>, ...fns: (Nextable<RequestHandler<Req, Res>> | NodeRouter<Req, Res>)[]): this;
private prepareRequest;
clone(): NodeRouter<Req, Res>;
run(req: Req, res: Res): Promise<unknown>;
handler(options?: HandlerOptions<RequestHandler<Req, Res>>): (req: Req, res: Res) => Promise<void>;
}
export declare function getPathname(url: string): string;
export declare function createRouter<Req extends IncomingMessage, Res extends ServerResponse>(): NodeRouter<Req, Res>;