summaryrefslogtreecommitdiff
path: root/node_modules/zod/lib/ZodError.js
diff options
context:
space:
mode:
authorakiyamn2023-09-24 23:22:21 +1000
committerakiyamn2023-09-24 23:22:21 +1000
commit4e87195739f2a5d9a05451b48773c8afdc680765 (patch)
tree9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/zod/lib/ZodError.js
downloadprice-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz
price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/zod/lib/ZodError.js')
-rw-r--r--node_modules/zod/lib/ZodError.js124
1 files changed, 124 insertions, 0 deletions
diff --git a/node_modules/zod/lib/ZodError.js b/node_modules/zod/lib/ZodError.js
new file mode 100644
index 0000000..5901765
--- /dev/null
+++ b/node_modules/zod/lib/ZodError.js
@@ -0,0 +1,124 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ZodError = exports.quotelessJson = exports.ZodIssueCode = void 0;
+const util_1 = require("./helpers/util");
+exports.ZodIssueCode = util_1.util.arrayToEnum([
+ "invalid_type",
+ "invalid_literal",
+ "custom",
+ "invalid_union",
+ "invalid_union_discriminator",
+ "invalid_enum_value",
+ "unrecognized_keys",
+ "invalid_arguments",
+ "invalid_return_type",
+ "invalid_date",
+ "invalid_string",
+ "too_small",
+ "too_big",
+ "invalid_intersection_types",
+ "not_multiple_of",
+ "not_finite",
+]);
+const quotelessJson = (obj) => {
+ const json = JSON.stringify(obj, null, 2);
+ return json.replace(/"([^"]+)":/g, "$1:");
+};
+exports.quotelessJson = quotelessJson;
+class ZodError extends Error {
+ constructor(issues) {
+ super();
+ this.issues = [];
+ this.addIssue = (sub) => {
+ this.issues = [...this.issues, sub];
+ };
+ this.addIssues = (subs = []) => {
+ this.issues = [...this.issues, ...subs];
+ };
+ const actualProto = new.target.prototype;
+ if (Object.setPrototypeOf) {
+ Object.setPrototypeOf(this, actualProto);
+ }
+ else {
+ this.__proto__ = actualProto;
+ }
+ this.name = "ZodError";
+ this.issues = issues;
+ }
+ get errors() {
+ return this.issues;
+ }
+ format(_mapper) {
+ const mapper = _mapper ||
+ function (issue) {
+ return issue.message;
+ };
+ const fieldErrors = { _errors: [] };
+ const processError = (error) => {
+ for (const issue of error.issues) {
+ if (issue.code === "invalid_union") {
+ issue.unionErrors.map(processError);
+ }
+ else if (issue.code === "invalid_return_type") {
+ processError(issue.returnTypeError);
+ }
+ else if (issue.code === "invalid_arguments") {
+ processError(issue.argumentsError);
+ }
+ else if (issue.path.length === 0) {
+ fieldErrors._errors.push(mapper(issue));
+ }
+ else {
+ let curr = fieldErrors;
+ let i = 0;
+ while (i < issue.path.length) {
+ const el = issue.path[i];
+ const terminal = i === issue.path.length - 1;
+ if (!terminal) {
+ curr[el] = curr[el] || { _errors: [] };
+ }
+ else {
+ curr[el] = curr[el] || { _errors: [] };
+ curr[el]._errors.push(mapper(issue));
+ }
+ curr = curr[el];
+ i++;
+ }
+ }
+ }
+ };
+ processError(this);
+ return fieldErrors;
+ }
+ toString() {
+ return this.message;
+ }
+ get message() {
+ return JSON.stringify(this.issues, util_1.util.jsonStringifyReplacer, 2);
+ }
+ get isEmpty() {
+ return this.issues.length === 0;
+ }
+ flatten(mapper = (issue) => issue.message) {
+ const fieldErrors = {};
+ const formErrors = [];
+ for (const sub of this.issues) {
+ if (sub.path.length > 0) {
+ fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
+ fieldErrors[sub.path[0]].push(mapper(sub));
+ }
+ else {
+ formErrors.push(mapper(sub));
+ }
+ }
+ return { formErrors, fieldErrors };
+ }
+ get formErrors() {
+ return this.flatten();
+ }
+}
+exports.ZodError = ZodError;
+ZodError.create = (issues) => {
+ const error = new ZodError(issues);
+ return error;
+};