next-server-middleware
Version:
A simple type-safe express-like middleware for Next.js api routes using app directory and next/server
20 lines (15 loc) • 562 B
text/typescript
import type { NextRequest, NextResponse } from "next/server";
export type RequestData = Record<string, unknown>;
export type RequestHandler<
T extends NextRequest = NextRequest,
TParams = Record<string, unknown>
> = (request: T, params: TParams) => Promise<NextResponse>;
export type NextHandler = () => Promise<NextResponse>;
export type Middleware<
TExtraData extends RequestData = RequestData,
TParams = Record<string, unknown>
> = (
request: NextRequest & Partial<TExtraData>,
next: NextHandler,
params: TParams
) => Promise<NextResponse>;