hono-zod
v1.1.1
Published
A simple validation middleware for Hono, using zod and zod-validation-error.
Maintainers
Readme
hono-zod
A simple validation middleware for Hono, using zod and zod-validation-error.
Install
$ npm i hono-zod --saveUsage
hono-zod uses hono/validator internally.
zodValidator({
query?: ZodSchema,
json?: ZodSchema,
form?: ZodSchema,
header?: ZodSchema,
param?: ZodSchema,
cookie?: ZodSchema,
})Example
import { Hono } from 'hono'
import { z as zod } from 'zod'
import { serve } from '@hono/node-server'
import { zodValidator } from 'hono-zod'
const app = new Hono()
app.get(
'/',
zodValidator({
query: zod.object({
page: zod.coerce.number()
}),
// json: zod.object({...}),
// form: zod.object({...}),
// header: zod.object({...}),
// param: zod.object({...}),
// cookie: zod.object({...}),
}),
async (c) => {
return c.json({
'c.req.valid(\'query\')': c.req.valid('query'),
'c.req.query()': await c.req.query(),
})
}
)
serve(app)
Request /:
GET / -> 400
Validation error: Expected number, received NaN at "query.page"Request /?page=1:
GET /?page=1 -> 200
{
"c.req.valid('query')": {
"page": 1 // <- Modified by zod
},
"c.req.query()": {
"page": "1"
}
}More examples see test
Test(100% coverage rate)
$ npm testLicense
MIT
