@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
JavaScript
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
};