* refactor: composite build * chore(ua-blocker): move demo.ts out of src |
||
---|---|---|
.. | ||
src | ||
CHANGELOG.md | ||
README.md | ||
package.json | ||
tsconfig.build.json | ||
tsconfig.json | ||
tsconfig.spec.json | ||
vitest.config.ts |
README.md
Standard Schema validator middleware for Hono
The validator middleware using Standard Schema Spec for Hono applications. You can write a schema with any validation library supporting Standard Schema and validate the incoming values.
Usage
Basic:
import { z } from 'zod'
import { sValidator } from '@hono/standard-validator'
const schema = z.object({
name: z.string(),
age: z.number(),
})
app.post('/author', sValidator('json', schema), (c) => {
const data = c.req.valid('json')
return c.json({
success: true,
message: `${data.name} is ${data.age}`,
})
})
Hook:
app.post(
'/post',
sValidator('json', schema, (result, c) => {
if (!result.success) {
return c.text('Invalid!', 400)
}
})
//...
)
Headers:
Headers are internally transformed to lower-case in Hono. Hence, you will have to make them lower-cased in validation object.
import { object, string } from 'valibot'
import { sValidator } from '@hono/standard-validator'
const schema = object({
'content-type': string(),
'user-agent': string(),
})
app.post('/author', sValidator('header', schema), (c) => {
const headers = c.req.valid('header')
// do something with headers
})
Author
Rokas Muningis https://github.com/muningis
License
MIT