UNPKG

api-morph

Version:

A modern TypeScript-first OpenAPI document generator that analyzes your code and JSDoc comments to automatically generate comprehensive and accurate API documentation.

57 lines (56 loc) 2.11 kB
import { GenerateSwaggerUIHTMLOptions } from "./swagger-CGaHMoKZ.js"; import { ZodError, ZodType, z as z$1 } from "zod/v4"; import Koa, { Context, Next } from "koa"; //#region src/koa/middlewares/zodValidator.d.ts /** * 类型化的Koa中间件函数,提供类型安全的ctx参数 */ type TypedMiddleware<TParams = unknown, TQuery = unknown, TBody = unknown, THeaders = unknown> = (ctx: Context & { params: TParams; query: TQuery; headers: THeaders; request: Omit<Context["request"], "query" | "headers" | "body"> & { query: TQuery; headers: THeaders; body: TBody; }; }, next: Next) => Promise<void>; /** * Koa 校验配置选项 */ interface ValidationOptions<TParams extends ZodType = ZodType, TQuery extends ZodType = ZodType, TBody extends ZodType = ZodType, THeaders extends ZodType = ZodType> { /** 请求体 schema */ body?: TBody; /** 查询参数 schema */ query?: TQuery; /** 路径参数 schema */ params?: TParams; /** 请求头 schema */ headers?: THeaders; /** 自定义错误处理函数 */ onError?: ErrorRequestHandler; } /** * Koa 错误请求处理函数 */ type ErrorRequestHandler = (err: ZodError, ctx: Context, next: Next) => void | Promise<void>; /** * 创建类型安全的 Koa Zod 校验中间件 * * @param options 校验配置选项 * @returns 类型化的Koa中间件,提供对应schema字段的类型提示 */ declare function zodValidator<TParams extends ZodType, TQuery extends ZodType, TBody extends ZodType, THeaders extends ZodType>(options: ValidationOptions<TParams, TQuery, TBody, THeaders>): TypedMiddleware<z$1.output<TParams>, z$1.output<TQuery>, z$1.output<TBody>, z$1.output<THeaders>>; //#endregion //#region src/koa/swagger.d.ts /** * 设置 SwaggerUI 的静态资源和路由 * @param path SwaggerUI 路径 * @param app Koa 应用实例 * @param options 选项 * * @category Koa */ declare function setupSwaggerUI(path: string, app: Koa, options?: GenerateSwaggerUIHTMLOptions): void; //#endregion export { ErrorRequestHandler, TypedMiddleware, ValidationOptions, setupSwaggerUI, zodValidator };