facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
108 lines (107 loc) • 5.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = translateZodErrors;
const zod_1 = require("zod");
function translateZodErrors(errorMapOverride) {
const customErrorMap = (issue, _ctx) => {
const pathStr = `'${issue.path.join('.')}'`;
const dataType = typeof _ctx.data;
const elements = {
string: 'caracteres',
number: 'como valor',
bigint: 'como valor',
object: 'elementos',
};
const element = elements[dataType] ?? 'partes';
switch (issue.code) {
case zod_1.ZodIssueCode.invalid_type:
return {
message: `El campo ${pathStr} debe ser de tipo ${issue.expected}`,
};
case zod_1.ZodIssueCode.invalid_literal:
return { message: `El campo ${pathStr} debe ser ${issue.expected}` };
case zod_1.ZodIssueCode.invalid_union:
return {
message: `El campo ${pathStr} debe ser uno de los siguientes: ${issue.unionErrors
.map((e) => e.message)
.join(', ')}`,
};
case zod_1.ZodIssueCode.invalid_union_discriminator:
return {
message: `El campo ${pathStr} debe ser uno de los siguientes: ${issue.options.join(', ')}`,
};
case zod_1.ZodIssueCode.invalid_enum_value:
return {
message: `El campo ${pathStr} debe ser uno de los siguientes: ${issue.options.join(', ')}`,
};
case zod_1.ZodIssueCode.unrecognized_keys:
return {
message: `El campo ${pathStr} contiene un campos no reconocidos`,
};
case zod_1.ZodIssueCode.invalid_arguments:
return {
message: `El campo ${pathStr} debe ser un ${issue.argumentsError.message}`,
};
case zod_1.ZodIssueCode.invalid_return_type:
return {
message: `El campo ${pathStr} debe ser un ${issue.returnTypeError.message}`,
};
case zod_1.ZodIssueCode.invalid_date:
return { message: `El campo ${pathStr} no es una fecha válida` };
case zod_1.ZodIssueCode.invalid_string:
return {
message: `El campo ${pathStr} debe ser un texto de tipo ${issue.validation}`,
};
case zod_1.ZodIssueCode.too_small:
switch (typeof _ctx.data) {
case 'number':
return {
message: `El campo ${pathStr} debe ser mayor a ${issue.minimum}`,
};
case 'string':
return {
message: `El campo ${pathStr} debe tener al menos ${issue.minimum} caracteres`,
};
case 'object':
return {
message: `El campo ${pathStr} debe tener al menos ${issue.minimum} elementos`,
};
default:
return {
message: `El campo ${pathStr} debe tener al menos ${issue.minimum} ${element}`,
};
}
case zod_1.ZodIssueCode.too_big:
switch (typeof _ctx.data) {
case 'number':
return {
message: `El campo ${pathStr} debe ser menor a ${issue.maximum}`,
};
case 'string':
return {
message: `El campo ${pathStr} debe tener como máximo ${issue.maximum} caracteres`,
};
case 'object':
return {
message: `El campo ${pathStr} debe tener como máximo ${issue.maximum} elementos`,
};
default:
return {
message: `El campo ${pathStr} debe tener como máximo ${issue.maximum} ${element}`,
};
}
case zod_1.ZodIssueCode.invalid_intersection_types:
// Al parecer esto solo aplica en las intersecciones de zod.
return { message: `El campo ${pathStr} no es válido` };
case zod_1.ZodIssueCode.not_multiple_of:
return {
message: `El campo ${pathStr} debe ser múltiplo de ${issue.multipleOf}`,
};
case zod_1.ZodIssueCode.not_finite:
return { message: `El campo ${pathStr} no puede ser infinito` };
default:
return { message: `El campo ${pathStr} no es válido` };
}
};
zod_1.z.setErrorMap(errorMapOverride || customErrorMap);
}