edgespec
Version:
Write Winter-CG compatible routes with filesystem routing and tons of features
80 lines (78 loc) • 2.37 kB
JavaScript
// src/lib/format-zod-error.ts
var zodIssueToString = (issue) => {
if (issue.path.join(".") === "") {
return issue.message;
}
if (issue.message === "Required") {
return `\`${issue.path.join(".")}\` is required`;
}
return `${issue.message} for "${issue.path.join(".")}"`;
};
var formatZodError = (error) => {
let message;
if (error.issues.length === 1) {
const issue = error.issues[0];
message = zodIssueToString(issue);
} else {
const message_components = [];
for (const issue of error.issues) {
message_components.push(zodIssueToString(issue));
}
message = `${error.issues.length} Zod validation issues: ` + message_components.join(", ");
}
message += `. Full Zod error: ${JSON.stringify(error.issues, null, 2)}`;
return message;
};
// src/middleware/http-exceptions.ts
var EdgeSpecMiddlewareError = class extends Error {
constructor(message, status = 500) {
super(message);
this.message = message;
this.status = status;
this._isHttpException = true;
this.name = this.constructor.name;
}
};
var MethodNotAllowedError = class extends EdgeSpecMiddlewareError {
constructor(allowedMethods) {
super(`only ${allowedMethods.join(",")} accepted`, 405);
}
};
var NotFoundError = class extends EdgeSpecMiddlewareError {
constructor(message) {
super(message, 404);
}
};
var BadRequestError = class extends EdgeSpecMiddlewareError {
constructor(message) {
super(message, 400);
}
};
var InvalidQueryParamsError = class extends BadRequestError {
constructor(message) {
super(message);
}
};
var InvalidContentTypeError = class extends BadRequestError {
constructor(message) {
super(message);
}
};
var InputParsingError = class extends BadRequestError {
constructor(message) {
super(message);
}
};
var InputValidationError = class extends BadRequestError {
constructor(error) {
super(formatZodError(error));
}
};
var ResponseValidationError = class extends EdgeSpecMiddlewareError {
constructor(error) {
super(formatZodError(error), 500);
}
};
export { BadRequestError, EdgeSpecMiddlewareError, InputParsingError, InputValidationError, InvalidContentTypeError, InvalidQueryParamsError, MethodNotAllowedError, NotFoundError, ResponseValidationError };
//# sourceMappingURL=chunk-J77ZRDU2.js.map
//# sourceMappingURL=chunk-J77ZRDU2.js.map