UNPKG

@palmares/schemas

Version:

This defines a default schema definition for validation of data, it abstract popular schema validation libraries like zod, yup, valibot and others"

36 lines (34 loc) 941 B
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/middleware.ts import { Response } from "@palmares/server"; function schemaHandler(input, output) { return async (request) => { const data = await request.json(); const validatedData = await input.validate(data, { request }); if (validatedData.isValid) { const savedData = await validatedData.save(); const status = request.method === "POST" ? 201 : 200; if (output) return Response.json(await output.data(savedData), { status }); return Response.json(savedData, { status, headers: { "content-type": "application/json" } }); } return Response.json({ errors: validatedData.errors }, { status: 400 }); }; } __name(schemaHandler, "schemaHandler"); export { schemaHandler };