Zentara Corev0.8.6 GitHubnpm

Validasi input

Validasi body, query, dan params dengan Standard Schema.

validate() menerima schema apa pun yang mengikuti Standard Schema, misalnya zod, valibot, atau arktype. Core Zentara tetap tanpa dependency.

// npm install zod
import { z } from "zod";
import { validate } from "zentara";

export const POST = validate(
  {
    body: z.object({ name: z.string().min(2), age: z.coerce.number().int().min(17) }),
    query: z.object({ ref: z.string().optional() }),
  },
  (ctx, { body, query }) => ({ halo: body.name, ref: query.ref }),  // body & query sudah bertipe
);

Body dibaca sesuai Content-Type: JSON atau form HTML (application/x-www-form-urlencoded). Input yang tidak valid dijawab 422 dengan daftar error per field:

{ "error": { "status": 422, "message": "Validasi gagal",
  "details": { "source": "body", "issues": [{ "path": "age", "message": "Too small: expected number to be >=17" }] } } }

Untuk validasi manual: const data = await parse(schema, nilai).

Perbaiki halaman ini di GitHub