import { type InferIssue } from "valibot"; type ValidationError = { expected: string; received: string; message: string; path: string; }; /** * The CodexError which can be error object of 3 types: * `error`: Object containing the error message * `api`: Object containing the api error message and the status code * `validation`: Object containing the error message and a field `errors` of type ValidationError * containing the error message for each fields. */ export type CodexError = | { type: "error"; message: string; } | { type: "api"; message: string; status: number; } | { type: "validation"; message: string; errors: ValidationError[]; }; export const CodexValibotIssuesMap = (issues: InferIssue[]) => issues.map((i) => ({ expected: i.expected, received: i.received, message: i.message, path: i.path.map((item: { key: string }) => item.key).join("."), }));