Skip to main content

Validacion zod

Esta utilidad proporciona una función genérica para validar datos con Zod, simplificando el manejo de errores en controladores y servicios.


🔧 Función: zodValidate

export const zodValidate = <T>(
schema: ZodSchema<T>,
data: unknown
): { success: true; data: T } | { success: false; error: string }

✅ Propósito:

Valida cualquier objeto de entrada contra un esquema de Zod y devuelve un resultado estandarizado que indica si la validación fue exitosa o no.


📥 Parámetros:

NombreTipoDescripción
schemaZodSchema<T>Esquema de Zod que define la forma y reglas de validación.
dataunknownObjeto de datos que se desea validar.

📤 Retorno:

  • Si la validación es exitosa:
{ success: true, data: T }
  • Si la validación falla:
{ success: false, error: string } // mensaje con errores concatenados

El campo error contiene un resumen legible de todos los errores de validación en una sola cadena, útil para mostrar en respuestas HTTP.


🧠 Ejemplo de uso:

const result = zodValidate(userSchema, req.body);

if (!result.success) {
res.status(400).json({ message: "Datos inválidos", detalles: result.error });
} else {
const usuarioValido = result.data;
// continuar con lógica de negocio
}

🧰 Utiliza:

  • Zod.safeParse: método seguro que evita excepciones y devuelve un objeto de éxito o error.
  • Mapeo de errores personalizados usando result.error.errors.