← ClaudeAtlas

zod-validationlisted

This skill activates when writing form validation, request validation, or Zod schemas in Hono. It provides patterns for validating JSON bodies, query parameters, path parameters, and headers with proper error handling.
smicolon/ai-kit · ★ 3 · AI & Automation · score 64
Install: claude install-skill smicolon/ai-kit
# Zod Validation in Hono Patterns for request validation using Zod and @hono/zod-validator. ## Setup ```bash bun add zod @hono/zod-validator ``` ## Basic Validation ### JSON Body ```typescript import { zValidator } from '@hono/zod-validator' import { z } from 'zod' const createUserSchema = z.object({ email: z.string().email('Invalid email address'), name: z.string().min(1, 'Name is required').max(100), age: z.number().int().positive().optional(), }) app.post('/users', zValidator('json', createUserSchema), async (c) => { const data = c.req.valid('json') // data is typed as { email: string; name: string; age?: number } return c.json(data, 201) } ) ``` ### Query Parameters ```typescript const paginationSchema = z.object({ page: z.coerce.number().int().positive().default(1), limit: z.coerce.number().int().min(1).max(100).default(20), sort: z.enum(['asc', 'desc']).default('desc'), search: z.string().optional(), }) app.get('/users', zValidator('query', paginationSchema), async (c) => { const { page, limit, sort, search } = c.req.valid('query') // All values are properly typed and coerced return c.json({ page, limit, sort, search }) } ) ``` ### Path Parameters ```typescript const userParamsSchema = z.object({ id: z.string().uuid('Invalid user ID format'), }) app.get('/users/:id', zValidator('param', userParamsSchema), async (c) => { const { id } = c.req.valid('param') return c.json({ id }) } ) ``` ### H