@astral/validations 4.14.3 → 4.14.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/any/any.d.ts +1 -1
- package/any/any.js +1 -1
- package/array/array.d.ts +1 -1
- package/array/array.js +1 -1
- package/arrayItem/arrayItem.d.ts +1 -1
- package/arrayItem/arrayItem.js +1 -1
- package/boolean/boolean.d.ts +1 -1
- package/boolean/boolean.js +1 -1
- package/containsDifferentCases/containsDifferentCases.d.ts +2 -2
- package/containsDifferentCases/containsDifferentCases.js +1 -1
- package/containsNumbers/containsNumbers.d.ts +2 -2
- package/containsNumbers/containsNumbers.js +1 -1
- package/containsPunctuationMarks/containsPunctuationMarks.d.ts +2 -2
- package/containsPunctuationMarks/containsPunctuationMarks.js +1 -1
- package/core/compose/compose.d.ts +1 -1
- package/core/compose/compose.js +1 -1
- package/core/context/createContext/createContext.d.ts +1 -1
- package/core/context/createContext/createContext.js +1 -1
- package/core/context/types.d.ts +8 -8
- package/core/errors/ArrayError/ArrayError.d.ts +3 -3
- package/core/errors/ArrayError/ArrayError.js +1 -1
- package/core/errors/ArrayError/createArrayError/createArrayError.d.ts +1 -1
- package/core/errors/ArrayError/createArrayError/createArrayError.js +1 -1
- package/core/errors/ErrorMap/ErrorMap.d.ts +4 -4
- package/core/errors/ErrorMap/ErrorMap.js +1 -1
- package/core/errors/ErrorMap/createErrorMap/createErrorMap.d.ts +1 -1
- package/core/errors/ErrorMap/createErrorMap/createErrorMap.js +1 -1
- package/core/errors/SimpleError/SimpleError.d.ts +2 -2
- package/core/errors/SimpleError/SimpleError.js +1 -1
- package/core/errors/SimpleError/createSimpleError/createSimpleError.d.ts +1 -1
- package/core/errors/SimpleError/createSimpleError/createSimpleError.js +1 -1
- package/core/errors/createErrorCode/createErrorCode.d.ts +1 -1
- package/core/errors/createErrorCode/createErrorCode.js +1 -1
- package/core/errors/types.d.ts +3 -3
- package/core/guard/createGuard/createGuard.d.ts +10 -10
- package/core/rule/createRule/createRule.d.ts +4 -4
- package/core/rule/createRule/createRule.js +1 -1
- package/core/rule/required/required.d.ts +2 -2
- package/core/rule/required/required.js +1 -1
- package/core/rule/types.d.ts +5 -5
- package/core/types.d.ts +2 -2
- package/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.d.ts +1 -1
- package/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.js +1 -1
- package/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.d.ts +1 -1
- package/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.js +1 -1
- package/core/utils/isNoDoubleZeroStart/isNoDoubleZeroStart.d.ts +1 -1
- package/core/utils/isNoDoubleZeroStart/isNoDoubleZeroStart.js +1 -1
- package/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.d.ts +1 -1
- package/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.js +1 -1
- package/core/utils/isStringOfZeros/isStringOfZeros.d.ts +1 -1
- package/core/utils/isStringOfZeros/isStringOfZeros.js +1 -1
- package/core/utils/isValidFullNameLength/isValidFullNameLength.d.ts +1 -1
- package/core/utils/isValidFullNameLength/isValidFullNameLength.js +1 -1
- package/core/utils/resetTime/resetTime.d.ts +1 -1
- package/core/utils/resetTime/resetTime.js +1 -1
- package/date/date.d.ts +1 -1
- package/date/date.js +1 -1
- package/deepPartial/deepPartial.d.ts +1 -1
- package/deepPartial/deepPartial.js +1 -1
- package/email/email.d.ts +4 -4
- package/email/email.js +1 -1
- package/enabled/enabled.d.ts +2 -2
- package/enabled/enabled.js +1 -1
- package/guid/guid.d.ts +2 -2
- package/guid/guid.js +1 -1
- package/innFL/constants.js +1 -1
- package/innFL/innFL.d.ts +2 -2
- package/innFL/innFL.js +1 -1
- package/innIP/constants.js +1 -1
- package/innIP/innIP.d.ts +2 -2
- package/innIP/innIP.js +1 -1
- package/innTwelveSymbols/innTwelveSymbols.d.ts +2 -2
- package/innTwelveSymbols/innTwelveSymbols.js +1 -1
- package/innUL/constants.js +1 -1
- package/innUL/innUL.d.ts +2 -2
- package/innUL/innUL.js +1 -1
- package/integer/integer.d.ts +1 -1
- package/kpp/kpp.d.ts +2 -2
- package/kpp/kpp.js +1 -1
- package/length/length.d.ts +2 -2
- package/length/length.js +1 -1
- package/max/max.d.ts +2 -2
- package/min/min.d.ts +2 -2
- package/minYearsOld/minYearsOld.d.ts +2 -2
- package/minYearsOld/minYearsOld.js +1 -1
- package/mobilePhone/mobilePhone.d.ts +1 -1
- package/number/number.d.ts +1 -1
- package/number/number.js +1 -1
- package/object/isEmptyErrors/isEmptyErrors.d.ts +1 -1
- package/object/isEmptyErrors/isEmptyErrors.js +1 -1
- package/object/object.d.ts +5 -5
- package/object/object.js +1 -1
- package/object/objectAsync/objectAsync.d.ts +5 -5
- package/object/objectAsync/objectAsync.js +1 -1
- package/ogrnIP/ogrnIP.d.ts +2 -2
- package/ogrnIP/ogrnIP.js +1 -1
- package/ogrnUL/ogrnUL.d.ts +2 -2
- package/ogrnUL/ogrnUL.js +1 -1
- package/onlyNumber/onlyNumber.d.ts +2 -2
- package/onlyNumber/onlyNumber.js +1 -1
- package/optional/optional.d.ts +1 -1
- package/optional/optional.js +1 -1
- package/optional/optionalAsync/optionalAsync.d.ts +1 -1
- package/optional/optionalAsync/optionalAsync.js +1 -1
- package/or/or.d.ts +1 -1
- package/or/or.js +1 -1
- package/package.json +1 -1
- package/partial/partial.d.ts +1 -1
- package/partial/partial.js +1 -1
- package/passportCode/passportCode.d.ts +2 -2
- package/passportCode/passportCode.js +1 -1
- package/passportNumber/passportNumber.d.ts +2 -2
- package/passportNumber/passportNumber.js +1 -1
- package/passportSeries/passportSeries.d.ts +2 -2
- package/passportSeries/passportSeries.js +1 -1
- package/pattern/pattern.d.ts +2 -2
- package/pattern/pattern.js +1 -1
- package/personName/personName.d.ts +2 -2
- package/personName/personName.js +1 -1
- package/personPatronymic/personPatronymic.d.ts +2 -2
- package/personPatronymic/personPatronymic.js +1 -1
- package/personSurname/personSurname.d.ts +2 -2
- package/personSurname/personSurname.js +1 -1
- package/positiveNumber/positiveNumber.d.ts +1 -1
- package/snils/snils.d.ts +2 -2
- package/snils/snils.js +1 -1
- package/textField/textField.d.ts +4 -4
- package/textField/textField.js +1 -1
- package/toPlainError/toPlainError.d.ts +2 -2
- package/toPlainError/toPlainError.js +1 -1
- package/toPlainError/utils/generateArrayPath/generateArrayPath.d.ts +1 -1
- package/toPlainError/utils/generateArrayPath/generateArrayPath.js +1 -1
- package/toPlainError/utils/generateObjectPath/generateObjectPath.d.ts +1 -1
- package/toPlainError/utils/generateObjectPath/generateObjectPath.js +1 -1
- package/toPrettyError/toPrettyError.d.ts +1 -1
- package/toPrettyError/toPrettyError.js +1 -1
- package/transform/transform.d.ts +1 -1
- package/transform/transform.js +1 -1
- package/when/when.d.ts +2 -2
- package/when/when.js +1 -1
package/any/any.d.ts
CHANGED
package/any/any.js
CHANGED
package/array/array.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type ValidationRule } from '../core';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Guard для массива. Проверяет value на соответствие типу array
|
4
4
|
* @param rules - правила валидаций, применяющиеся ко всему массиву
|
5
5
|
* @example
|
6
6
|
* ```ts
|
package/array/array.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { compose, createGuard, } from '../core';
|
2
2
|
import { ARRAY_TYPE_ERROR_INFO } from './constants';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Guard для массива. Проверяет value на соответствие типу array
|
5
5
|
* @param rules - правила валидаций, применяющиеся ко всему массиву
|
6
6
|
* @example
|
7
7
|
* ```ts
|
package/arrayItem/arrayItem.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type ValidationRule } from '../core';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Применяет правила к каждому элементу массива
|
4
4
|
* @param rules - правила валидации, которое применится к каждому элементу массива
|
5
5
|
* @example
|
6
6
|
* ```ts
|
package/arrayItem/arrayItem.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { compose, createArrayError, createRule, } from '../core';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Применяет правила к каждому элементу массива
|
4
4
|
* @param rules - правила валидации, которое применится к каждому элементу массива
|
5
5
|
* @example
|
6
6
|
* ```ts
|
package/boolean/boolean.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type ValidationRule } from '../core';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Guard для boolean. Проверяет значение на тип boolean
|
4
4
|
* @param rules - правила, валидирующие boolean или unknown value
|
5
5
|
* @example
|
6
6
|
* ```ts
|
package/boolean/boolean.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { compose, createGuard } from '../core';
|
2
2
|
import { BOOLEAN_TYPE_ERROR_INFO } from './constants';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Guard для boolean. Проверяет значение на тип boolean
|
5
5
|
* @param rules - правила, валидирующие boolean или unknown value
|
6
6
|
* @example
|
7
7
|
* ```ts
|
@@ -1,11 +1,11 @@
|
|
1
1
|
type ContainsDifferentCasesParams = {
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Замена стандартного сообщения ошибки.
|
4
4
|
*/
|
5
5
|
message?: string;
|
6
6
|
};
|
7
7
|
/**
|
8
|
-
*
|
8
|
+
* Проверяет на наличие в строке символов разных регистров
|
9
9
|
* @example
|
10
10
|
* ```ts
|
11
11
|
* const validate = string(containsDifferentCases());
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { createRule } from '../core';
|
2
2
|
import { CONTAINS_DIFFERENT_CASES_ERROR_CODE } from './constants';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Проверяет на наличие в строке символов разных регистров
|
5
5
|
* @example
|
6
6
|
* ```ts
|
7
7
|
* const validate = string(containsDifferentCases());
|
@@ -1,11 +1,11 @@
|
|
1
1
|
type ContainsNumbersParams = {
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Замена стандартного сообщения ошибки.
|
4
4
|
*/
|
5
5
|
message?: string;
|
6
6
|
};
|
7
7
|
/**
|
8
|
-
*
|
8
|
+
* Проверяет на наличие чисел в строке
|
9
9
|
* @example
|
10
10
|
* ```ts
|
11
11
|
* const validate = string(containsNumbers());
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { createRule } from '../core';
|
2
2
|
import { CONTAINS_NUMBERS_ERROR_CODE } from './constants';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Проверяет на наличие чисел в строке
|
5
5
|
* @example
|
6
6
|
* ```ts
|
7
7
|
* const validate = string(containsNumbers());
|
@@ -1,11 +1,11 @@
|
|
1
1
|
type ContainsPunctuationMarksParams = {
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Замена стандартного сообщения ошибки.
|
4
4
|
*/
|
5
5
|
message?: string;
|
6
6
|
};
|
7
7
|
/**
|
8
|
-
*
|
8
|
+
* Проверяет на наличие в строке знаков пунктуации !$%&’()+,-./:;<=>?@[]^_{|}”
|
9
9
|
* @example
|
10
10
|
* ```ts
|
11
11
|
* const validate = string(containsPunctuationMarks());
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { createRule } from '../core';
|
2
2
|
import { CONTAINS_PUNCTUATION_MARKS_ERROR_CODE } from './constants';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Проверяет на наличие в строке знаков пунктуации !$%&’()+,-./:;<=>?@[]^_{|}”
|
5
5
|
* @example
|
6
6
|
* ```ts
|
7
7
|
* const validate = string(containsPunctuationMarks());
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type IndependentValidationRule, type ValidationRule } from '../rule';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Объединяет переданные правила в цепочку правил, останавливает выполнение цепочки, если появилась ошибка. Выполняет правила слева направо
|
4
4
|
* @example compose(min(), max());
|
5
5
|
*/
|
6
6
|
export declare const compose: <ValidationType, TLastSchemaValues extends Record<string, unknown>>(...rules: Array<IndependentValidationRule<ValidationType, TLastSchemaValues> | ValidationRule<ValidationType, TLastSchemaValues>>) => IndependentValidationRule<ValidationType, Record<string, unknown>>;
|
package/core/compose/compose.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { callRule, } from '../rule';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Объединяет переданные правила в цепочку правил, останавливает выполнение цепочки, если появилась ошибка. Выполняет правила слева направо
|
4
4
|
* @example compose(min(), max());
|
5
5
|
*/
|
6
6
|
export const compose = (...rules) => (value, ctx) => rules.reduce((result, rule) => result ||
|
@@ -12,7 +12,7 @@ type Params<TLastSchemaValues extends Record<string, unknown>> = {
|
|
12
12
|
isOptional?: boolean;
|
13
13
|
};
|
14
14
|
/**
|
15
|
-
*
|
15
|
+
* Создает context валидации. Используется внутри фабрик guard и rule
|
16
16
|
* @default по-дефолту сбрасывает все флаги в false
|
17
17
|
*/
|
18
18
|
export declare function createContext<TValue extends ValidationTypes, TLastSchemaValues extends Record<string, unknown> = {}>(prevCtx: ValidationContext<Record<string, unknown>> | undefined, value: TValue, { lastSchemaValue, isOptional }?: Params<TLastSchemaValues>): ValidationContext<TLastSchemaValues>;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { createSimpleError } from '../../errors';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Создает context валидации. Используется внутри фабрик guard и rule
|
4
4
|
* @default по-дефолту сбрасывает все флаги в false
|
5
5
|
*/
|
6
6
|
export function createContext(prevCtx, value, { lastSchemaValue, isOptional } = {}) {
|
package/core/context/types.d.ts
CHANGED
@@ -1,37 +1,37 @@
|
|
1
1
|
import { type DeepPartial, type DeepReadonly } from 'utility-types';
|
2
2
|
import { type createSimpleError } from '../errors';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Контекст, который доступен в каждом правиле
|
5
5
|
*/
|
6
6
|
export type ValidationContext<TLastSchemaValues extends Record<string, unknown> = {}, TGlobalSchemaValues = unknown> = DeepReadonly<{
|
7
7
|
/**
|
8
|
-
*
|
8
|
+
* Values последнего валидируемого object
|
9
9
|
*/
|
10
10
|
values?: DeepPartial<TLastSchemaValues>;
|
11
11
|
/**
|
12
|
-
*
|
12
|
+
* Глобальные значения, идущие от самого верхнего правила к самому нижнему
|
13
13
|
*/
|
14
14
|
global: DeepReadonly<{
|
15
15
|
/**
|
16
|
-
*
|
16
|
+
* Значения, которые валидируется guard самого высоко порядка
|
17
17
|
*/
|
18
18
|
values: TGlobalSchemaValues;
|
19
19
|
/**
|
20
|
-
*
|
20
|
+
* Глобальные переопределения (сквозные для всех правил)
|
21
21
|
*/
|
22
22
|
overrides: {
|
23
23
|
/**
|
24
|
-
*
|
24
|
+
* Делает для всех объектов в схеме все свойства необязательными
|
25
25
|
*/
|
26
26
|
objectIsPartial: boolean;
|
27
27
|
};
|
28
28
|
}>;
|
29
29
|
/**
|
30
|
-
*
|
30
|
+
* Фабрика ошибок. Возвращает новую ошибку валидации
|
31
31
|
*/
|
32
32
|
createError: typeof createSimpleError;
|
33
33
|
/**
|
34
|
-
*
|
34
|
+
* Флаг, позволяющий отключать в guard'ах required правило. Первый guard, который примет isOptional===true сбросит его
|
35
35
|
*/
|
36
36
|
isOptional: boolean;
|
37
37
|
}>;
|
@@ -1,17 +1,17 @@
|
|
1
1
|
import { type ValidationResult } from '../../types';
|
2
2
|
import { type ValidationErrorData, ValidationSimpleError } from '../SimpleError';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Доп. поля для ошибок элементов массива
|
5
5
|
*/
|
6
6
|
export type ValidationArrayErrorCause = {
|
7
7
|
/**
|
8
|
-
*
|
8
|
+
* Массив ошибок элементов валидируемого массива.
|
9
9
|
* Индекс errorArray соответвует индексу валидируемого элемента массива
|
10
10
|
*/
|
11
11
|
errorArray: Array<ValidationResult>;
|
12
12
|
};
|
13
13
|
/**
|
14
|
-
*
|
14
|
+
* Array ошибок для массива
|
15
15
|
*/
|
16
16
|
export declare class ValidationArrayError extends ValidationSimpleError<ValidationArrayErrorCause> {
|
17
17
|
constructor(message: string, data: ValidationErrorData<ValidationArrayErrorCause>);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ValidationArrayError, type ValidationArrayErrorCause } from '../ArrayError';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Создает array ошибок. Ошибка предназначена для результата валидации массива
|
4
4
|
*/
|
5
5
|
export declare const createArrayError: (errorArray: ValidationArrayErrorCause['errorArray']) => ValidationArrayError;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ValidationArrayError, } from '../ArrayError';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Создает array ошибок. Ошибка предназначена для результата валидации массива
|
4
4
|
*/
|
5
5
|
export const createArrayError = (errorArray) => {
|
6
6
|
const firstErrorIndex = errorArray.findIndex((error) => Boolean(error));
|
@@ -1,20 +1,20 @@
|
|
1
1
|
import { type ValidationErrorData, ValidationSimpleError } from '../SimpleError';
|
2
2
|
import { type ValidationResult } from '../../types';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Map, которое содержит результат валидации свойств
|
5
5
|
*/
|
6
6
|
export type ErrorMap = Record<string, ValidationResult>;
|
7
7
|
/**
|
8
|
-
*
|
8
|
+
* Доп. поля для ошибки в объекте
|
9
9
|
*/
|
10
10
|
export type ValidationObjectErrorCause = {
|
11
11
|
/**
|
12
|
-
*
|
12
|
+
* Map, которое содержит результат валидации свойств
|
13
13
|
*/
|
14
14
|
errorMap: Record<string, ValidationResult>;
|
15
15
|
};
|
16
16
|
/**
|
17
|
-
*
|
17
|
+
* Map ошибок для объекта
|
18
18
|
*/
|
19
19
|
export declare class ValidationErrorMap extends ValidationSimpleError<ValidationObjectErrorCause> {
|
20
20
|
constructor(message: string, data: ValidationErrorData<ValidationObjectErrorCause>);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ValidationErrorMap, type ValidationObjectErrorCause } from '../ErrorMap';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Создает map ошибок валидаций. Ошибка предназначена для генерации результата валидации объекта
|
4
4
|
*/
|
5
5
|
export declare const createErrorMap: (errorMap: ValidationObjectErrorCause['errorMap']) => ValidationErrorMap;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ValidationErrorMap, } from '../ErrorMap';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Создает map ошибок валидаций. Ошибка предназначена для генерации результата валидации объекта
|
4
4
|
*/
|
5
5
|
export const createErrorMap = (errorMap) => {
|
6
6
|
const [firstErrorPath, firstError] = Object.entries(errorMap).find(([, error]) => Boolean(error));
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type ErrorCode } from '../types';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Причина ошибки валидации
|
4
4
|
*/
|
5
5
|
export type ValidationErrorData<AddCause extends Record<string, unknown>> = {
|
6
6
|
cause: AddCause & {
|
@@ -8,7 +8,7 @@ export type ValidationErrorData<AddCause extends Record<string, unknown>> = {
|
|
8
8
|
};
|
9
9
|
};
|
10
10
|
/**
|
11
|
-
*
|
11
|
+
* Простая ошибка правил валидации. Не имеет вложенных ошибок
|
12
12
|
*/
|
13
13
|
export declare class ValidationSimpleError<AddCause extends Record<string, unknown> = {}> extends Error {
|
14
14
|
cause: ValidationErrorData<AddCause>['cause'];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ValidationSimpleError } from '../SimpleError';
|
2
2
|
import { type ErrorInfo } from '../../types';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Создает простую ошибки валидации. Используется в обычных rules
|
5
5
|
*/
|
6
6
|
export declare const createSimpleError: ({ message, code }: ErrorInfo) => ValidationSimpleError<{}>;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ValidationSimpleError } from '../SimpleError';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Создает простую ошибки валидации. Используется в обычных rules
|
4
4
|
*/
|
5
5
|
export const createSimpleError = ({ message, code }) => new ValidationSimpleError(message, { cause: { code } });
|
package/core/errors/types.d.ts
CHANGED
@@ -2,17 +2,17 @@ import { type ValidationErrorMap } from './ErrorMap';
|
|
2
2
|
import { type ValidationSimpleError } from './SimpleError';
|
3
3
|
import { type ValidationArrayError } from './ArrayError';
|
4
4
|
/**
|
5
|
-
*
|
5
|
+
* Уникальный код ошибки валидации
|
6
6
|
*/
|
7
7
|
export type ErrorCode = string;
|
8
8
|
/**
|
9
|
-
*
|
9
|
+
* Информация, которая есть для каждой ошибки
|
10
10
|
*/
|
11
11
|
export type ErrorInfo = {
|
12
12
|
code: ErrorCode;
|
13
13
|
message: string;
|
14
14
|
};
|
15
15
|
/**
|
16
|
-
*
|
16
|
+
* Union возможных ошибок
|
17
17
|
*/
|
18
18
|
export type ValidationError = ValidationSimpleError | ValidationArrayError | ValidationErrorMap;
|
@@ -2,56 +2,56 @@ import { type ValidationResult } from '../../types';
|
|
2
2
|
import { type ValidationContext } from '../../context';
|
3
3
|
export type GuardDefOptions<AddDefOptions extends Record<string, unknown>> = Partial<AddDefOptions> & {
|
4
4
|
/**
|
5
|
-
*
|
5
|
+
* Переопределяет дефолтное сообщения ошибки для required
|
6
6
|
* @example string.define({ requiredMessage: 'ИНН не может быть пустым' })(inn())
|
7
7
|
*/
|
8
8
|
requiredErrorMessage?: string;
|
9
9
|
/**
|
10
|
-
*
|
10
|
+
* Переопределяет сообщение об ошибке типа
|
11
11
|
* @example string.define({ typeErrorMessage: 'ИНН не может быть числом' })(inn())
|
12
12
|
*/
|
13
13
|
typeErrorMessage?: string;
|
14
14
|
/**
|
15
|
-
*
|
15
|
+
* Позволяет выключать проверку на required
|
16
16
|
* @default false
|
17
17
|
*/
|
18
18
|
isOptional?: boolean;
|
19
19
|
};
|
20
20
|
export type GuardValue = unknown;
|
21
21
|
/**
|
22
|
-
*
|
22
|
+
* Интерфейс функции guard, которая в прототипе содержит метод define
|
23
23
|
*/
|
24
24
|
export interface Guard<TLastSchemaValues extends Record<string, unknown> = {}, AddDefOptions extends Record<string, unknown> = {}> {
|
25
25
|
(value: GuardValue, ctx?: ValidationContext<TLastSchemaValues>): ValidationResult;
|
26
26
|
/**
|
27
|
-
*
|
27
|
+
* Функция для создания нового guard с переопределенными дефолтными параметрами. Возвращает новый guard
|
28
28
|
* @param options - параметры, позволяющие переопределить дефолтные настройки guard
|
29
29
|
* @example string(inn()).define({ requiredMessage: 'ИНН не может быть пустым' })
|
30
30
|
*/
|
31
31
|
define<TDefineLastSchemaValues extends Record<string, unknown> = {}>(options: GuardDefOptions<AddDefOptions>): Guard<TDefineLastSchemaValues, AddDefOptions>;
|
32
32
|
}
|
33
33
|
/**
|
34
|
-
*
|
34
|
+
* Интерфейс асинхронной функции guard, которая в прототипе содержит метод define
|
35
35
|
*/
|
36
36
|
export interface AsyncGuard<TLastSchemaValues extends Record<string, unknown> = {}, AddDefOptions extends Record<string, unknown> = {}> {
|
37
37
|
(value: GuardValue, ctx?: ValidationContext<TLastSchemaValues>): Promise<ValidationResult>;
|
38
38
|
/**
|
39
|
-
*
|
39
|
+
* Функция для создания нового guard с переопределенными дефолтными параметрами. Возвращает новый guard
|
40
40
|
* @param options - параметры, позволяющие переопределить дефолтные настройки guard
|
41
41
|
* @example string.define({ requiredMessage: 'ИНН не может быть пустым' })(inn())
|
42
42
|
*/
|
43
43
|
define(options: GuardDefOptions<AddDefOptions>): AsyncGuard<TLastSchemaValues, AddDefOptions>;
|
44
44
|
}
|
45
45
|
/**
|
46
|
-
*
|
46
|
+
* Функция, которая позволяет определять частную логику для guard
|
47
47
|
*/
|
48
48
|
type GuardExecutor<TLastSchemaValues extends Record<string, unknown>, AddDefOptions extends Record<string, unknown>> = (value: unknown, ctx: ValidationContext<TLastSchemaValues>, defOptions: GuardDefOptions<AddDefOptions>) => ValidationResult;
|
49
49
|
/**
|
50
|
-
*
|
50
|
+
* Функция, которая позволяет определять частную логику для guard
|
51
51
|
*/
|
52
52
|
type AsyncGuardExecutor<TLastSchemaValues extends Record<string, unknown>, AddDefOptions extends Record<string, unknown>> = (value: unknown, ctx: ValidationContext<TLastSchemaValues>, defOptions: GuardDefOptions<AddDefOptions>) => Promise<ValidationResult>;
|
53
53
|
/**
|
54
|
-
*
|
54
|
+
* Создает guard. Guard - функция, проверяющая тип значения
|
55
55
|
* По-дефолту проверяет value на required. Для выключения required необходимо использовать optional().
|
56
56
|
* После первого вызова guard в прототипу функции становится доступен метод define, который позволяет переопределить дефолтное поведение guard (например, изменить текст для required правила)
|
57
57
|
* @example
|
@@ -2,20 +2,20 @@ import { type ValidationResult, type ValidationTypes } from '../../types';
|
|
2
2
|
import { type ValidationContext } from '../../context';
|
3
3
|
import { type IndependentValidationRule } from '../types';
|
4
4
|
/**
|
5
|
-
*
|
5
|
+
* Единые параметры для всех правил
|
6
6
|
*/
|
7
7
|
export type CommonRuleParams<ValidationType extends ValidationTypes> = {
|
8
8
|
/**
|
9
|
-
*
|
9
|
+
* Функция, позволяющая для каждого правила указать исключение
|
10
10
|
*/
|
11
11
|
exclude?: (value: ValidationType, ctx: ValidationContext) => boolean;
|
12
12
|
};
|
13
13
|
/**
|
14
|
-
*
|
14
|
+
* Функция, которая позволяет определять частную логику для guard
|
15
15
|
*/
|
16
16
|
type RuleExecutor<ValidationType extends ValidationTypes, TLastSchemaValues extends Record<string, unknown>> = (value: ValidationType, ctx: ValidationContext<TLastSchemaValues>) => ValidationResult;
|
17
17
|
/**
|
18
|
-
*
|
18
|
+
* Создает правила валидации, которые можно использовать внутри guard или по отдельности
|
19
19
|
* @param executor - функция, которая позволяет определять частную логику для guard
|
20
20
|
* @param commonParams - единые параметры для всех rule
|
21
21
|
* @example
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { createContext } from '../../context';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Создает правила валидации, которые можно использовать внутри guard или по отдельности
|
4
4
|
* @param executor - функция, которая позволяет определять частную логику для guard
|
5
5
|
* @param commonParams - единые параметры для всех rule
|
6
6
|
* @example
|
@@ -1,10 +1,10 @@
|
|
1
1
|
/**
|
2
|
-
*
|
2
|
+
* Проверяет value на пустоту. Если значение пустое, то возвращает ошибку.
|
3
3
|
* Правило универсально для всех типов данных
|
4
4
|
*/
|
5
5
|
export declare const required: ({ message, }?: {
|
6
6
|
/**
|
7
|
-
*
|
7
|
+
* Кастомное сообщение ошибки
|
8
8
|
* @default Обязательно
|
9
9
|
*/
|
10
10
|
message?: string;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { createRule } from '../createRule';
|
2
2
|
import { REQUIRED_ERROR_INFO } from './constants';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Проверяет value на пустоту. Если значение пустое, то возвращает ошибку.
|
5
5
|
* Правило универсально для всех типов данных
|
6
6
|
*/
|
7
7
|
export const required = ({ message, } = {}) => createRule((value, ctx) => {
|
package/core/rule/types.d.ts
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
import { type ValidationContext } from '../context';
|
2
2
|
import { type ValidationResult } from '../types';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* Самостоятельное правило для валидации. Может использоваться вне guard'ов
|
5
5
|
*/
|
6
6
|
export type IndependentValidationRule<TValue, TLastSchemaValues extends Record<string, unknown>> = (value: TValue, ctx?: ValidationContext<TLastSchemaValues>) => ValidationResult;
|
7
7
|
/**
|
8
|
-
*
|
8
|
+
* Самостоятельное асинхронное правило для валидации. Может использоваться вне guard'ов
|
9
9
|
*/
|
10
10
|
export type AsyncIndependentValidationRule<TValue, TLastSchemaValues extends Record<string, unknown>> = (value: TValue, ctx?: ValidationContext<TLastSchemaValues>) => Promise<ValidationResult>;
|
11
11
|
/**
|
12
|
-
*
|
12
|
+
* Правило для валидации, работающее исключительно с guard'ами
|
13
13
|
*/
|
14
14
|
export type ValidationRule<TValue, TLastSchemaValues extends Record<string, unknown> = {}> = (value: TValue, ctx: ValidationContext<TLastSchemaValues>) => ValidationResult | ValidationRule<TValue, TLastSchemaValues>;
|
15
15
|
/**
|
16
|
-
*
|
16
|
+
* Асинхронное правило для валидации, работающее исключительно с guard'ами
|
17
17
|
*/
|
18
18
|
export type AsyncValidationRule<TValue, TLastSchemaValues extends Record<string, unknown> = {}> = (value: TValue, ctx: ValidationContext<TLastSchemaValues>) => Promise<ValidationResult | AsyncValidationRule<TValue, TLastSchemaValues> | ValidationRule<TValue, TLastSchemaValues>>;
|
19
19
|
/**
|
20
|
-
*
|
20
|
+
* Композиционное правило валидации, умеющее работать с любыми значениями.
|
21
21
|
* В основном используется для композиционных правил, которые принимают rule, умеющие валидировать разные значения (optional, transform...)
|
22
22
|
*/
|
23
23
|
export type UniversalCompositionalValidationRule<TLastSchemaValues extends Record<string, unknown>> = ValidationRule<any, TLastSchemaValues>;
|
package/core/types.d.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
import { type ValidationError } from './errors';
|
2
2
|
/**
|
3
|
-
*
|
3
|
+
* Результат работы валидации
|
4
4
|
*/
|
5
5
|
export type ValidationResult = ValidationError | undefined;
|
6
6
|
/**
|
7
|
-
*
|
7
|
+
* Доступные для валидации типы value
|
8
8
|
*/
|
9
9
|
export type ValidationTypes = unknown | object | string | number | Date | Array<unknown>;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
*
|
2
|
+
* Проверяет, что разрешенные символы в тексте: прописные (большие) и строчные буквы (включая ё) русского алфавита,
|
3
3
|
прописные (большие) буквы I и V латинского алфавита, -, пробел, точка, апостроф, запятая, открывающая и закрывающая скобка
|
4
4
|
*/
|
5
5
|
export declare const isFullNameValidCharacters: (value: string) => boolean;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
*
|
2
|
+
* Проверяет, что разрешенные символы в тексте: прописные (большие) и строчные буквы (включая ё) русского алфавита,
|
3
3
|
прописные (большие) буквы I и V латинского алфавита, -, пробел, точка, апостроф, запятая, открывающая и закрывающая скобка
|
4
4
|
*/
|
5
5
|
export const isFullNameValidCharacters = (value) => !/^([а-яёА-ЯЁIV ё.,'’()\-\s]+)$/.test(value);
|