This commit is contained in:
2025-08-22 20:19:15 -04:00
parent f19552929e
commit 391bf3d1f8
58 changed files with 535 additions and 24 deletions

View File

@@ -1,19 +1,23 @@
import { zValidator } from "@hono/zod-validator";
import type { MiddlewareHandler } from "@hono/hono";
import { z } from "zod";
import { z, ZodObject } from "zod";
import type { HonoEnv } from "./types.ts";
// thanks claude, this hurt my brain!
export const typedZValidator = <T extends z.ZodSchema>(
target: 'query' | 'json' | 'form' | 'header' | 'param' | 'cookie',
schema: T
export const typedZValidator = <
Target extends 'query' | 'json' | 'form' | 'header' | 'param' | 'cookie',
Schema extends ZodObject
>(
target: Target,
schema: Schema
) => {
return zValidator(target, schema) as MiddlewareHandler<
HonoEnv,
string,
{
in: { [K in typeof target]: z.input<T> };
out: { [K in typeof target]: z.output<T> };
in: { [K in Target]: z.input<Schema> };
out: { [K in Target]: z.output<Schema> };
}
>;
};