@reformer/core 1.0.0-beta.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/behaviors/compute-from.js +3 -3
- package/dist/behaviors/enable-when.js +5 -5
- package/dist/behaviors/reset-when.js +1 -1
- package/dist/behaviors/revalidate-when.js +1 -1
- package/dist/behaviors/sync-fields.js +5 -5
- package/dist/behaviors/watch-field.js +3 -3
- package/dist/behaviors.js +2 -2
- package/dist/core/types/field-path.d.ts +2 -2
- package/dist/core/types/index.d.ts +1 -1
- package/dist/core/types/validation-schema.d.ts +21 -50
- package/dist/core/validation/core/index.d.ts +0 -1
- package/dist/core/validation/core/validate-async.d.ts +9 -15
- package/dist/core/validation/core/validate.d.ts +15 -15
- package/dist/core/validation/index.d.ts +5 -3
- package/dist/core/validation/validation-applicator.d.ts +2 -56
- package/dist/core/validation/validation-registry.d.ts +18 -16
- package/dist/core/validation/validators/array-validators.d.ts +6 -31
- package/dist/core/validation/validators/email.d.ts +5 -29
- package/dist/core/validation/validators/future-date.d.ts +6 -28
- package/dist/core/validation/validators/index.d.ts +12 -4
- package/dist/core/validation/validators/integer.d.ts +13 -0
- package/dist/core/validation/validators/is-date.d.ts +5 -28
- package/dist/core/validation/validators/is-number.d.ts +14 -0
- package/dist/core/validation/validators/max-age.d.ts +6 -29
- package/dist/core/validation/validators/max-date.d.ts +6 -29
- package/dist/core/validation/validators/max-length.d.ts +5 -30
- package/dist/core/validation/validators/max.d.ts +7 -29
- package/dist/core/validation/validators/min-age.d.ts +6 -29
- package/dist/core/validation/validators/min-date.d.ts +6 -29
- package/dist/core/validation/validators/min-length.d.ts +5 -30
- package/dist/core/validation/validators/min.d.ts +7 -29
- package/dist/core/validation/validators/multiple-of.d.ts +13 -0
- package/dist/core/validation/validators/non-negative.d.ts +13 -0
- package/dist/core/validation/validators/non-zero.d.ts +13 -0
- package/dist/core/validation/validators/past-date.d.ts +5 -28
- package/dist/core/validation/validators/pattern.d.ts +5 -32
- package/dist/core/validation/validators/phone.d.ts +9 -19
- package/dist/core/validation/validators/required.d.ts +10 -31
- package/dist/core/validation/validators/url.d.ts +13 -15
- package/dist/{index-D25LsbRm.js → index-DLh_Ryb2.js} +1 -1
- package/dist/index.js +465 -397
- package/dist/{registry-helpers-Bv_BJ1s-.js → registry-helpers-CLPXad2B.js} +152 -292
- package/dist/validators/email.js +7 -9
- package/dist/validators/future-date.js +11 -12
- package/dist/validators/integer.d.ts +2 -0
- package/dist/validators/integer.js +10 -0
- package/dist/validators/is-date.js +6 -7
- package/dist/validators/is-number.d.ts +2 -0
- package/dist/validators/is-number.js +10 -0
- package/dist/validators/max-age.js +11 -12
- package/dist/validators/max-date.js +11 -12
- package/dist/validators/max-length.js +12 -8
- package/dist/validators/max.js +5 -6
- package/dist/validators/min-age.js +10 -11
- package/dist/validators/min-date.js +12 -13
- package/dist/validators/min-length.js +12 -8
- package/dist/validators/min.js +6 -7
- package/dist/validators/multiple-of.d.ts +2 -0
- package/dist/validators/multiple-of.js +10 -0
- package/dist/validators/non-negative.d.ts +2 -0
- package/dist/validators/non-negative.js +10 -0
- package/dist/validators/non-zero.d.ts +2 -0
- package/dist/validators/non-zero.js +10 -0
- package/dist/validators/past-date.js +11 -12
- package/dist/validators/pattern.js +6 -7
- package/dist/validators/phone.js +14 -32
- package/dist/validators/required.js +9 -10
- package/dist/validators/url.js +19 -16
- package/dist/validators-xJyP-jLZ.js +169 -0
- package/dist/validators.js +54 -50
- package/llms.txt +505 -790
- package/package.json +20 -4
- package/dist/core/validation/core/validate-tree.d.ts +0 -35
- package/dist/core/validation/validation-context.d.ts +0 -86
- package/dist/core/validation/validators/number.d.ts +0 -31
- package/dist/validate-C3XiA_zf.js +0 -10
- package/dist/validators/number.d.ts +0 -2
- package/dist/validators/number.js +0 -35
- package/dist/validators-BGsNOgT1.js +0 -207
|
@@ -1,35 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора, проверяющего что дата не в прошлом.
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации
|
|
12
|
-
* @param options - Опции валидации (message, params)
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Базовое использование - дата события должна быть в будущем
|
|
17
|
-
* validationSchema: (path) => [
|
|
18
|
-
* futureDate(path.eventDate),
|
|
19
|
-
* ]
|
|
20
|
-
*
|
|
21
|
-
* // С кастомным сообщением
|
|
22
|
-
* futureDate(path.appointmentDate, { message: 'Дата записи должна быть в будущем' })
|
|
23
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются.
|
|
24
6
|
*
|
|
25
7
|
* @example
|
|
26
8
|
* ```typescript
|
|
27
|
-
*
|
|
28
|
-
* {
|
|
29
|
-
* code: 'date_past',
|
|
30
|
-
* message: 'Дата не может быть в прошлом',
|
|
31
|
-
* params: {}
|
|
32
|
-
* }
|
|
9
|
+
* validate(path.eventDate, futureDate());
|
|
10
|
+
* validate(path.appointmentDate, futureDate({ message: 'Дата записи должна быть в будущем' }));
|
|
33
11
|
* ```
|
|
34
12
|
*/
|
|
35
|
-
export declare function futureDate<TForm, TField extends string | Date | undefined = string | Date>(
|
|
13
|
+
export declare function futureDate<TForm = unknown, TField extends string | Date | undefined = string | Date>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Reusable
|
|
2
|
+
* Reusable validator factories.
|
|
3
|
+
*
|
|
4
|
+
* Все примитивы — фабрики, возвращающие чистый Validator<TForm, TField>.
|
|
5
|
+
* Использование: `validate(path.x, required())`, `validate(path.y, min(18))`.
|
|
3
6
|
*/
|
|
4
7
|
export { required } from './required';
|
|
5
8
|
export { min } from './min';
|
|
@@ -8,9 +11,13 @@ export { minLength } from './min-length';
|
|
|
8
11
|
export { maxLength } from './max-length';
|
|
9
12
|
export { email } from './email';
|
|
10
13
|
export { pattern } from './pattern';
|
|
11
|
-
export { url } from './url';
|
|
12
|
-
export { phone, type PhoneFormat } from './phone';
|
|
13
|
-
export {
|
|
14
|
+
export { url, type UrlValidatorOptions } from './url';
|
|
15
|
+
export { phone, type PhoneFormat, type PhoneValidatorOptions } from './phone';
|
|
16
|
+
export { isNumber } from './is-number';
|
|
17
|
+
export { integer } from './integer';
|
|
18
|
+
export { multipleOf } from './multiple-of';
|
|
19
|
+
export { nonNegative } from './non-negative';
|
|
20
|
+
export { nonZero } from './non-zero';
|
|
14
21
|
export { isDate } from './is-date';
|
|
15
22
|
export { minDate } from './min-date';
|
|
16
23
|
export { maxDate } from './max-date';
|
|
@@ -18,3 +25,4 @@ export { pastDate } from './past-date';
|
|
|
18
25
|
export { futureDate } from './future-date';
|
|
19
26
|
export { minAge } from './min-age';
|
|
20
27
|
export { maxAge } from './max-age';
|
|
28
|
+
export { notEmpty } from './array-validators';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что число — целое.
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения и не-числа пропускаются (используйте `required` и `isNumber`).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* validate(path.age, integer());
|
|
10
|
+
* validate(path.count, integer({ message: 'Должно быть целым числом' }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function integer<TForm = unknown, TField extends number | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,36 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора, проверяющего что значение — валидная дата.
|
|
5
4
|
*
|
|
6
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
7
6
|
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации
|
|
12
|
-
* @param options - Опции валидации (message, params)
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Базовое использование
|
|
17
|
-
* validationSchema: (path) => [
|
|
18
|
-
* isDate(path.birthDate),
|
|
19
|
-
* isDate(path.eventDate),
|
|
20
|
-
* ]
|
|
21
|
-
*
|
|
22
|
-
* // С кастомным сообщением
|
|
23
|
-
* isDate(path.birthDate, { message: 'Введите корректную дату' })
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
7
|
* @example
|
|
27
8
|
* ```typescript
|
|
28
|
-
*
|
|
29
|
-
* {
|
|
30
|
-
* code: 'date_invalid',
|
|
31
|
-
* message: 'Неверный формат даты',
|
|
32
|
-
* params: {}
|
|
33
|
-
* }
|
|
9
|
+
* validate(path.birthDate, isDate());
|
|
10
|
+
* validate(path.eventDate, isDate({ message: 'Введите корректную дату' }));
|
|
34
11
|
* ```
|
|
35
12
|
*/
|
|
36
|
-
export declare function isDate<TForm, TField extends string | Date | undefined = string | Date>(
|
|
13
|
+
export declare function isDate<TForm = unknown, TField extends string | Date | undefined = string | Date>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что значение — конечное число (не NaN, не строка).
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения (`null`/`undefined`) пропускаются (используйте `required` для обязательности).
|
|
6
|
+
* В отличие от других number-валидаторов, **не** пропускает не-числа — это его задача.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* validate(path.amount, isNumber());
|
|
11
|
+
* validate(path.amount, isNumber({ message: 'Введите число' }));
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function isNumber<TForm = unknown, TField extends number | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,36 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора максимального возраста (по дате рождения).
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации (дата рождения)
|
|
12
|
-
* @param maxAgeValue - Максимально допустимый возраст в годах
|
|
13
|
-
* @param options - Опции валидации (message, params)
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Базовое использование - максимум 65 лет
|
|
18
|
-
* validationSchema: (path) => [
|
|
19
|
-
* maxAge(path.birthDate, 65),
|
|
20
|
-
* ]
|
|
21
|
-
*
|
|
22
|
-
* // С кастомным сообщением
|
|
23
|
-
* maxAge(path.birthDate, 100, { message: 'Проверьте правильность даты рождения' })
|
|
24
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются.
|
|
25
6
|
*
|
|
26
7
|
* @example
|
|
27
8
|
* ```typescript
|
|
28
|
-
*
|
|
29
|
-
* {
|
|
30
|
-
* code: 'date_max_age',
|
|
31
|
-
* message: 'Максимальный возраст: 65 лет',
|
|
32
|
-
* params: { maxAge: 65, currentAge: 70 }
|
|
33
|
-
* }
|
|
9
|
+
* validate(path.birthDate, maxAge(65));
|
|
10
|
+
* validate(path.birthDate, maxAge(100, { message: 'Проверьте дату рождения' }));
|
|
34
11
|
* ```
|
|
35
12
|
*/
|
|
36
|
-
export declare function maxAge<TForm, TField extends string | Date | null | undefined = string | Date>(
|
|
13
|
+
export declare function maxAge<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(maxAgeValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,36 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора максимальной даты (включительно).
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации
|
|
12
|
-
* @param maxDateValue - Максимально допустимая дата (включительно)
|
|
13
|
-
* @param options - Опции валидации (message, params)
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Базовое использование
|
|
18
|
-
* validationSchema: (path) => [
|
|
19
|
-
* maxDate(path.birthDate, new Date()), // Не позже сегодня
|
|
20
|
-
* ]
|
|
21
|
-
*
|
|
22
|
-
* // С кастомным сообщением
|
|
23
|
-
* maxDate(path.endDate, new Date('2025-12-31'), { message: 'Дата не может быть позже конца года' })
|
|
24
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются.
|
|
25
6
|
*
|
|
26
7
|
* @example
|
|
27
8
|
* ```typescript
|
|
28
|
-
* //
|
|
29
|
-
*
|
|
30
|
-
* code: 'date_max',
|
|
31
|
-
* message: 'Дата должна быть не позднее 31.12.2025',
|
|
32
|
-
* params: { maxDate: Date }
|
|
33
|
-
* }
|
|
9
|
+
* validate(path.birthDate, maxDate(new Date())); // не позже сегодня
|
|
10
|
+
* validate(path.endDate, maxDate(new Date('2025-12-31')));
|
|
34
11
|
* ```
|
|
35
12
|
*/
|
|
36
|
-
export declare function maxDate<TForm, TField extends string | Date | null | undefined = string | Date>(
|
|
13
|
+
export declare function maxDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(maxDateValue: Date, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,38 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора максимальной длины строки или массива.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что длина строки не превышает указанный максимум.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param maxLen - Максимальная допустимая длина строки
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Базовое использование
|
|
19
|
-
* validationSchema: (path) => [
|
|
20
|
-
* maxLength(path.name, 50),
|
|
21
|
-
* maxLength(path.bio, 500),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* maxLength(path.bio, 500, { message: 'Максимум 500 символов' })
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
7
|
* @example
|
|
29
8
|
* ```typescript
|
|
30
|
-
*
|
|
31
|
-
* {
|
|
32
|
-
* code: 'maxLength',
|
|
33
|
-
* message: 'Максимальная длина: 500 символов',
|
|
34
|
-
* params: { maxLength: 500, actualLength: 512 }
|
|
35
|
-
* }
|
|
9
|
+
* validate(path.name, maxLength(50));
|
|
10
|
+
* validate(path.bio, maxLength(500, { message: 'Max 500 символов' }));
|
|
36
11
|
* ```
|
|
37
12
|
*/
|
|
38
|
-
export declare function maxLength<TForm, TField
|
|
13
|
+
export declare function maxLength<TForm = unknown, TField = unknown>(maxLen: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,38 +1,16 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора максимального числового значения.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что числовое значение не превышает указанный максимум.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param maxValue - Максимально допустимое значение
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
7
|
* @example
|
|
17
8
|
* ```typescript
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* max(path.quantity, 100),
|
|
21
|
-
* max(path.discount, 50),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* max(path.quantity, 100, { message: 'Максимум 100 единиц' })
|
|
26
|
-
* ```
|
|
9
|
+
* import { validate } from '@reformer/core';
|
|
10
|
+
* import { max } from '@reformer/core/validators';
|
|
27
11
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* // Ошибка валидации
|
|
31
|
-
* {
|
|
32
|
-
* code: 'max',
|
|
33
|
-
* message: 'Максимальное значение: 100',
|
|
34
|
-
* params: { max: 100, actual: 150 }
|
|
35
|
-
* }
|
|
12
|
+
* validate(path.quantity, max(100));
|
|
13
|
+
* validate(path.discount, max(50, { message: 'Не более 50%' }));
|
|
36
14
|
* ```
|
|
37
15
|
*/
|
|
38
|
-
export declare function max<TForm, TField extends number |
|
|
16
|
+
export declare function max<TForm = unknown, TField extends number | undefined = number>(maxValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,36 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимального возраста (по дате рождения).
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации (дата рождения)
|
|
12
|
-
* @param minAgeValue - Минимально допустимый возраст в годах
|
|
13
|
-
* @param options - Опции валидации (message, params)
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Базовое использование - минимум 18 лет
|
|
18
|
-
* validationSchema: (path) => [
|
|
19
|
-
* minAge(path.birthDate, 18),
|
|
20
|
-
* ]
|
|
21
|
-
*
|
|
22
|
-
* // С кастомным сообщением
|
|
23
|
-
* minAge(path.birthDate, 21, { message: 'Вам должно быть не менее 21 года' })
|
|
24
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются.
|
|
25
6
|
*
|
|
26
7
|
* @example
|
|
27
8
|
* ```typescript
|
|
28
|
-
*
|
|
29
|
-
* {
|
|
30
|
-
* code: 'date_min_age',
|
|
31
|
-
* message: 'Минимальный возраст: 18 лет',
|
|
32
|
-
* params: { minAge: 18, currentAge: 16 }
|
|
33
|
-
* }
|
|
9
|
+
* validate(path.birthDate, minAge(18));
|
|
10
|
+
* validate(path.birthDate, minAge(21, { message: 'Вам должно быть не менее 21 года' }));
|
|
34
11
|
* ```
|
|
35
12
|
*/
|
|
36
|
-
export declare function minAge<TForm, TField extends string | Date | null | undefined = string | Date>(
|
|
13
|
+
export declare function minAge<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(minAgeValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,36 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимальной даты (включительно).
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации
|
|
12
|
-
* @param minDateValue - Минимально допустимая дата (включительно)
|
|
13
|
-
* @param options - Опции валидации (message, params)
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Базовое использование
|
|
18
|
-
* validationSchema: (path) => [
|
|
19
|
-
* minDate(path.eventDate, new Date('2024-01-01')),
|
|
20
|
-
* ]
|
|
21
|
-
*
|
|
22
|
-
* // С кастомным сообщением
|
|
23
|
-
* minDate(path.startDate, new Date(), { message: 'Дата должна быть не раньше сегодня' })
|
|
24
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются (используйте `required` и `isDate`).
|
|
25
6
|
*
|
|
26
7
|
* @example
|
|
27
8
|
* ```typescript
|
|
28
|
-
*
|
|
29
|
-
* {
|
|
30
|
-
* code: 'date_min',
|
|
31
|
-
* message: 'Дата должна быть не ранее 01.01.2024',
|
|
32
|
-
* params: { minDate: Date }
|
|
33
|
-
* }
|
|
9
|
+
* validate(path.eventDate, minDate(new Date('2024-01-01')));
|
|
10
|
+
* validate(path.startDate, minDate(new Date(), { message: 'Дата должна быть не раньше сегодня' }));
|
|
34
11
|
* ```
|
|
35
12
|
*/
|
|
36
|
-
export declare function minDate<TForm, TField extends string | Date | null | undefined = string | Date>(
|
|
13
|
+
export declare function minDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(minDateValue: Date, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,38 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимальной длины строки или массива.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что длина строки не меньше указанного минимума.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param minLen - Минимальная допустимая длина строки
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Базовое использование
|
|
19
|
-
* validationSchema: (path) => [
|
|
20
|
-
* minLength(path.name, 2),
|
|
21
|
-
* minLength(path.password, 8),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* minLength(path.password, 8, { message: 'Пароль должен быть не менее 8 символов' })
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
7
|
* @example
|
|
29
8
|
* ```typescript
|
|
30
|
-
*
|
|
31
|
-
* {
|
|
32
|
-
* code: 'minLength',
|
|
33
|
-
* message: 'Минимальная длина: 8 символов',
|
|
34
|
-
* params: { minLength: 8, actualLength: 3 }
|
|
35
|
-
* }
|
|
9
|
+
* validate(path.name, minLength(2));
|
|
10
|
+
* validate(path.password, minLength(8, { message: 'Min 8 символов' }));
|
|
36
11
|
* ```
|
|
37
12
|
*/
|
|
38
|
-
export declare function minLength<TForm, TField
|
|
13
|
+
export declare function minLength<TForm = unknown, TField = unknown>(minLen: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,38 +1,16 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора минимального числового значения.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что числовое значение не меньше указанного минимума.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param minValue - Минимально допустимое значение
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
7
|
* @example
|
|
17
8
|
* ```typescript
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* min(path.age, 18),
|
|
21
|
-
* min(path.quantity, 1),
|
|
22
|
-
* ]
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* min(path.age, 18, { message: 'Вам должно быть не менее 18 лет' })
|
|
26
|
-
* ```
|
|
9
|
+
* import { validate } from '@reformer/core';
|
|
10
|
+
* import { min } from '@reformer/core/validators';
|
|
27
11
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* // Ошибка валидации
|
|
31
|
-
* {
|
|
32
|
-
* code: 'min',
|
|
33
|
-
* message: 'Минимальное значение: 18',
|
|
34
|
-
* params: { min: 18, actual: 16 }
|
|
35
|
-
* }
|
|
12
|
+
* validate(path.age, min(18));
|
|
13
|
+
* validate(path.quantity, min(1, { message: 'Минимум 1' }));
|
|
36
14
|
* ```
|
|
37
15
|
*/
|
|
38
|
-
export declare function min<TForm, TField extends number |
|
|
16
|
+
export declare function min<TForm = unknown, TField extends number | undefined = number>(minValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что число кратно заданному.
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения и не-числа пропускаются (используйте `required` и `isNumber`).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* validate(path.price, multipleOf(0.01));
|
|
10
|
+
* validate(path.rating, multipleOf(0.5, { message: 'Только шаг 0.5' }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function multipleOf<TForm = unknown, TField extends number | undefined = number>(divisor: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что число неотрицательное (`≥ 0`).
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения и не-числа пропускаются (используйте `required` и `isNumber`).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* validate(path.quantity, nonNegative());
|
|
10
|
+
* validate(path.balance, nonNegative({ message: 'Баланс не может быть отрицательным' }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function nonNegative<TForm = unknown, TField extends number | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика валидатора, проверяющего что число не равно нулю.
|
|
4
|
+
*
|
|
5
|
+
* Пустые значения и не-числа пропускаются (используйте `required` и `isNumber`).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* validate(path.quantity, nonZero());
|
|
10
|
+
* validate(path.divisor, nonZero({ message: 'Не может быть нулём' }));
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function nonZero<TForm = unknown, TField extends number | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,35 +1,12 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора, проверяющего что дата не в будущем.
|
|
5
4
|
*
|
|
6
|
-
* Пустые
|
|
7
|
-
*
|
|
8
|
-
* @group Validation
|
|
9
|
-
* @category Validators
|
|
10
|
-
*
|
|
11
|
-
* @param fieldPath - Путь к полю для валидации
|
|
12
|
-
* @param options - Опции валидации (message, params)
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Базовое использование - дата рождения не может быть в будущем
|
|
17
|
-
* validationSchema: (path) => [
|
|
18
|
-
* pastDate(path.birthDate),
|
|
19
|
-
* ]
|
|
20
|
-
*
|
|
21
|
-
* // С кастомным сообщением
|
|
22
|
-
* pastDate(path.birthDate, { message: 'Дата рождения не может быть в будущем' })
|
|
23
|
-
* ```
|
|
5
|
+
* Пустые и невалидные даты пропускаются.
|
|
24
6
|
*
|
|
25
7
|
* @example
|
|
26
8
|
* ```typescript
|
|
27
|
-
*
|
|
28
|
-
* {
|
|
29
|
-
* code: 'date_future',
|
|
30
|
-
* message: 'Дата не может быть в будущем',
|
|
31
|
-
* params: {}
|
|
32
|
-
* }
|
|
9
|
+
* validate(path.birthDate, pastDate({ message: 'Дата рождения не может быть в будущем' }));
|
|
33
10
|
* ```
|
|
34
11
|
*/
|
|
35
|
-
export declare function pastDate<TForm, TField extends string | Date | undefined = string | Date>(
|
|
12
|
+
export declare function pastDate<TForm = unknown, TField extends string | Date | undefined = string | Date>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,40 +1,13 @@
|
|
|
1
|
-
import { ValidateOptions } from '../../types/validation-schema';
|
|
2
|
-
import { FieldPathNode } from '../../types';
|
|
1
|
+
import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Фабрика валидатора регулярного выражения.
|
|
5
4
|
*
|
|
6
|
-
* Проверяет, что значение соответствует указанному регулярному выражению.
|
|
7
5
|
* Пустые значения пропускаются (используйте `required` для обязательности).
|
|
8
6
|
*
|
|
9
|
-
* @group Validation
|
|
10
|
-
* @category Validators
|
|
11
|
-
*
|
|
12
|
-
* @param fieldPath - Путь к полю для валидации
|
|
13
|
-
* @param regex - Регулярное выражение для проверки
|
|
14
|
-
* @param options - Опции валидации (message, params)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Только буквы
|
|
19
|
-
* pattern(path.name, /^[а-яА-Яa-zA-Z]+$/)
|
|
20
|
-
*
|
|
21
|
-
* // Только цифры
|
|
22
|
-
* pattern(path.code, /^\d+$/)
|
|
23
|
-
*
|
|
24
|
-
* // С кастомным сообщением
|
|
25
|
-
* pattern(path.username, /^[a-z0-9_]+$/i, {
|
|
26
|
-
* message: 'Только латинские буквы, цифры и подчёркивание'
|
|
27
|
-
* })
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
7
|
* @example
|
|
31
8
|
* ```typescript
|
|
32
|
-
*
|
|
33
|
-
* {
|
|
34
|
-
* code: 'pattern',
|
|
35
|
-
* message: 'Значение не соответствует требуемому формату',
|
|
36
|
-
* params: { pattern: '^[a-z]+$' }
|
|
37
|
-
* }
|
|
9
|
+
* validate(path.name, pattern(/^[а-яА-Яa-zA-Z]+$/));
|
|
10
|
+
* validate(path.code, pattern(/^\d+$/, { message: 'Только цифры' }));
|
|
38
11
|
* ```
|
|
39
12
|
*/
|
|
40
|
-
export declare function pattern<TForm, TField extends string |
|
|
13
|
+
export declare function pattern<TForm = unknown, TField extends string | undefined = string>(regex: RegExp, options?: ValidateOptions): Validator<TForm, TField>;
|