@nortex/pretty-zod-error
Version:
Returns a pretty, colorful error message from Zod errors.
31 lines (30 loc) • 1.26 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logPrettyZodError = exports.prettifyZodError = void 0;
const ansi_colors_1 = __importDefault(require("ansi-colors"));
const defaultOpts = { withIndex: true, noColors: false, errorCode: true };
function prettifyZodError(err, opts = defaultOpts) {
const pretty = err.issues
.map((issue, idx) => {
const segments = [];
if (opts.withIndex)
segments.push(`${ansi_colors_1.default.bold(`${idx + 1}.`)}`);
segments.push(`[${ansi_colors_1.default.blue(issue.path.join("."))}]:`);
segments.push(issue.message);
if (opts.errorCode)
segments.push(`(${ansi_colors_1.default.dim(issue.code)})`);
if (opts.noColors)
segments.map((s) => ansi_colors_1.default.stripColor(s));
return segments.join(" ");
})
.join("\n");
return pretty;
}
exports.prettifyZodError = prettifyZodError;
function logPrettyZodError(err, opts = defaultOpts) {
console.log(prettifyZodError(err, opts));
}
exports.logPrettyZodError = logPrettyZodError;
;