UNPKG

@schema-hub/zod-error-formatter

Version:

Simple and easy-to-understand zod error messages

38 lines 1.79 kB
import { formatInvalidStringIssueMessage } from './issue-specific/invalid-string.js'; import { formatInvalidTypeIssueMessage } from './issue-specific/invalid-type.js'; import { formatInvalidUnionIssueMessage } from './issue-specific/invalid-union.js'; import { formatInvalidValueIssueMessage } from './issue-specific/invalid-value.js'; import { formatNotMultipleOfIssueMessage } from './issue-specific/not-multiple-of.js'; import { formatTooBigIssueMessage } from './issue-specific/too-big.js'; import { formatTooSmallIssueMessage } from './issue-specific/too-small.js'; import { formatUnrecognizedKeysIssueMessage } from './issue-specific/unrecognized-keys.js'; import { formatPath, isNonEmptyPath } from './path.js'; function formatSimpleMessage(message) { return () => { return message; }; } const issueCodeToFormatterMap = { invalid_type: formatInvalidTypeIssueMessage, invalid_value: formatInvalidValueIssueMessage, unrecognized_keys: formatUnrecognizedKeysIssueMessage, too_big: formatTooBigIssueMessage, too_small: formatTooSmallIssueMessage, not_multiple_of: formatNotMultipleOfIssueMessage, invalid_format: formatInvalidStringIssueMessage, invalid_union: formatInvalidUnionIssueMessage, custom: formatSimpleMessage('invalid input'), invalid_key: formatSimpleMessage('invalid key'), invalid_element: formatSimpleMessage('invalid element') }; export function formatIssue(issue, input) { const { path, code = 'custom' } = issue; const formatter = issueCodeToFormatterMap[code]; const message = formatter(issue, input); if (isNonEmptyPath(path)) { const formattedPath = formatPath(path); return `at ${formattedPath}: ${message}`; } return message; } //# sourceMappingURL=format-issue.js.map