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
TypeScript
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>;
}>;