OOrveth

Documentation

Validation (Zod)

@orveth/validation-zod — official Zod adapter with typed ctx.valid results.

@orveth/validation-zod connects Zod schemas to Orveth middleware. Validation failures integrate with @orveth/errors for consistent JSON error responses.

validation-zod.ts
import { z } from "zod";
import { Orveth } from "orveth";
import { validateBody, validateQuery } from "@orveth/validation-zod";

const app = new Orveth();

const createUser = z.object({
  email: z.string().email(),
  name: z.string().min(1),
});

app.post("/users", validateBody(createUser), (ctx) => {
  return ctx.created(ctx.valid.body);
});

const listQuery = z.object({
  page: z.coerce.number().optional(),
});

app.get("/users", validateQuery(listQuery), (ctx) => {
  return ctx.ok({ page: ctx.valid.query.page ?? 1 });
});