@hono/zod-validator
Type-safe request validation middleware for Hono, powered by Zod schemas.
Repository Health
Technical Analysis
@hono/zod-validator is the official validation middleware for the Hono web framework, bridging Zod’s schema-based validation into the request pipeline. Define a Zod schema, wrap it in the zValidator helper, and every incoming JSON body, query string, route parameter, form field, or header is validated before your handler runs.
Beyond runtime checks, the middleware infers the fully-typed validated value so c.req.valid('json') returns a strongly-typed object with no manual casting. It supports both Zod v3 and v4, custom validation functions, and error hooks that let you shape or short-circuit invalid responses.
What You Get
- A single
zValidatorhelper that validates any request target: json, form, query, param, header, or cookie - End-to-end type inference so
c.req.valid(target)returns the schema’s output type with no manual casting - Support for both Zod v3 and Zod v4 schemas from the same API
- An optional hook to customize error responses or throw instead of returning the default 400
- A
validationFunctionoption to override the defaultsafeParseAsyncbehavior (e.g. passthrough parsing)
Common Use Cases
- Validating and typing JSON request bodies for REST and RPC-style Hono APIs
- Guarding query strings and route parameters before business logic executes
- Normalizing and validating request headers with case-insensitive key matching
- Returning consistent, structured 400 error payloads for malformed input
Under The Hood
Architecture The entire package is a single src/index.ts that exports one function, zValidator, aliased over an internal zValidatorFunction. That function delegates to Hono’s built-in validator(target, cb) from hono/validator, supplying an async callback that runs the schema against the request target. When the target is header, it first remaps Hono’s lowercased header keys back to the schema’s original keys via a case-insensitive keymap. It then calls schema.safeParseAsync (or a user-supplied validationFunction), passes the result through an optional hook, returns c.json(result, 400) on failure, and otherwise hands the typed result.data back to Hono to expose via c.req.valid(target).
Tech Stack Written entirely in TypeScript and shipped as dual ESM/CJS via tsdown. It declares hono (>=4.11.2) and zod (^3.25 || ^4) as peer dependencies, so it carries no runtime dependencies of its own. It publishes to npm with provenance and also targets JSR/Deno (a deno.json is present). Tests run under Vitest.
Code Quality The package is small but heavily type-driven: overloaded signatures distinguish the hook and non-hook call forms, and conditional types (ZodError, zInfer, ExtractValidationResponse) derive precise input/output and error-response types across both Zod v3 and v4. Test coverage is explicit, with separate v3.test.ts and v4.test.ts suites exercising each supported Zod major version. A handful of @ts-expect-error pragmas bridge the two Zod type systems where their internal shapes diverge.
API Design The public surface is a single, well-named zValidator(target, schema, hook?, options?) helper, which keeps the learning curve low: one import, one call per route. Type inference means callers rarely annotate anything, and the README documents the common patterns (basic validation, error hooks, throwing errors, custom validation functions) with concise runnable snippets.
Used by 11 apps in this directory
Abby
Developer Tools · Product Management
Statically typed feature flags, remote config, and A/B testing with framework-native SDKs for TypeScript teams.
BrowserOS
Browser · AI Assistants
The open-source agentic Chromium browser with native AI agents, MCP server, and visual workflow automation — your data never leaves your machine.
Cap
Team Chat · Video Conferencing
Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.
Dokploy
Devops · Hosting Control Panel · Security
Self-hosted PaaS that deploys apps and databases on your own VPS using Docker, Traefik, and multi-build-system orchestration
Karakeep
Bookmarks Archiving
Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.
likec4
Developer Tools · Devops
Define your software architecture as code and get always up-to-date, interactive C4 diagrams generated automatically from a DSL.
LLM Gateway
AI Development · Devops
One API endpoint for 25+ LLM providers — route, track costs, enforce compliance, and switch models without changing your code.
LobeHub
AI Assistants · Productivity · Automation
Your Chief Agent Operator — build, schedule, and collaborate with an entire AI team in one self-hostable workspace.
OpenStatus
Monitoring · Devops
Open-source status pages and uptime monitoring with global synthetic checks, monitoring-as-code, and AI agent integration via MCP.