UNPKG

wcz-layout

Version:

27 lines (26 loc) 1.41 kB
import { n as authorizationMiddleware, r as apiMiddleware, t as authenticationMiddleware } from "./authMiddleware-DkRImzMr.mjs"; import { z } from "zod"; import { createCsrfMiddleware, createMiddleware } from "@tanstack/react-start"; //#region src/middleware/validationMiddleware.ts const validationMiddleware = (schema) => createMiddleware().server(async ({ next, request }) => { const json = await request.json(); const result = schema.safeParse(json); if (!result.success) { const { fieldErrors } = z.flattenError(result.error); const firstFieldName = Object.keys(fieldErrors)[0]; const firstErrorMessage = fieldErrors[firstFieldName]?.[0]; if (firstFieldName && firstErrorMessage) { const name = firstFieldName.charAt(0).toUpperCase() + firstFieldName.slice(1); const message = firstErrorMessage.replace(/^Invalid input:\s*/i, "").toLowerCase(); return Response.json({ message: `${name} - ${message}` }, { status: 400 }); } return Response.json({ message: "Validation failed" }, { status: 400 }); } return await next({ context: { data: result.data } }); }); //#endregion //#region src/middleware/csrfMiddleware.ts const csrfMiddleware = createCsrfMiddleware({ filter: (ctx) => ctx.handlerType === "serverFn" }); //#endregion export { apiMiddleware, authenticationMiddleware, authorizationMiddleware, csrfMiddleware, validationMiddleware }; //# sourceMappingURL=middleware.mjs.map