wcz-layout
Version:
27 lines (26 loc) • 1.41 kB
JavaScript
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