next-api-middleware
Version:
Middleware solution for Next.js API routes
14 lines (9 loc) • 827 B
TypeScript
import * as next from 'next';
import { NextApiRequest, NextApiResponse } from 'next';
type Middleware<Request = NextApiRequest, Response = NextApiResponse> = (req: Request, res: Response, next: () => Promise<void>) => Promise<void>;
type LabeledMiddleware<Request = NextApiRequest, Response = NextApiResponse> = {
[name: string]: Middleware<Request, Response> | Array<Middleware<Request, Response>>;
};
declare function label<T extends LabeledMiddleware>(middleware: T, defaults?: (keyof T)[]): (...chosenMiddleware: (keyof T | Middleware | Middleware[])[]) => (apiRouteFn: next.NextApiHandler<any>) => next.NextApiHandler<any>;
declare function use(...middleware: (Middleware | Middleware[])[]): (apiRouteFn: next.NextApiHandler<any>) => next.NextApiHandler<any>;
export { LabeledMiddleware, Middleware, label, use };