UNPKG

jsonv-ts

Version:

JSON Schema builder and validator for TypeScript with static type inference, Hono middleware for OpenAPI generation and validation, and MCP server/client implementation. Lightweight, dependency-free, and built on Web Standards.

25 lines (24 loc) 986 B
import type { Hono, ValidationTargets } from "hono"; import type * as t from "./openapi/types"; import type { JSONSchemaDefinition, ObjectSchema } from "jsonv-ts"; import type { RouterRoute } from "hono/types"; export type RouteInfo<Options extends InfoOptions = InfoOptions> = { method: string; openAPI?: Options extends { skipOpenAPI: true; } ? undefined : Partial<t.OperationObject>; validation?: Partial<Record<keyof ValidationTargets, Options extends { useSchemas: true; } ? ObjectSchema : JSONSchemaDefinition>>; handler?: RouterRoute["handler"]; } & (Options extends { extra: (route: RouterRoute) => infer T; } ? T : {}); export type InfoOptions = { useSchemas?: boolean; skipOpenAPI?: boolean; extra?: (route: RouterRoute) => Record<string, any>; }; export declare function info<Options extends InfoOptions = InfoOptions>(hono: Hono<any>, options?: Options): Record<string, { [method: string]: RouteInfo<Options>; }>;