UNPKG

@velascosoftware/next-api-router

Version:
46 lines (39 loc) 2 kB
import { NextRequest, NextResponse } from 'next/server'; type ErrorHandler = (error: unknown, req: NextRequest, params: Record<string, string>) => Promise<NextResponse> | NextResponse; interface ApiRouteController { [key: string]: any; } declare class ApiRouter { private routes; private basePath; private globalErrorHandler; constructor(basePath: string | undefined, controller: ApiRouteController); onError(handler: ErrorHandler): void; handle(req: NextRequest): Promise<NextResponse>; } type HTTP_METHOD = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD'; type NextHandler$1 = () => Promise<NextResponse> | NextResponse; type Middleware = (req: NextRequest, ctx: Record<string, unknown>, next: NextHandler$1) => Promise<NextResponse> | NextResponse; interface RouteDefinition { path: string; method: HTTP_METHOD; handlerName: string; } declare function RequestMapping(path: string, method: HTTP_METHOD): (target: any, propertyKey: string) => void; declare function Use(...middlewares: Middleware[]): (target: any, propertyKey: string) => void; declare function UseController(...middlewares: Middleware[]): (constructor: any) => void; declare function getRoutes(target: any): RouteDefinition[]; declare function getControllerMiddlewares(target: any): Middleware[]; declare function getRouteMiddlewares(target: any): Record<string, Middleware[]>; type NextHandler = (req: NextRequest) => Promise<Response> | Response; type RouterRecords = { GET: NextHandler; POST: NextHandler; PUT: NextHandler; PATCH: NextHandler; DELETE: NextHandler; OPTIONS: NextHandler; HEAD: NextHandler; }; declare function createNextRoute(controller: ApiRouteController, basePath?: string): RouterRecords; export { type ApiRouteController, ApiRouter, type Middleware, type NextHandler$1 as NextHandler, RequestMapping, type RouteDefinition, Use, UseController, createNextRoute, getControllerMiddlewares, getRouteMiddlewares, getRoutes };