@astral/validations 4.12.0 → 4.13.0
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/README.md +22 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +1 -1
- package/textField/constants.d.ts +5 -0
- package/textField/constants.js +11 -0
- package/textField/index.d.ts +2 -0
- package/textField/index.js +2 -0
- package/textField/textField.d.ts +24 -0
- package/textField/textField.js +19 -0
package/README.md
CHANGED
@@ -47,6 +47,7 @@
|
|
47
47
|
- [passportSeries](#passportSeries)
|
48
48
|
- [passportNumber](#passportNumber)
|
49
49
|
- [passportCode](#passportCode)
|
50
|
+
- [textField](#textField)
|
50
51
|
- [date](#date)
|
51
52
|
- [min](#min-date)
|
52
53
|
- [max](#max-date)
|
@@ -551,6 +552,27 @@ validate('156-573-259 92')
|
|
551
552
|
|
552
553
|
---
|
553
554
|
|
555
|
+
### textField
|
556
|
+
|
557
|
+
Проверяет валидно ли текстовое поле
|
558
|
+
|
559
|
+
```ts
|
560
|
+
import { string, textField } from '@astral/validations';
|
561
|
+
|
562
|
+
const validate = string(textField());
|
563
|
+
|
564
|
+
// undefined
|
565
|
+
validate('!@#$%^&*()-_=+|[]{};:",.<>/?')
|
566
|
+
validate('абвАБВ abcABC')
|
567
|
+
|
568
|
+
// { message: 'Содержит запрещённые символы' }
|
569
|
+
validate('😀')
|
570
|
+
validate('∑')
|
571
|
+
validate('٩(◕‿◕。)۶')
|
572
|
+
```
|
573
|
+
|
574
|
+
---
|
575
|
+
|
554
576
|
### mobilePhone
|
555
577
|
|
556
578
|
- Проверяет валиден ли мобильный телефон
|
package/index.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
export { object, objectAsync, OBJECT_TYPE_ERROR_INFO, type Schema, type SchemaValue, type ObjectGuard, type ObjectAsyncGuard, } from './object';
|
2
2
|
export { optional, optionalAsync } from './optional';
|
3
3
|
export { string, STRING_TYPE_ERROR_INFO, stringAsync } from './string';
|
4
|
+
export { textField, INVALID_TEXT_FIELD_ERROR_INFO, LENGTH_TEXT_FIELD_ERROR_INFO, } from './textField';
|
4
5
|
export { date, INVALID_DATE_ERROR_INFO, DATE_TYPE_ERROR_INFO } from './date';
|
5
6
|
export { number, NAN_NUMBER_ERROR_INFO, NUMBER_TYPE_ERROR_INFO, INFINITY_NUMBER_ERROR_INFO, } from './number';
|
6
7
|
export { boolean, BOOLEAN_TYPE_ERROR_INFO } from './boolean';
|
package/index.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
export { object, objectAsync, OBJECT_TYPE_ERROR_INFO, } from './object';
|
2
2
|
export { optional, optionalAsync } from './optional';
|
3
3
|
export { string, STRING_TYPE_ERROR_INFO, stringAsync } from './string';
|
4
|
+
export { textField, INVALID_TEXT_FIELD_ERROR_INFO, LENGTH_TEXT_FIELD_ERROR_INFO, } from './textField';
|
4
5
|
export { date, INVALID_DATE_ERROR_INFO, DATE_TYPE_ERROR_INFO } from './date';
|
5
6
|
export { number, NAN_NUMBER_ERROR_INFO, NUMBER_TYPE_ERROR_INFO, INFINITY_NUMBER_ERROR_INFO, } from './number';
|
6
7
|
export { boolean, BOOLEAN_TYPE_ERROR_INFO } from './boolean';
|
package/package.json
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
import { createErrorCode } from '../core';
|
2
|
+
export const TEXT_FIELD_REGEXP = /^[a-zA-Zа-яА-Я0-9\s!@#$%^&*()-_=+\\|[\]{};:'",.<>/?]+$/;
|
3
|
+
export const TEXT_FIELD_MAX_LENGTH = 256;
|
4
|
+
export const INVALID_TEXT_FIELD_ERROR_INFO = {
|
5
|
+
code: createErrorCode('textField-invalid'),
|
6
|
+
message: 'Содержит запрещённые символы',
|
7
|
+
};
|
8
|
+
export const LENGTH_TEXT_FIELD_ERROR_INFO = {
|
9
|
+
code: createErrorCode('textField-length'),
|
10
|
+
message: 'Превышено максимальное кол-во символов',
|
11
|
+
};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
type TextFieldParams = {
|
2
|
+
/**
|
3
|
+
* @description Замена стандартного сообщения ошибки.
|
4
|
+
*/
|
5
|
+
customLength?: number;
|
6
|
+
/**
|
7
|
+
* @description Замена стандартного сообщения ошибки.
|
8
|
+
*/
|
9
|
+
message?: string;
|
10
|
+
/**
|
11
|
+
* @description Замена стандартного сообщения ошибки при превышении допустимого количества символов.
|
12
|
+
*/
|
13
|
+
invalidLengthMessage?: string;
|
14
|
+
};
|
15
|
+
/**
|
16
|
+
* @description Проверяет валидность текстового поля
|
17
|
+
* @example
|
18
|
+
* ```ts
|
19
|
+
* const validate = string(textField());
|
20
|
+
* validate('Авада кедавра...');
|
21
|
+
* ```
|
22
|
+
*/
|
23
|
+
export declare const textField: <TLastSchemaValues extends Record<string, unknown>>(params?: TextFieldParams) => (value: string, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
24
|
+
export {};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { createRule } from '../core';
|
2
|
+
import { INVALID_TEXT_FIELD_ERROR_INFO, LENGTH_TEXT_FIELD_ERROR_INFO, TEXT_FIELD_MAX_LENGTH, TEXT_FIELD_REGEXP, } from './constants';
|
3
|
+
/**
|
4
|
+
* @description Проверяет валидность текстового поля
|
5
|
+
* @example
|
6
|
+
* ```ts
|
7
|
+
* const validate = string(textField());
|
8
|
+
* validate('Авада кедавра...');
|
9
|
+
* ```
|
10
|
+
*/
|
11
|
+
export const textField = (params) => createRule((value, ctx) => {
|
12
|
+
if (value.length > ((params === null || params === void 0 ? void 0 : params.customLength) || TEXT_FIELD_MAX_LENGTH)) {
|
13
|
+
return ctx.createError(Object.assign(Object.assign({}, LENGTH_TEXT_FIELD_ERROR_INFO), { message: (params === null || params === void 0 ? void 0 : params.invalidLengthMessage) || LENGTH_TEXT_FIELD_ERROR_INFO.message }));
|
14
|
+
}
|
15
|
+
if (!TEXT_FIELD_REGEXP.test(value)) {
|
16
|
+
return ctx.createError(Object.assign(Object.assign({}, INVALID_TEXT_FIELD_ERROR_INFO), { message: (params === null || params === void 0 ? void 0 : params.message) || INVALID_TEXT_FIELD_ERROR_INFO.message }));
|
17
|
+
}
|
18
|
+
return undefined;
|
19
|
+
});
|