update validation

This commit is contained in:
smanylov
2026-01-10 15:44:37 +07:00
parent 31af7036a3
commit 73a349e01d
4 changed files with 22 additions and 7 deletions
+8 -4
View File
@@ -1,4 +1,6 @@
import * as z from 'zod';
//@ts-ignore
import validator from 'validator';
interface FieldConfig {
maxSize?: { value: number; message: string };
@@ -15,7 +17,7 @@ interface ValidationConfig {
[key: string]: FieldConfig;
}
const EMAIL_REGEX = /^([a-z0-9.\-_]+|[а-яё0-9.\-_]+)@(([a-z0-9.\-]+)\.([a-z]{2,})|([a-z0-9.\-]+)\.([а-яё]{2,})|([а-яё0-9.\-]+)\.([a-z]{2,})|([а-яё0-9.\-]+)\.([а-яё]{2,}))$/i;
/* const EMAIL_REGEX = /^([a-z0-9.\-_]+|[а-яё0-9.\-_]+)@(([a-z0-9.\-]+)\.([a-z]{2,})|([a-z0-9.\-]+)\.([а-яё]{2,})|([а-яё0-9.\-]+)\.([a-z]{2,})|([а-яё0-9.\-]+)\.([а-яё]{2,}))$/i; */
export function createValidationSchema(config: ValidationConfig) {
const schema: Record<string, any> = {};
@@ -64,11 +66,13 @@ export function createValidationSchema(config: ValidationConfig) {
);
}
// Валидация email формата (если включено)
if (config.email.emailValidation?.value) {
emailSchema = emailSchema.refine(
(value) => EMAIL_REGEX.test(value),
{ message: config.email.emailValidation.message || 'register-error-email-invalid' }
(value) => validator.isEmail(value, {
allow_utf8_local_part: true,
require_tld: true,
}),
{ message: config.email.emailValidation.message }
);
}