@ffsm/napi
Version:
Napi - A framework using with Next.js for building APIs.
13 lines (12 loc) • 617 B
TypeScript
import { NextRequest, NextResponse } from "next/server";
export type NapiClass<Props = object> = Props & {
new (...args: any[]): any;
};
export interface NapiRoutePayload<Params = unknown> {
params: Promise<Params>;
}
export interface NapiRouteHandler<Params = unknown> {
(req: NextRequest, payload: NapiRoutePayload<Params>): Promise<NextResponse | Response>;
}
export type NapiCallback<Param, Return = unknown> = (...args: Param extends Array<unknown> ? Param : [Param]) => Return | Promise<Return>;
export type NapiOptionAsync<Return = unknown, Param = unknown> = Return | NapiCallback<Param, Return>;