UNPKG

next-rest-framework

Version:

Next REST Framework - write type-safe, self-documenting REST APIs in Next.js

25 lines (24 loc) 4.19 kB
import { type OpenAPIV3_1 } from 'openapi-types'; import { type ValidMethod } from '../constants'; import { type BaseObjectSchemaType, type BaseSchemaType } from './schemas'; import { type ApiRouteMethodHandler, type MethodHandler, type OutputObject } from './method-handlers'; export interface DefineRouteParams<GetBodySchema extends BaseSchemaType = BaseSchemaType, GetQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, GetOutput extends OutputObject = OutputObject, PutBodySchema extends BaseSchemaType = BaseSchemaType, PutQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, PutOutput extends OutputObject = OutputObject, PostBodySchema extends BaseSchemaType = BaseSchemaType, PostQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, PostOutput extends OutputObject = OutputObject, DeleteBodySchema extends BaseSchemaType = BaseSchemaType, DeleteQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, DeleteOutput extends OutputObject = OutputObject, OptionsBodySchema extends BaseSchemaType = BaseSchemaType, OptionsQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, OptionsOutput extends OutputObject = OutputObject, HeadBodySchema extends BaseSchemaType = BaseSchemaType, HeadQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, HeadOutput extends OutputObject = OutputObject, PatchBodySchema extends BaseSchemaType = BaseSchemaType, PatchQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, PatchOutput extends OutputObject = OutputObject> { [ValidMethod.GET]?: MethodHandler<GetBodySchema, GetQuerySchema, GetOutput>; [ValidMethod.PUT]?: MethodHandler<PutBodySchema, PutQuerySchema, PutOutput>; [ValidMethod.POST]?: MethodHandler<PostBodySchema, PostQuerySchema, PostOutput>; [ValidMethod.DELETE]?: MethodHandler<DeleteBodySchema, DeleteQuerySchema, DeleteOutput>; [ValidMethod.OPTIONS]?: MethodHandler<OptionsBodySchema, OptionsQuerySchema, OptionsOutput>; [ValidMethod.HEAD]?: MethodHandler<HeadBodySchema, HeadQuerySchema, HeadOutput>; [ValidMethod.PATCH]?: MethodHandler<PatchBodySchema, PatchQuerySchema, PatchOutput>; openApiSpecOverrides?: OpenAPIV3_1.PathItemObject; } export interface DefineApiRouteParams<GetBodySchema extends BaseSchemaType = BaseSchemaType, GetQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, GetOutput extends OutputObject = OutputObject, PutBodySchema extends BaseSchemaType = BaseSchemaType, PutQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, PutOutput extends OutputObject = OutputObject, PostBodySchema extends BaseSchemaType = BaseSchemaType, PostQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, PostOutput extends OutputObject = OutputObject, DeleteBodySchema extends BaseSchemaType = BaseSchemaType, DeleteQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, DeleteOutput extends OutputObject = OutputObject, OptionsBodySchema extends BaseSchemaType = BaseSchemaType, OptionsQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, OptionsOutput extends OutputObject = OutputObject, HeadBodySchema extends BaseSchemaType = BaseSchemaType, HeadQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, HeadOutput extends OutputObject = OutputObject, PatchBodySchema extends BaseSchemaType = BaseSchemaType, PatchQuerySchema extends BaseObjectSchemaType = BaseObjectSchemaType, PatchOutput extends OutputObject = OutputObject> { [ValidMethod.GET]?: ApiRouteMethodHandler<GetBodySchema, GetQuerySchema, GetOutput>; [ValidMethod.PUT]?: ApiRouteMethodHandler<PutBodySchema, PutQuerySchema, PutOutput>; [ValidMethod.POST]?: ApiRouteMethodHandler<PostBodySchema, PostQuerySchema, PostOutput>; [ValidMethod.DELETE]?: ApiRouteMethodHandler<DeleteBodySchema, DeleteQuerySchema, DeleteOutput>; [ValidMethod.OPTIONS]?: ApiRouteMethodHandler<OptionsBodySchema, OptionsQuerySchema, OptionsOutput>; [ValidMethod.HEAD]?: ApiRouteMethodHandler<HeadBodySchema, HeadQuerySchema, HeadOutput>; [ValidMethod.PATCH]?: ApiRouteMethodHandler<PatchBodySchema, PatchQuerySchema, PatchOutput>; openApiSpecOverrides?: OpenAPIV3_1.PathItemObject; }