clean up error messages

This commit is contained in:
Josh Hawkins 2026-02-01 12:44:05 -06:00
parent f00a6af905
commit 3e708255a7
2 changed files with 0 additions and 67 deletions

View File

@ -4,49 +4,6 @@
import type { ErrorTransformer } from "@rjsf/utils";
import type { i18n as I18n } from "i18next";
export interface ErrorMessageMap {
[keyword: string]: string | ((params: Record<string, unknown>) => string);
}
// Default error messages for common validation keywords
export const defaultErrorMessages: ErrorMessageMap = {
required: "This field is required",
type: (params) => {
const expectedType = params.type as string;
return `Expected ${expectedType} value`;
},
minimum: (params) => `Must be at least ${params.limit}`,
maximum: (params) => `Must be at most ${params.limit}`,
minLength: (params) => `Must be at least ${params.limit} characters`,
maxLength: (params) => `Must be at most ${params.limit} characters`,
pattern: "Invalid format",
format: (params) => {
const format = params.format as string;
const formatLabels: Record<string, string> = {
email: "Invalid email address",
uri: "Invalid URL",
"date-time": "Invalid date/time format",
ipv4: "Invalid IP address",
ipv6: "Invalid IPv6 address",
};
return formatLabels[format] || `Invalid ${format} format`;
},
enum: (params) => {
const allowedValues = params.allowedValues as unknown;
if (Array.isArray(allowedValues)) {
return `Must be one of: ${allowedValues.join(", ")}`;
}
return "Must be one of the allowed values";
},
const: "Value does not match expected constant",
uniqueItems: "All items must be unique",
minItems: (params) => `Must have at least ${params.limit} items`,
maxItems: (params) => `Must have at most ${params.limit} items`,
additionalProperties: "Unknown property is not allowed",
oneOf: "Must match exactly one of the allowed schemas",
anyOf: "Must match at least one of the allowed schemas",
};
/**
* Creates an error transformer function for RJSF
* Transforms technical JSON Schema errors into user-friendly messages
@ -54,23 +11,6 @@ export const defaultErrorMessages: ErrorMessageMap = {
export function createErrorTransformer(i18n: I18n): ErrorTransformer {
const t = i18n.t.bind(i18n);
const getDefaultMessage = (
errorType: string,
params: Record<string, unknown>,
): string | undefined => {
const template = defaultErrorMessages[errorType];
if (!template) {
return undefined;
}
if (typeof template === "function") {
return template(params);
}
return template;
};
const normalizeParams = (
params: Record<string, unknown> | undefined,
): Record<string, unknown> => {
@ -138,11 +78,6 @@ export function createErrorTransformer(i18n: I18n): ErrorTransformer {
}
}
// Fall back to English defaults
if (!message) {
message = getDefaultMessage(errorType, normalizedParams);
}
if (!message) {
return error;
}

View File

@ -14,6 +14,4 @@ export {
createErrorTransformer,
transformPydanticErrors,
extractFieldPath,
defaultErrorMessages,
} from "./errorMessages";
export type { ErrorMessageMap } from "./errorMessages";