@omer-x/bs-ui-kit
Version:
Bootstrap UI Kit for React.js
25 lines (24 loc) • 736 B
JavaScript
import { ZodIssueCode } from "zod/v3";
function handleZodIssue(issue) {
switch (issue.code) {
case ZodIssueCode.custom:
return issue.params?.customErrorCode ?? issue.message;
case ZodIssueCode.invalid_string:
return `invalid_${issue.validation}`;
case ZodIssueCode.too_small:
return "too_small";
case ZodIssueCode.too_big:
return "too_big";
default:
return "unknown_error";
}
}
export function bundleErrors(issues) {
return issues.reduce((bundle, issue) => {
const [location] = issue.path;
return {
...bundle,
[location]: handleZodIssue(issue).toUpperCase(),
};
}, {});
}