Files
medusa-store/packages/medusa/src/api/utils/validate-body.ts
2024-05-30 09:52:47 +02:00

22 lines
583 B
TypeScript

import { NextFunction } from "express"
import { z } from "zod"
import { MedusaRequest, MedusaResponse } from "../../types/routing"
import { zodValidator } from "./zod-helper"
export function validateAndTransformBody(
zodSchema: z.ZodObject<any, any> | z.ZodEffects<any, any>
): (
req: MedusaRequest,
res: MedusaResponse,
next: NextFunction
) => Promise<void> {
return async (req: MedusaRequest, _: MedusaResponse, next: NextFunction) => {
try {
req.validatedBody = await zodValidator(zodSchema, req.body)
next()
} catch (e) {
next(e)
}
}
}