From a534a691cc5c820970b6f736f5a497ed637a9abd Mon Sep 17 00:00:00 2001 From: xuyingzhou Date: Fri, 30 Jan 2026 13:59:07 +0800 Subject: [PATCH 1/2] fix(zod-validator): improve type inference for partial schemas - Remove HasUndefined check from DefaultInput type - This ensures Hono RPC can correctly infer json parameter type - Fixes issue where schema.partial() breaks client type inference Co-Authored-By: Claude --- packages/zod-validator/src/index.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/zod-validator/src/index.ts b/packages/zod-validator/src/index.ts index 28e0030f2..791391b78 100644 --- a/packages/zod-validator/src/index.ts +++ b/packages/zod-validator/src/index.ts @@ -52,13 +52,9 @@ type ExtractValidationResponse = VF extends (value: any, c: any) => infer R : never type DefaultInput = { - in: HasUndefined extends true - ? { - [K in Target]?: [In] extends [ValidationTargets[K]] ? In : InferInput - } - : { - [K in Target]: [In] extends [ValidationTargets[K]] ? In : InferInput - } + in: { + [K in Target]: [In] extends [ValidationTargets[K]] ? In : InferInput + } out: { [K in Target]: Out } } From be82f3b9964b7d1f219507ba6cccf1673c27c45a Mon Sep 17 00:00:00 2001 From: xuyingzhou Date: Fri, 30 Jan 2026 14:39:18 +0800 Subject: [PATCH 2/2] chore: add changeset for zod-validator type fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .changeset/green-jeans-rhyme.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/green-jeans-rhyme.md diff --git a/.changeset/green-jeans-rhyme.md b/.changeset/green-jeans-rhyme.md new file mode 100644 index 000000000..cf0591d04 --- /dev/null +++ b/.changeset/green-jeans-rhyme.md @@ -0,0 +1,5 @@ +--- +"@hono/zod-validator": patch +--- + +Fix Hono RPC type inference when using zValidator with partial schemas.