bun-ws-router
Version:
Lightweight client/server WebSocket router for Bun with type-safe Zod/Valibot validation.
49 lines • 1.57 kB
JavaScript
// SPDX-FileCopyrightText: 2025-present Kriasoft
// SPDX-License-Identifier: MIT
/**
* Formats a Valibot validation error into a user-friendly message.
* Converts the issues array into readable error messages.
*/
export function formatValidationError(error) {
// Handle Valibot issues array
if (Array.isArray(error)) {
const issues = error;
const messages = issues.map((issue) => {
const path = issue.path?.map((p) => p.key).join(".") || "root";
return `${path}: ${issue.message}`;
});
return messages.join("\n");
}
// Handle wrapped error object with issues
if (error && typeof error === "object" && "issues" in error) {
const issues = error.issues;
const messages = issues.map((issue) => {
const path = issue.path?.map((p) => p.key).join(".") || "root";
return `${path}: ${issue.message}`;
});
return messages.join("\n");
}
return "Validation error";
}
/**
* Extract error context for debugging from a validation error.
*/
export function getErrorContext(error) {
let issues;
if (Array.isArray(error)) {
issues = error;
}
else if (error && typeof error === "object" && "issues" in error) {
issues = error.issues;
}
if (issues) {
return {
errorCount: issues.length,
fields: issues
.map((issue) => issue.path?.map((p) => p.key).join("."))
.filter(Boolean),
};
}
return {};
}
//# sourceMappingURL=utils.js.map