src/features/reviews/review-error-message.ts
Linked repository file from this build.
/** Zod errors can arrive as serialized issue arrays from local or server validation. */
export function reviewErrorMessage(error: string): string {
try {
const issues: unknown = JSON.parse(error);
if (
Array.isArray(issues) &&
issues.length &&
issues.every(
(issue) => issue && typeof issue === "object" && typeof issue.message === "string",
)
) {
return [...new Set(issues.map((issue) => issue.message as string))].join(" ");
}
} catch {
// Ordinary error messages are already suitable for display.
}
return error;
}