48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
import * as core from "../core/index.js";
|
|
import { $ZodError } from "../core/index.js";
|
|
import * as util from "../core/util.js";
|
|
const initializer = (inst, issues) => {
|
|
$ZodError.init(inst, issues);
|
|
inst.name = "ZodError";
|
|
Object.defineProperties(inst, {
|
|
format: {
|
|
value: (mapper) => core.formatError(inst, mapper),
|
|
// enumerable: false,
|
|
},
|
|
flatten: {
|
|
value: (mapper) => core.flattenError(inst, mapper),
|
|
// enumerable: false,
|
|
},
|
|
addIssue: {
|
|
value: (issue) => {
|
|
inst.issues.push(issue);
|
|
inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);
|
|
},
|
|
// enumerable: false,
|
|
},
|
|
addIssues: {
|
|
value: (issues) => {
|
|
inst.issues.push(...issues);
|
|
inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);
|
|
},
|
|
// enumerable: false,
|
|
},
|
|
isEmpty: {
|
|
get() {
|
|
return inst.issues.length === 0;
|
|
},
|
|
// enumerable: false,
|
|
},
|
|
});
|
|
// Object.defineProperty(inst, "isEmpty", {
|
|
// get() {
|
|
// return inst.issues.length === 0;
|
|
// },
|
|
// });
|
|
};
|
|
export const ZodError = core.$constructor("ZodError", initializer);
|
|
export const ZodRealError = core.$constructor("ZodError", initializer, {
|
|
Parent: Error,
|
|
});
|
|
// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */
|
|
// export type ErrorMapCtx = core.$ZodErrorMapCtx;
|