@reformer/core 11.0.0-beta.3 → 11.0.0-beta.5
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.d.ts +1 -1
- package/dist/behaviors.js +37 -37
- package/dist/create-model-Dxh9cfLp.js +97 -0
- package/dist/form/behaviors/collections.d.ts +50 -0
- package/dist/form/behaviors/context.d.ts +23 -0
- package/dist/form/behaviors/index.d.ts +28 -0
- package/dist/form/behaviors/internals.d.ts +26 -0
- package/dist/form/{behaviors-node.d.ts → behaviors/node.d.ts} +3 -3
- package/dist/form/behaviors/operators.d.ts +51 -0
- package/dist/form/behaviors/types.d.ts +17 -0
- package/dist/form/create-core-form.d.ts +3 -3
- package/dist/form/create-form.d.ts +12 -10
- package/dist/form/factories/node-factory.d.ts +17 -16
- package/dist/form/index.d.ts +10 -16
- package/dist/form/nodes/array-node.d.ts +3 -3
- package/dist/form/nodes/field-node.d.ts +6 -3
- package/dist/form/nodes/group-node.d.ts +7 -7
- package/dist/form/nodes/model-array-node.d.ts +3 -3
- package/dist/form/types/contracts.d.ts +9 -6
- package/dist/form/types/deep-schema.d.ts +5 -5
- package/dist/form/types/validation-schema.d.ts +1 -1
- package/dist/form/{validation-config.d.ts → validation/config.d.ts} +3 -3
- package/dist/form/validation/context.d.ts +27 -0
- package/dist/form/{error-handler.d.ts → validation/error-handler.d.ts} +1 -1
- package/dist/form/validation/index.d.ts +23 -28
- package/dist/form/validation/operators.d.ts +42 -0
- package/dist/form/validation/run.d.ts +45 -0
- package/dist/form/{validation-strategy.d.ts → validation/strategy.d.ts} +2 -2
- package/dist/form/validation/types.d.ts +28 -0
- package/dist/form/{validation/validators → validators}/date-utils.d.ts +1 -1
- package/dist/form/{validation/validators → validators}/email.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/file-type.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/file-utils.d.ts +1 -1
- package/dist/form/{validation/validators → validators}/future-date.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/index.d.ts +7 -4
- package/dist/form/{validation/validators → validators}/integer.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/is-date.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/is-number.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/max-age.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/max-date.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/max-file-size.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/max-files.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/max-length.d.ts +7 -8
- package/dist/form/{validation/validators → validators}/max-total-file-size.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/max.d.ts +7 -8
- package/dist/form/{validation/validators → validators}/min-age.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/min-date.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/min-file-size.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/min-files.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/min-length.d.ts +7 -8
- package/dist/form/{validation/validators → validators}/min.d.ts +7 -8
- package/dist/form/{validation/validators → validators}/multiple-of.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/non-negative.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/non-zero.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/past-date.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/pattern.d.ts +7 -15
- package/dist/form/{validation/validators → validators}/phone.d.ts +6 -7
- package/dist/form/{validation/validators → validators}/required.d.ts +8 -13
- package/dist/form/{validation/validators → validators}/url.d.ts +8 -13
- package/dist/index.d.ts +7 -4
- package/dist/index.js +272 -94
- package/dist/{state/form-model.d.ts → model/create-model.d.ts} +0 -14
- package/dist/{state → model}/index.d.ts +10 -11
- package/dist/model/model-nodes.d.ts +60 -0
- package/dist/model/model-signals-proxy.d.ts +32 -0
- package/dist/model/model-value-proxy.d.ts +3 -0
- package/dist/{state → model}/safe-effect.d.ts +1 -1
- package/dist/model-signals-proxy-mV3WGdlO.js +233 -0
- package/dist/model.d.ts +2 -0
- package/dist/model.js +21 -0
- package/dist/{form → platforms/react}/hooks/types.d.ts +1 -1
- package/dist/{form → platforms/react}/hooks/use-form-bundle.d.ts +1 -1
- package/dist/{form → platforms/react}/hooks/use-form-validation.d.ts +3 -3
- package/dist/{form → platforms/react}/hooks/useArrayLength.d.ts +1 -1
- package/dist/{form → platforms/react}/hooks/useFormControl.d.ts +3 -3
- package/dist/{form → platforms/react}/hooks/useFormControlValue.d.ts +2 -2
- package/dist/platforms/react/index.d.ts +23 -0
- package/dist/signals.d.ts +1 -1
- package/dist/strategy-DA3JwxsR.js +170 -0
- package/dist/validation.d.ts +1 -1
- package/dist/validation.js +10 -165
- package/dist/validators/email.d.ts +1 -1
- package/dist/validators/future-date.d.ts +1 -1
- package/dist/validators/integer.d.ts +1 -1
- package/dist/validators/is-date.d.ts +1 -1
- package/dist/validators/is-number.d.ts +1 -1
- package/dist/validators/max-age.d.ts +1 -1
- package/dist/validators/max-date.d.ts +1 -1
- package/dist/validators/max-length.d.ts +1 -1
- package/dist/validators/max.d.ts +1 -1
- package/dist/validators/min-age.d.ts +1 -1
- package/dist/validators/min-date.d.ts +1 -1
- package/dist/validators/min-length.d.ts +1 -1
- package/dist/validators/min.d.ts +1 -1
- package/dist/validators/multiple-of.d.ts +1 -1
- package/dist/validators/non-negative.d.ts +1 -1
- package/dist/validators/non-zero.d.ts +1 -1
- package/dist/validators/past-date.d.ts +1 -1
- package/dist/validators/pattern.d.ts +1 -1
- package/dist/validators/phone.d.ts +1 -1
- package/dist/validators/required.d.ts +1 -1
- package/dist/validators/url.d.ts +1 -1
- package/dist/validators.d.ts +1 -1
- package/docs/llms/02-quick-start.md +6 -6
- package/docs/llms/03-api-signatures.md +3 -3
- package/docs/llms/05-common-mistakes.md +1 -1
- package/docs/llms/09-formschema.md +11 -11
- package/docs/llms/10-arrays.md +4 -4
- package/docs/llms/14-extended-mistakes.md +1 -1
- package/docs/llms/15-project-structure.md +8 -7
- package/docs/llms/16-ui-components.md +6 -6
- package/docs/llms/17-nonexistent-api.md +2 -2
- package/docs/llms/29-async-preload.md +4 -4
- package/docs/llms/30-type-safety-recipes.md +1 -1
- package/llms-index.json +1 -0
- package/llms.txt +2102 -262
- package/package.json +5 -4
- package/dist/form/behaviors.d.ts +0 -133
- package/dist/form/validation-schema.d.ts +0 -106
- package/dist/form/validators.d.ts +0 -11
- package/dist/form-model-DhW2HZOB.js +0 -323
- package/dist/state.d.ts +0 -2
- package/dist/state.js +0 -21
- package/dist/subscription-manager-705bls97.js +0 -171
- /package/dist/{state → form/nodes}/subscription-manager.d.ts +0 -0
- /package/dist/{state → model}/behaviors-value.d.ts +0 -0
- /package/dist/{state → model}/derived-registry.d.ts +0 -0
- /package/dist/{state → model}/types.d.ts +0 -0
- /package/dist/{behaviors-node-DGEFMTQu.js → node-DGEFMTQu.js} +0 -0
- /package/dist/{form → platforms/react}/hooks/useSignalSubscription.d.ts +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что дата не в прошлом.
|
|
4
4
|
*
|
|
@@ -10,14 +10,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
10
10
|
*
|
|
11
11
|
* @example Дата не в прошлом
|
|
12
12
|
* ```typescript
|
|
13
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
13
14
|
* import { required, futureDate } from '@reformer/core/validators';
|
|
14
15
|
*
|
|
15
|
-
* //
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* validators: [required(), futureDate({ message: 'Дата записи должна быть в будущем' })],
|
|
20
|
-
* },
|
|
16
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
17
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
18
|
+
* validate(model.$.appointmentDate, [required(), futureDate({ message: 'Дата записи должна быть в будущем' })]);
|
|
19
|
+
* });
|
|
21
20
|
* ```
|
|
22
21
|
*/
|
|
23
22
|
export declare function futureDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Точка входа сабпата `@reformer/core/validators` — все фабрики правил одним импортом.
|
|
3
3
|
*
|
|
4
|
-
* Все примитивы — фабрики, возвращающие чистый Validator<TForm, TField
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Все примитивы — фабрики, возвращающие чистый `Validator<TForm, TField>`; передаются вторым
|
|
5
|
+
* аргументом оператора `validate` внутри схемы валидации: `validate(model.$.age, [required(), min(18)])`.
|
|
6
|
+
* В layout-схему формы правила НЕ кладутся — поля `validators` у узла нет (снято в 7.0).
|
|
7
|
+
*
|
|
8
|
+
* Гранулярные сабпаты (`@reformer/core/validators/required` и ещё 20) собираются отдельными
|
|
9
|
+
* entry для tree-shaking; этот модуль отдаёт полный набор для случаев, когда правил много.
|
|
7
10
|
*/
|
|
8
11
|
export { required } from './required';
|
|
9
12
|
export { min } from './min';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что число — целое.
|
|
4
4
|
*
|
|
@@ -9,14 +9,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
9
9
|
*
|
|
10
10
|
* @example Проверка целого числа
|
|
11
11
|
* ```typescript
|
|
12
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
12
13
|
* import { required, integer } from '@reformer/core/validators';
|
|
13
14
|
*
|
|
14
|
-
* //
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* validators: [required(), integer({ message: 'Должно быть целым числом' })],
|
|
19
|
-
* },
|
|
15
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
16
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
17
|
+
* validate(model.$.count, [required(), integer({ message: 'Должно быть целым числом' })]);
|
|
18
|
+
* });
|
|
20
19
|
* ```
|
|
21
20
|
*/
|
|
22
21
|
export declare function integer<TForm = unknown, TField extends number | null | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что значение — валидная дата.
|
|
4
4
|
*
|
|
@@ -10,14 +10,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
10
10
|
*
|
|
11
11
|
* @example Проверка валидности даты
|
|
12
12
|
* ```typescript
|
|
13
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
13
14
|
* import { required, isDate } from '@reformer/core/validators';
|
|
14
15
|
*
|
|
15
|
-
* //
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* validators: [required(), isDate({ message: 'Введите корректную дату' })],
|
|
20
|
-
* },
|
|
16
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
17
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
18
|
+
* validate(model.$.eventDate, [required(), isDate({ message: 'Введите корректную дату' })]);
|
|
19
|
+
* });
|
|
21
20
|
* ```
|
|
22
21
|
*/
|
|
23
22
|
export declare function isDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что значение — конечное число (не NaN, не строка).
|
|
4
4
|
*
|
|
@@ -11,14 +11,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
11
11
|
*
|
|
12
12
|
* @example Проверка, что значение — число
|
|
13
13
|
* ```typescript
|
|
14
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
14
15
|
* import { required, isNumber } from '@reformer/core/validators';
|
|
15
16
|
*
|
|
16
|
-
* //
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* validators: [required(), isNumber({ message: 'Введите число' })],
|
|
21
|
-
* },
|
|
17
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
18
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
19
|
+
* validate(model.$.amount, [required(), isNumber({ message: 'Введите число' })]);
|
|
20
|
+
* });
|
|
22
21
|
* ```
|
|
23
22
|
*/
|
|
24
23
|
export declare function isNumber<TForm = unknown, TField extends number | null | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора максимального возраста (по дате рождения).
|
|
4
4
|
*
|
|
@@ -12,14 +12,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
12
12
|
*
|
|
13
13
|
* @example Максимальный возраст
|
|
14
14
|
* ```typescript
|
|
15
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
15
16
|
* import { maxAge } from '@reformer/core/validators';
|
|
16
17
|
*
|
|
17
|
-
* //
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* validators: [maxAge(100, { message: 'Проверьте дату рождения' })],
|
|
22
|
-
* },
|
|
18
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
19
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
20
|
+
* validate(model.$.birthDate, [maxAge(100, { message: 'Проверьте дату рождения' })]);
|
|
21
|
+
* });
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
24
|
export declare function maxAge<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(maxAgeValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора максимальной даты (включительно).
|
|
4
4
|
*
|
|
@@ -12,14 +12,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
12
12
|
*
|
|
13
13
|
* @example Максимальная дата
|
|
14
14
|
* ```typescript
|
|
15
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
15
16
|
* import { maxDate } from '@reformer/core/validators';
|
|
16
17
|
*
|
|
17
|
-
* //
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* validators: [maxDate(new Date(), { message: 'Дата не может быть в будущем' })],
|
|
22
|
-
* },
|
|
18
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
19
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
20
|
+
* validate(model.$.birthDate, [maxDate(new Date(), { message: 'Дата не может быть в будущем' })]);
|
|
21
|
+
* });
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
24
|
export declare function maxDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(maxDateValue: Date, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора максимального размера файла.
|
|
4
4
|
*
|
|
@@ -15,14 +15,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
15
15
|
*
|
|
16
16
|
* @example Ограничение размера вложений
|
|
17
17
|
* ```typescript
|
|
18
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
18
19
|
* import { maxFileSize } from '@reformer/core/validators';
|
|
19
20
|
*
|
|
20
|
-
* //
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* validators: [maxFileSize(5 * 1024 * 1024, { message: 'Файл больше 5 МБ' })],
|
|
25
|
-
* },
|
|
21
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
22
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
23
|
+
* validate(model.$.documents, [maxFileSize(5 * 1024 * 1024, { message: 'Файл больше 5 МБ' })]);
|
|
24
|
+
* });
|
|
26
25
|
* ```
|
|
27
26
|
*/
|
|
28
27
|
export declare function maxFileSize<TForm = unknown, TField = unknown>(maxSize: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора максимального количества файлов.
|
|
4
4
|
*
|
|
@@ -13,14 +13,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
13
13
|
*
|
|
14
14
|
* @example Не более трёх вложений
|
|
15
15
|
* ```typescript
|
|
16
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
16
17
|
* import { maxFiles } from '@reformer/core/validators';
|
|
17
18
|
*
|
|
18
|
-
* //
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* validators: [maxFiles(3, { message: 'Максимум 3 файла' })],
|
|
23
|
-
* },
|
|
19
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
20
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
21
|
+
* validate(model.$.documents, [maxFiles(3, { message: 'Максимум 3 файла' })]);
|
|
22
|
+
* });
|
|
24
23
|
* ```
|
|
25
24
|
*/
|
|
26
25
|
export declare function maxFiles<TForm = unknown, TField = unknown>(max: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора максимальной длины строки или массива.
|
|
4
4
|
*
|
|
@@ -13,15 +13,14 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
13
13
|
*
|
|
14
14
|
* @example Максимальная длина строки
|
|
15
15
|
* ```typescript
|
|
16
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
16
17
|
* import { maxLength } from '@reformer/core/validators';
|
|
17
18
|
*
|
|
18
|
-
* //
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* validators: [maxLength(500, { message: 'Максимум 500 символов' })],
|
|
24
|
-
* },
|
|
19
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
20
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
21
|
+
* validate(model.$.name, [maxLength(50)]);
|
|
22
|
+
* validate(model.$.bio, [maxLength(500, { message: 'Максимум 500 символов' })]);
|
|
23
|
+
* });
|
|
25
24
|
* ```
|
|
26
25
|
*/
|
|
27
26
|
export declare function maxLength<TForm = unknown, TField = unknown>(maxLen: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора суммарного размера всех файлов.
|
|
4
4
|
*
|
|
@@ -13,14 +13,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
13
13
|
*
|
|
14
14
|
* @example Суммарно не более 20 МБ
|
|
15
15
|
* ```typescript
|
|
16
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
16
17
|
* import { maxTotalFileSize } from '@reformer/core/validators';
|
|
17
18
|
*
|
|
18
|
-
* //
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* validators: [maxTotalFileSize(20 * 1024 * 1024, { message: 'Суммарно не более 20 МБ' })],
|
|
23
|
-
* },
|
|
19
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
20
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
21
|
+
* validate(model.$.documents, [maxTotalFileSize(20 * 1024 * 1024, { message: 'Суммарно не более 20 МБ' })]);
|
|
22
|
+
* });
|
|
24
23
|
* ```
|
|
25
24
|
*/
|
|
26
25
|
export declare function maxTotalFileSize<TForm = unknown, TField = unknown>(maxTotal: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора максимального числового значения.
|
|
4
4
|
*
|
|
@@ -11,15 +11,14 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
11
11
|
*
|
|
12
12
|
* @example Максимальное значение числового поля
|
|
13
13
|
* ```typescript
|
|
14
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
14
15
|
* import { required, max } from '@reformer/core/validators';
|
|
15
16
|
*
|
|
16
|
-
* //
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* validators: [required(), max(50, { message: 'Не более 50%' })],
|
|
22
|
-
* },
|
|
17
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
18
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
19
|
+
* validate(model.$.quantity, [max(100)]);
|
|
20
|
+
* validate(model.$.discount, [required(), max(50, { message: 'Не более 50%' })]);
|
|
21
|
+
* });
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
24
|
export declare function max<TForm = unknown, TField extends number | null | undefined = number>(maxValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора минимального возраста (по дате рождения).
|
|
4
4
|
*
|
|
@@ -12,14 +12,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
12
12
|
*
|
|
13
13
|
* @example Минимальный возраст
|
|
14
14
|
* ```typescript
|
|
15
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
15
16
|
* import { required, minAge } from '@reformer/core/validators';
|
|
16
17
|
*
|
|
17
|
-
* //
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* validators: [required(), minAge(18, { message: 'Вам должно быть не менее 18 лет' })],
|
|
22
|
-
* },
|
|
18
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
19
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
20
|
+
* validate(model.$.birthDate, [required(), minAge(18, { message: 'Вам должно быть не менее 18 лет' })]);
|
|
21
|
+
* });
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
24
|
export declare function minAge<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(minAgeValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора минимальной даты (включительно).
|
|
4
4
|
*
|
|
@@ -12,14 +12,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
12
12
|
*
|
|
13
13
|
* @example Минимальная дата
|
|
14
14
|
* ```typescript
|
|
15
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
15
16
|
* import { required, minDate } from '@reformer/core/validators';
|
|
16
17
|
*
|
|
17
|
-
* //
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* validators: [required(), minDate(new Date(), { message: 'Дата не раньше сегодня' })],
|
|
22
|
-
* },
|
|
18
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
19
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
20
|
+
* validate(model.$.startDate, [required(), minDate(new Date(), { message: 'Дата не раньше сегодня' })]);
|
|
21
|
+
* });
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
24
|
export declare function minDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(minDateValue: Date, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора минимального размера файла.
|
|
4
4
|
*
|
|
@@ -15,14 +15,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
15
15
|
*
|
|
16
16
|
* @example Отсев пустых файлов
|
|
17
17
|
* ```typescript
|
|
18
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
18
19
|
* import { minFileSize } from '@reformer/core/validators';
|
|
19
20
|
*
|
|
20
|
-
* //
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* validators: [minFileSize(1, { message: 'Файл пустой' })],
|
|
25
|
-
* },
|
|
21
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
22
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
23
|
+
* validate(model.$.documents, [minFileSize(1, { message: 'Файл пустой' })]);
|
|
24
|
+
* });
|
|
26
25
|
* ```
|
|
27
26
|
*/
|
|
28
27
|
export declare function minFileSize<TForm = unknown, TField = unknown>(minSize: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора минимального количества файлов.
|
|
4
4
|
*
|
|
@@ -13,14 +13,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
13
13
|
*
|
|
14
14
|
* @example Не менее двух документов
|
|
15
15
|
* ```typescript
|
|
16
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
16
17
|
* import { required, minFiles } from '@reformer/core/validators';
|
|
17
18
|
*
|
|
18
|
-
* //
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* validators: [required(), minFiles(2, { message: 'Приложите минимум 2 документа' })],
|
|
23
|
-
* },
|
|
19
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
20
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
21
|
+
* validate(model.$.documents, [required(), minFiles(2, { message: 'Приложите минимум 2 документа' })]);
|
|
22
|
+
* });
|
|
24
23
|
* ```
|
|
25
24
|
*/
|
|
26
25
|
export declare function minFiles<TForm = unknown, TField = unknown>(min: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора минимальной длины строки или массива.
|
|
4
4
|
*
|
|
@@ -13,15 +13,14 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
13
13
|
*
|
|
14
14
|
* @example Минимальная длина строки
|
|
15
15
|
* ```typescript
|
|
16
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
16
17
|
* import { required, minLength } from '@reformer/core/validators';
|
|
17
18
|
*
|
|
18
|
-
* //
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* validators: [required(), minLength(8, { message: 'Минимум 8 символов' })],
|
|
24
|
-
* },
|
|
19
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
20
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
21
|
+
* validate(model.$.name, [minLength(2)]);
|
|
22
|
+
* validate(model.$.password, [required(), minLength(8, { message: 'Минимум 8 символов' })]);
|
|
23
|
+
* });
|
|
25
24
|
* ```
|
|
26
25
|
*/
|
|
27
26
|
export declare function minLength<TForm = unknown, TField = unknown>(minLen: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора минимального числового значения.
|
|
4
4
|
*
|
|
@@ -11,15 +11,14 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
11
11
|
*
|
|
12
12
|
* @example Минимальное значение числового поля
|
|
13
13
|
* ```typescript
|
|
14
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
14
15
|
* import { required, min } from '@reformer/core/validators';
|
|
15
16
|
*
|
|
16
|
-
* //
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* validators: [required(), min(1, { message: 'Минимум 1' })],
|
|
22
|
-
* },
|
|
17
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
18
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
19
|
+
* validate(model.$.age, [min(18)]);
|
|
20
|
+
* validate(model.$.quantity, [required(), min(1, { message: 'Минимум 1' })]);
|
|
21
|
+
* });
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
24
|
export declare function min<TForm = unknown, TField extends number | null | undefined = number>(minValue: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что число кратно заданному.
|
|
4
4
|
*
|
|
@@ -11,14 +11,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
11
11
|
*
|
|
12
12
|
* @example Проверка кратности
|
|
13
13
|
* ```typescript
|
|
14
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
14
15
|
* import { multipleOf } from '@reformer/core/validators';
|
|
15
16
|
*
|
|
16
|
-
* //
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* validators: [multipleOf(0.5, { message: 'Только шаг 0.5' })],
|
|
21
|
-
* },
|
|
17
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
18
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
19
|
+
* validate(model.$.rating, [multipleOf(0.5, { message: 'Только шаг 0.5' })]);
|
|
20
|
+
* });
|
|
22
21
|
* ```
|
|
23
22
|
*/
|
|
24
23
|
export declare function multipleOf<TForm = unknown, TField extends number | null | undefined = number>(divisor: number, options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что число неотрицательное (`≥ 0`).
|
|
4
4
|
*
|
|
@@ -9,14 +9,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
9
9
|
*
|
|
10
10
|
* @example Проверка неотрицательности
|
|
11
11
|
* ```typescript
|
|
12
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
12
13
|
* import { nonNegative } from '@reformer/core/validators';
|
|
13
14
|
*
|
|
14
|
-
* //
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* validators: [nonNegative({ message: 'Баланс не может быть отрицательным' })],
|
|
19
|
-
* },
|
|
15
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
16
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
17
|
+
* validate(model.$.balance, [nonNegative({ message: 'Баланс не может быть отрицательным' })]);
|
|
18
|
+
* });
|
|
20
19
|
* ```
|
|
21
20
|
*/
|
|
22
21
|
export declare function nonNegative<TForm = unknown, TField extends number | null | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что число не равно нулю.
|
|
4
4
|
*
|
|
@@ -9,14 +9,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
9
9
|
*
|
|
10
10
|
* @example Проверка «не ноль»
|
|
11
11
|
* ```typescript
|
|
12
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
12
13
|
* import { nonZero } from '@reformer/core/validators';
|
|
13
14
|
*
|
|
14
|
-
* //
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* validators: [nonZero({ message: 'Не может быть нулём' })],
|
|
19
|
-
* },
|
|
15
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
16
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
17
|
+
* validate(model.$.divisor, [nonZero({ message: 'Не может быть нулём' })]);
|
|
18
|
+
* });
|
|
20
19
|
* ```
|
|
21
20
|
*/
|
|
22
21
|
export declare function nonZero<TForm = unknown, TField extends number | null | undefined = number>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора, проверяющего что дата не в будущем.
|
|
4
4
|
*
|
|
@@ -10,14 +10,13 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
10
10
|
*
|
|
11
11
|
* @example Дата не в будущем
|
|
12
12
|
* ```typescript
|
|
13
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
13
14
|
* import { required, pastDate } from '@reformer/core/validators';
|
|
14
15
|
*
|
|
15
|
-
* //
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* validators: [required(), pastDate({ message: 'Дата рождения не может быть в будущем' })],
|
|
20
|
-
* },
|
|
16
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
17
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
18
|
+
* validate(model.$.birthDate, [required(), pastDate({ message: 'Дата рождения не может быть в будущем' })]);
|
|
19
|
+
* });
|
|
21
20
|
* ```
|
|
22
21
|
*/
|
|
23
22
|
export declare function pastDate<TForm = unknown, TField extends string | Date | null | undefined = string | Date>(options?: ValidateOptions): Validator<TForm, TField>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Validator, ValidateOptions } from '
|
|
1
|
+
import { Validator, ValidateOptions } from '../types/validation-schema';
|
|
2
2
|
/**
|
|
3
3
|
* Фабрика валидатора регулярного выражения.
|
|
4
4
|
*
|
|
@@ -12,22 +12,14 @@ import { Validator, ValidateOptions } from '../../types/validation-schema';
|
|
|
12
12
|
*
|
|
13
13
|
* @example Проверка по регулярному выражению
|
|
14
14
|
* ```typescript
|
|
15
|
+
* import { defineValidationSchema, validate } from '@reformer/core/validation';
|
|
15
16
|
* import { required, pattern } from '@reformer/core/validators';
|
|
16
17
|
*
|
|
17
|
-
* //
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* },
|
|
23
|
-
* phone: {
|
|
24
|
-
* value: model.$.phone,
|
|
25
|
-
* component: InputMask,
|
|
26
|
-
* validators: [
|
|
27
|
-
* required(),
|
|
28
|
-
* pattern(/^\+7 \(\d{3}\) \d{3}-\d{2}-\d{2}$/, { message: 'Формат +7 (999) 123-45-67' }),
|
|
29
|
-
* ],
|
|
30
|
-
* },
|
|
18
|
+
* // Правила живут в отдельной схеме над МОДЕЛЬЮ — layout-схема валидаторов не несёт.
|
|
19
|
+
* const validation = defineValidationSchema<MyForm>(({ model }) => {
|
|
20
|
+
* validate(model.$.name, [pattern(/^[a-zA-Zа-яА-Я]+$/, { message: 'Только буквы' })]);
|
|
21
|
+
* validate(model.$.phone, [required(), pattern(/^\+7 \(\d{3}\) \d{3}-\d{2}-\d{2}$/, { message: 'Формат +7 (999) 123-45-67' })]);
|
|
22
|
+
* });
|
|
31
23
|
* ```
|
|
32
24
|
*/
|
|
33
25
|
export declare function pattern<TForm = unknown, TField extends string | null | undefined = string>(regex: RegExp, options?: ValidateOptions): Validator<TForm, TField>;
|