h3-zod
Validate h3 and Nuxt 3 requests using zod schema's.
Install
npm install h3-zod
Usage
import { createServer } from 'http'
import { createApp } from 'h3'
import { useValidatedBody, useValidatedQuery, z } from 'h3-zod'
const app = createApp()
app.use('/', async (req) => {
// Validate body
const body = await useValidatedBody(req, z.object({
optional: z.string().optional(),
required: z.boolean()
}))
// Validate query
const query = useValidatedQuery(req, z.object({
required: z.string()
}))
})
with Nuxt
// ~/server/api/todo.post.ts
import { useValidatedBody, z } from 'h3-zod'
export default defineEventHandler(async (event) => {
const body = await useValidatedBody(event, z.object({
optional: z.string().optional(),
required: z.boolean()
}))
})
Related
License
MIT