File size: 808 Bytes
f133948 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /** Better Auth signup error shape from authClient.signUp.email onError */
type SignUpErrorPayload = {
error?: {
message?: string;
statusText?: string;
status?: number;
code?: string;
};
};
/**
* Heuristic for duplicate-email signup failures.
* Used only to choose UX path — never show raw message to users (enumeration risk).
*/
export function isSignUpDuplicateError(error: SignUpErrorPayload): boolean {
const msg = `${error.error?.message ?? ""} ${error.error?.statusText ?? ""} ${error.error?.code ?? ""}`.toLowerCase();
if (error.error?.status === 409 || error.error?.status === 422) return true;
return (
msg.includes("already") ||
msg.includes("exists") ||
msg.includes("unique") ||
msg.includes("duplicate") ||
msg.includes("user_already")
);
}
|