react-hook-form-rules 1.0.1 → 1.0.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/index.d.ts +7 -3
- package/dist/index.js +13 -5
- package/dist/rules/get-email-rule.d.ts +6 -2
- package/dist/rules/get-email-rule.js +6 -2
- package/dist/rules/get-max-length-rule.d.ts +11 -0
- package/dist/rules/get-max-length-rule.js +22 -0
- package/dist/rules/get-max-rule.d.ts +16 -0
- package/dist/rules/get-max-rule.js +16 -0
- package/dist/rules/get-min-length-rule.d.ts +7 -6
- package/dist/rules/get-min-length-rule.js +13 -7
- package/dist/rules/get-min-rule.d.ts +12 -6
- package/dist/rules/get-min-rule.js +10 -10
- package/dist/rules/get-require-rule.d.ts +13 -6
- package/dist/rules/get-require-rule.js +11 -11
- package/dist/rules/get-required-array-role.d.ts +8 -0
- package/dist/rules/get-required-array-role.js +15 -0
- package/dist/rules/get-required-object-rule.d.ts +8 -0
- package/dist/rules/get-required-object-rule.js +20 -0
- package/dist/rules/get-url-rule.d.ts +8 -3
- package/dist/rules/get-url-rule.js +8 -3
- package/index.ts +11 -2
- package/package.json +2 -1
- package/rules/get-email-rule.ts +6 -2
- package/rules/get-max-array-length.ts +0 -1
- package/rules/get-max-length-rule.ts +23 -0
- package/rules/get-max-rule.ts +20 -0
- package/rules/get-min-length-rule.ts +19 -9
- package/rules/get-min-rule.ts +18 -10
- package/rules/get-require-rule.ts +20 -12
- package/rules/get-required-array-role.ts +12 -0
- package/rules/get-required-object-rule.ts +18 -0
- package/rules/get-url-rule.ts +8 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { getRequiredRule } from "./rules/get-require-rule";
|
|
2
1
|
import { getEmailRule } from "./rules/get-email-rule";
|
|
3
2
|
import { getMaxArrayLengthRule } from "./rules/get-max-array-length";
|
|
4
|
-
import {
|
|
3
|
+
import { getMaxLengthRule } from "./rules/get-max-length-rule";
|
|
5
4
|
import { getMinArrayLengthRule } from "./rules/get-min-array-length";
|
|
5
|
+
import { getMaxRule } from "./rules/get-max-rule";
|
|
6
|
+
import { getMinLengthRule } from "./rules/get-min-length-rule";
|
|
6
7
|
import { getMinRule } from "./rules/get-min-rule";
|
|
8
|
+
import { getRequiredRule } from "./rules/get-require-rule";
|
|
9
|
+
import { getRequiredArrayRule } from "./rules/get-required-array-role";
|
|
10
|
+
import { getRequiredObjectRule } from "./rules/get-required-object-rule";
|
|
7
11
|
import { getUrlRule } from "./rules/get-url-rule";
|
|
8
|
-
export { getEmailRule, getMaxArrayLengthRule, getMinArrayLengthRule, getMinLengthRule, getMinRule, getRequiredRule, getUrlRule, };
|
|
12
|
+
export { getMaxRule, getRequiredObjectRule, getRequiredArrayRule, getEmailRule, getMaxLengthRule, getMaxArrayLengthRule, getMinArrayLengthRule, getMinLengthRule, getMinRule, getRequiredRule, getUrlRule, };
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUrlRule = exports.getRequiredRule = exports.getMinRule = exports.getMinLengthRule = exports.getMinArrayLengthRule = exports.getMaxArrayLengthRule = exports.getEmailRule = void 0;
|
|
4
|
-
const get_require_rule_1 = require("./rules/get-require-rule");
|
|
5
|
-
Object.defineProperty(exports, "getRequiredRule", { enumerable: true, get: function () { return get_require_rule_1.getRequiredRule; } });
|
|
3
|
+
exports.getUrlRule = exports.getRequiredRule = exports.getMinRule = exports.getMinLengthRule = exports.getMinArrayLengthRule = exports.getMaxArrayLengthRule = exports.getMaxLengthRule = exports.getEmailRule = exports.getRequiredArrayRule = exports.getRequiredObjectRule = exports.getMaxRule = void 0;
|
|
6
4
|
const get_email_rule_1 = require("./rules/get-email-rule");
|
|
7
5
|
Object.defineProperty(exports, "getEmailRule", { enumerable: true, get: function () { return get_email_rule_1.getEmailRule; } });
|
|
8
6
|
const get_max_array_length_1 = require("./rules/get-max-array-length");
|
|
9
7
|
Object.defineProperty(exports, "getMaxArrayLengthRule", { enumerable: true, get: function () { return get_max_array_length_1.getMaxArrayLengthRule; } });
|
|
10
|
-
const
|
|
11
|
-
Object.defineProperty(exports, "
|
|
8
|
+
const get_max_length_rule_1 = require("./rules/get-max-length-rule");
|
|
9
|
+
Object.defineProperty(exports, "getMaxLengthRule", { enumerable: true, get: function () { return get_max_length_rule_1.getMaxLengthRule; } });
|
|
12
10
|
const get_min_array_length_1 = require("./rules/get-min-array-length");
|
|
13
11
|
Object.defineProperty(exports, "getMinArrayLengthRule", { enumerable: true, get: function () { return get_min_array_length_1.getMinArrayLengthRule; } });
|
|
12
|
+
const get_max_rule_1 = require("./rules/get-max-rule");
|
|
13
|
+
Object.defineProperty(exports, "getMaxRule", { enumerable: true, get: function () { return get_max_rule_1.getMaxRule; } });
|
|
14
|
+
const get_min_length_rule_1 = require("./rules/get-min-length-rule");
|
|
15
|
+
Object.defineProperty(exports, "getMinLengthRule", { enumerable: true, get: function () { return get_min_length_rule_1.getMinLengthRule; } });
|
|
14
16
|
const get_min_rule_1 = require("./rules/get-min-rule");
|
|
15
17
|
Object.defineProperty(exports, "getMinRule", { enumerable: true, get: function () { return get_min_rule_1.getMinRule; } });
|
|
18
|
+
const get_require_rule_1 = require("./rules/get-require-rule");
|
|
19
|
+
Object.defineProperty(exports, "getRequiredRule", { enumerable: true, get: function () { return get_require_rule_1.getRequiredRule; } });
|
|
20
|
+
const get_required_array_role_1 = require("./rules/get-required-array-role");
|
|
21
|
+
Object.defineProperty(exports, "getRequiredArrayRule", { enumerable: true, get: function () { return get_required_array_role_1.getRequiredArrayRule; } });
|
|
22
|
+
const get_required_object_rule_1 = require("./rules/get-required-object-rule");
|
|
23
|
+
Object.defineProperty(exports, "getRequiredObjectRule", { enumerable: true, get: function () { return get_required_object_rule_1.getRequiredObjectRule; } });
|
|
16
24
|
const get_url_rule_1 = require("./rules/get-url-rule");
|
|
17
25
|
Object.defineProperty(exports, "getUrlRule", { enumerable: true, get: function () { return get_url_rule_1.getUrlRule; } });
|
|
@@ -4,10 +4,14 @@ interface EmailRule {
|
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
6
|
* Валидирует адресс электронной почты.
|
|
7
|
-
* @
|
|
7
|
+
* @param options - Параметры.
|
|
8
|
+
* @param options.pattern - Регулярное выражение.
|
|
9
|
+
* @param options.message - Кастомное сообщение.
|
|
10
|
+
*
|
|
11
|
+
* @example rules: { pattern: getEmailRule() }
|
|
8
12
|
*/
|
|
9
13
|
export declare const getEmailRule: ({ pattern, message, }: EmailRule) => {
|
|
10
|
-
|
|
14
|
+
value: RegExp;
|
|
11
15
|
message: string;
|
|
12
16
|
};
|
|
13
17
|
export {};
|
|
@@ -5,11 +5,15 @@ const DEFAULT_PATTERN = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
|
|
|
5
5
|
const DEFAULT_MESSAGE = "Пожалуйста, проверьте правильность введенного адреса электронной почты.";
|
|
6
6
|
/**
|
|
7
7
|
* Валидирует адресс электронной почты.
|
|
8
|
-
* @
|
|
8
|
+
* @param options - Параметры.
|
|
9
|
+
* @param options.pattern - Регулярное выражение.
|
|
10
|
+
* @param options.message - Кастомное сообщение.
|
|
11
|
+
*
|
|
12
|
+
* @example rules: { pattern: getEmailRule() }
|
|
9
13
|
*/
|
|
10
14
|
const getEmailRule = ({ pattern = DEFAULT_PATTERN, message = DEFAULT_MESSAGE, }) => {
|
|
11
15
|
return {
|
|
12
|
-
pattern,
|
|
16
|
+
value: pattern,
|
|
13
17
|
message,
|
|
14
18
|
};
|
|
15
19
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Валидирует максимальную длину строки
|
|
3
|
+
* @param maxLength - Максимальное количество символов для ввода
|
|
4
|
+
* @param mrssage - Кастомное сообщение.
|
|
5
|
+
*
|
|
6
|
+
* @example rules: { maxLength: getMaxLengthRule(1000)}
|
|
7
|
+
*/
|
|
8
|
+
export declare const getMaxLengthRule: (maxLength: number, message?: string) => {
|
|
9
|
+
value: number;
|
|
10
|
+
message: string;
|
|
11
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getMaxLengthRule = void 0;
|
|
7
|
+
const plural_ru_1 = __importDefault(require("plural-ru"));
|
|
8
|
+
/**
|
|
9
|
+
* Валидирует максимальную длину строки
|
|
10
|
+
* @param maxLength - Максимальное количество символов для ввода
|
|
11
|
+
* @param mrssage - Кастомное сообщение.
|
|
12
|
+
*
|
|
13
|
+
* @example rules: { maxLength: getMaxLengthRule(1000)}
|
|
14
|
+
*/
|
|
15
|
+
const getMaxLengthRule = (maxLength, message) => {
|
|
16
|
+
const formattedMessage = `Максимальная длина ${maxLength} ${(0, plural_ru_1.default)(maxLength, 'символ', 'символа', 'символов')}.`;
|
|
17
|
+
return {
|
|
18
|
+
value: maxLength,
|
|
19
|
+
message: message || formattedMessage
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports.getMaxLengthRule = getMaxLengthRule;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface MaxRuleProps {
|
|
2
|
+
max: number;
|
|
3
|
+
message?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Возвращает ошибку, если число, больше указанного.
|
|
7
|
+
* @param options - Параметры.
|
|
8
|
+
* @param options.max - Максимальное число
|
|
9
|
+
* @param options.message - Кастомное сообщение.
|
|
10
|
+
*
|
|
11
|
+
* @example rules: { max: getMaxRule(20) }
|
|
12
|
+
*/
|
|
13
|
+
export declare const getMaxRule: ({ max, message, }: MaxRuleProps) => {
|
|
14
|
+
value: number;
|
|
15
|
+
message: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMaxRule = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает ошибку, если число, больше указанного.
|
|
6
|
+
* @param options - Параметры.
|
|
7
|
+
* @param options.max - Максимальное число
|
|
8
|
+
* @param options.message - Кастомное сообщение.
|
|
9
|
+
*
|
|
10
|
+
* @example rules: { max: getMaxRule(20) }
|
|
11
|
+
*/
|
|
12
|
+
const getMaxRule = ({ max, message, }) => ({
|
|
13
|
+
value: max,
|
|
14
|
+
message: message || `Максимальное значение ${max}.`,
|
|
15
|
+
});
|
|
16
|
+
exports.getMaxRule = getMaxRule;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @param
|
|
4
|
-
* @param message -
|
|
5
|
-
*
|
|
2
|
+
* Возвращает правило, которое валидирует минимальную длину строки
|
|
3
|
+
* @param maxLength - Минимальное количество символов для ввода
|
|
4
|
+
* @param message - Кастомное сообщение.
|
|
5
|
+
*
|
|
6
|
+
* @example rules: { minLength: getMinLengthRule(20) }
|
|
6
7
|
*/
|
|
7
|
-
export declare const getMinLengthRule: (
|
|
8
|
-
|
|
8
|
+
export declare const getMinLengthRule: (minLength: number, message?: string) => {
|
|
9
|
+
value: number;
|
|
9
10
|
message: string;
|
|
10
11
|
};
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.getMinLengthRule = void 0;
|
|
7
|
+
const plural_ru_1 = __importDefault(require("plural-ru"));
|
|
4
8
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param
|
|
7
|
-
* @param message -
|
|
8
|
-
*
|
|
9
|
+
* Возвращает правило, которое валидирует минимальную длину строки
|
|
10
|
+
* @param maxLength - Минимальное количество символов для ввода
|
|
11
|
+
* @param message - Кастомное сообщение.
|
|
12
|
+
*
|
|
13
|
+
* @example rules: { minLength: getMinLengthRule(20) }
|
|
9
14
|
*/
|
|
10
|
-
const getMinLengthRule = (
|
|
15
|
+
const getMinLengthRule = (minLength, message) => {
|
|
16
|
+
const formattedMessage = `Минимальная длина ${minLength} ${(0, plural_ru_1.default)(minLength, 'символ', 'символа', 'символов')}.`;
|
|
11
17
|
return {
|
|
12
|
-
|
|
13
|
-
message: message ||
|
|
18
|
+
value: minLength,
|
|
19
|
+
message: message || formattedMessage,
|
|
14
20
|
};
|
|
15
21
|
};
|
|
16
22
|
exports.getMinLengthRule = getMinLengthRule;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
export interface MinRuleProps {
|
|
2
|
+
min: number;
|
|
3
|
+
message?: string;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @param
|
|
4
|
-
* @param
|
|
6
|
+
* Возвращает ошибку, если число, меньше указанного.
|
|
7
|
+
* @param options - Параметры.
|
|
8
|
+
* @param options.max - Минимальное число
|
|
9
|
+
* @param options.message - Кастомное сообщение.
|
|
10
|
+
*
|
|
11
|
+
* @example rules: { max: getMinRule(20) }
|
|
5
12
|
*/
|
|
6
|
-
export declare const getMinRule: (min
|
|
7
|
-
|
|
8
|
-
min: number;
|
|
13
|
+
export declare const getMinRule: ({ min, message, }: MinRuleProps) => {
|
|
14
|
+
value: number;
|
|
9
15
|
message: string;
|
|
10
16
|
};
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getMinRule = void 0;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param
|
|
7
|
-
* @param
|
|
5
|
+
* Возвращает ошибку, если число, меньше указанного.
|
|
6
|
+
* @param options - Параметры.
|
|
7
|
+
* @param options.max - Минимальное число
|
|
8
|
+
* @param options.message - Кастомное сообщение.
|
|
9
|
+
*
|
|
10
|
+
* @example rules: { max: getMinRule(20) }
|
|
8
11
|
*/
|
|
9
|
-
const getMinRule = (min, message) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
message: message || getMinError(min),
|
|
14
|
-
};
|
|
15
|
-
};
|
|
12
|
+
const getMinRule = ({ min, message, }) => ({
|
|
13
|
+
value: min,
|
|
14
|
+
message: message || `Минимальное значение ${min}.`,
|
|
15
|
+
});
|
|
16
16
|
exports.getMinRule = getMinRule;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
interface RequiredRuleProps {
|
|
2
|
+
isRequired?: boolean;
|
|
3
|
+
message?: string;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @param
|
|
4
|
-
* @param
|
|
5
|
-
* @
|
|
6
|
+
* Валидирует обязательное поле.
|
|
7
|
+
* @param options - Параметры.
|
|
8
|
+
* @param options.isRequired - Динимический параметр, которые отвечает за то, что поле является обязательным.
|
|
9
|
+
* @param options.message - Кастомное сообщение.
|
|
10
|
+
*
|
|
11
|
+
* @example rules: { required: getRequiredRule({}) }
|
|
6
12
|
*/
|
|
7
|
-
export declare const getRequiredRule: (isRequired
|
|
8
|
-
|
|
13
|
+
export declare const getRequiredRule: ({ isRequired, message }: RequiredRuleProps) => {
|
|
14
|
+
value: boolean;
|
|
9
15
|
message: string;
|
|
10
16
|
};
|
|
17
|
+
export {};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getRequiredRule = void 0;
|
|
4
|
+
const REQUIRED_MESSAGE_TEXT = 'Это поле обязательное.';
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param
|
|
7
|
-
* @param
|
|
8
|
-
* @
|
|
6
|
+
* Валидирует обязательное поле.
|
|
7
|
+
* @param options - Параметры.
|
|
8
|
+
* @param options.isRequired - Динимический параметр, которые отвечает за то, что поле является обязательным.
|
|
9
|
+
* @param options.message - Кастомное сообщение.
|
|
10
|
+
*
|
|
11
|
+
* @example rules: { required: getRequiredRule({}) }
|
|
9
12
|
*/
|
|
10
|
-
const getRequiredRule = (isRequired = true, message) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
message: formattedMessage,
|
|
15
|
-
};
|
|
16
|
-
};
|
|
13
|
+
const getRequiredRule = ({ isRequired = true, message = REQUIRED_MESSAGE_TEXT }) => ({
|
|
14
|
+
value: isRequired,
|
|
15
|
+
message,
|
|
16
|
+
});
|
|
17
17
|
exports.getRequiredRule = getRequiredRule;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Валидирует массив, проверяет есть ли в нем значения
|
|
3
|
+
* @param value - Массиов со значениями
|
|
4
|
+
* @param message - Кастомное сообщение.
|
|
5
|
+
*
|
|
6
|
+
* @example rules: { validate: getRequiredArrrayRule }
|
|
7
|
+
*/
|
|
8
|
+
export declare const getRequiredArrayRule: (arr: unknown[], message?: string) => string | true;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRequiredArrayRule = void 0;
|
|
4
|
+
const REQUIRED_MESSAGE_TEXT = 'Это поле обязательное.';
|
|
5
|
+
/**
|
|
6
|
+
* Валидирует массив, проверяет есть ли в нем значения
|
|
7
|
+
* @param value - Массиов со значениями
|
|
8
|
+
* @param message - Кастомное сообщение.
|
|
9
|
+
*
|
|
10
|
+
* @example rules: { validate: getRequiredArrrayRule }
|
|
11
|
+
*/
|
|
12
|
+
const getRequiredArrayRule = (arr, message) => {
|
|
13
|
+
return arr.length > 0 || (message || REQUIRED_MESSAGE_TEXT);
|
|
14
|
+
};
|
|
15
|
+
exports.getRequiredArrayRule = getRequiredArrayRule;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Валидирует объект, проверяет если в нем значения
|
|
3
|
+
* @param obj - Объект со значениями
|
|
4
|
+
* @param message - Кастомное сообщение.
|
|
5
|
+
*
|
|
6
|
+
* @example rules: { validate: getRequiredObjectRule }
|
|
7
|
+
*/
|
|
8
|
+
export declare const getRequiredObjectRule: (obj: Record<string, unknown>, message?: string) => string | true;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRequiredObjectRule = void 0;
|
|
4
|
+
const REQUIRED_MESSAGE_TEXT = 'Это поле обязательное.';
|
|
5
|
+
/**
|
|
6
|
+
* Валидирует объект, проверяет если в нем значения
|
|
7
|
+
* @param obj - Объект со значениями
|
|
8
|
+
* @param message - Кастомное сообщение.
|
|
9
|
+
*
|
|
10
|
+
* @example rules: { validate: getRequiredObjectRule }
|
|
11
|
+
*/
|
|
12
|
+
const getRequiredObjectRule = (obj, message) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const formattedMessage = message || REQUIRED_MESSAGE_TEXT;
|
|
15
|
+
if (!obj) {
|
|
16
|
+
return false || formattedMessage;
|
|
17
|
+
}
|
|
18
|
+
return ((_a = Object === null || Object === void 0 ? void 0 : Object.keys(obj)) === null || _a === void 0 ? void 0 : _a.length) > 0 || formattedMessage;
|
|
19
|
+
};
|
|
20
|
+
exports.getRequiredObjectRule = getRequiredObjectRule;
|
|
@@ -3,10 +3,15 @@ interface UrlRule {
|
|
|
3
3
|
pattern?: RegExp;
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Возвращает правило, которое валидирует ввод url
|
|
7
|
+
* @param options - Параметры.
|
|
8
|
+
* @param options.pattern - Регулярное выражение.
|
|
9
|
+
* @param options.message - Кастомное сообщение.
|
|
10
|
+
*
|
|
11
|
+
* @example rules: { pattern: getUrlValidationRule() }
|
|
7
12
|
*/
|
|
8
|
-
export declare const getUrlRule: ({
|
|
13
|
+
export declare const getUrlRule: ({ pattern, message, }: UrlRule) => {
|
|
9
14
|
message: string;
|
|
10
|
-
|
|
15
|
+
value: RegExp;
|
|
11
16
|
};
|
|
12
17
|
export {};
|
|
@@ -4,12 +4,17 @@ exports.getUrlRule = void 0;
|
|
|
4
4
|
const DEFAULT_MESSAGE = "Ссылка не соответствует формату";
|
|
5
5
|
const DEFAULT_PATTERN = /(http(s)?):\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Возвращает правило, которое валидирует ввод url
|
|
8
|
+
* @param options - Параметры.
|
|
9
|
+
* @param options.pattern - Регулярное выражение.
|
|
10
|
+
* @param options.message - Кастомное сообщение.
|
|
11
|
+
*
|
|
12
|
+
* @example rules: { pattern: getUrlValidationRule() }
|
|
8
13
|
*/
|
|
9
|
-
const getUrlRule = ({
|
|
14
|
+
const getUrlRule = ({ pattern = DEFAULT_PATTERN, message = DEFAULT_MESSAGE, }) => {
|
|
10
15
|
return {
|
|
11
16
|
message,
|
|
12
|
-
pattern,
|
|
17
|
+
value: pattern,
|
|
13
18
|
};
|
|
14
19
|
};
|
|
15
20
|
exports.getUrlRule = getUrlRule;
|
package/index.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
import { getEmailRule } from "./rules/get-email-rule";
|
|
3
3
|
import { getMaxArrayLengthRule } from "./rules/get-max-array-length";
|
|
4
|
-
import {
|
|
4
|
+
import { getMaxLengthRule } from "./rules/get-max-length-rule";
|
|
5
5
|
import { getMinArrayLengthRule } from "./rules/get-min-array-length";
|
|
6
|
+
import { getMaxRule } from "./rules/get-max-rule";
|
|
7
|
+
import { getMinLengthRule } from "./rules/get-min-length-rule";
|
|
6
8
|
import { getMinRule } from "./rules/get-min-rule";
|
|
9
|
+
import { getRequiredRule } from "./rules/get-require-rule";
|
|
10
|
+
import { getRequiredArrayRule } from "./rules/get-required-array-role";
|
|
11
|
+
import { getRequiredObjectRule } from "./rules/get-required-object-rule";
|
|
7
12
|
import { getUrlRule } from "./rules/get-url-rule";
|
|
8
13
|
|
|
9
14
|
export {
|
|
15
|
+
getMaxRule,
|
|
16
|
+
getRequiredObjectRule,
|
|
17
|
+
getRequiredArrayRule,
|
|
10
18
|
getEmailRule,
|
|
19
|
+
getMaxLengthRule,
|
|
11
20
|
getMaxArrayLengthRule,
|
|
12
21
|
getMinArrayLengthRule,
|
|
13
22
|
getMinLengthRule,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-hook-form-rules",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@types/node": "^22.7.0",
|
|
16
|
+
"plural-ru": "^2.0.2",
|
|
16
17
|
"typescript": "^5.6.2"
|
|
17
18
|
}
|
|
18
19
|
}
|
package/rules/get-email-rule.ts
CHANGED
|
@@ -8,14 +8,18 @@ interface EmailRule {
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Валидирует адресс электронной почты.
|
|
11
|
-
* @
|
|
11
|
+
* @param options - Параметры.
|
|
12
|
+
* @param options.pattern - Регулярное выражение.
|
|
13
|
+
* @param options.message - Кастомное сообщение.
|
|
14
|
+
*
|
|
15
|
+
* @example rules: { pattern: getEmailRule() }
|
|
12
16
|
*/
|
|
13
17
|
export const getEmailRule = ({
|
|
14
18
|
pattern = DEFAULT_PATTERN,
|
|
15
19
|
message = DEFAULT_MESSAGE,
|
|
16
20
|
}: EmailRule) => {
|
|
17
21
|
return {
|
|
18
|
-
pattern,
|
|
22
|
+
value: pattern,
|
|
19
23
|
message,
|
|
20
24
|
}
|
|
21
25
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import plural from 'plural-ru'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Валидирует максимальную длину строки
|
|
5
|
+
* @param maxLength - Максимальное количество символов для ввода
|
|
6
|
+
* @param mrssage - Кастомное сообщение.
|
|
7
|
+
*
|
|
8
|
+
* @example rules: { maxLength: getMaxLengthRule(1000)}
|
|
9
|
+
*/
|
|
10
|
+
export const getMaxLengthRule = (maxLength: number, message?: string) => {
|
|
11
|
+
const formattedMessage =
|
|
12
|
+
`Максимальная длина ${maxLength} ${plural(
|
|
13
|
+
maxLength,
|
|
14
|
+
'символ',
|
|
15
|
+
'символа',
|
|
16
|
+
'символов',
|
|
17
|
+
)}.`
|
|
18
|
+
|
|
19
|
+
return {
|
|
20
|
+
value: maxLength,
|
|
21
|
+
message: message || formattedMessage
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface MaxRuleProps {
|
|
2
|
+
max: number
|
|
3
|
+
message?: string
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает ошибку, если число, больше указанного.
|
|
8
|
+
* @param options - Параметры.
|
|
9
|
+
* @param options.max - Максимальное число
|
|
10
|
+
* @param options.message - Кастомное сообщение.
|
|
11
|
+
*
|
|
12
|
+
* @example rules: { max: getMaxRule(20) }
|
|
13
|
+
*/
|
|
14
|
+
export const getMaxRule = ({
|
|
15
|
+
max,
|
|
16
|
+
message,
|
|
17
|
+
}: MaxRuleProps) => ({
|
|
18
|
+
value: max,
|
|
19
|
+
message: message || `Максимальное значение ${max}.`,
|
|
20
|
+
})
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
+
import plural from 'plural-ru'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @param
|
|
4
|
-
* @param message -
|
|
5
|
-
*
|
|
4
|
+
* Возвращает правило, которое валидирует минимальную длину строки
|
|
5
|
+
* @param maxLength - Минимальное количество символов для ввода
|
|
6
|
+
* @param message - Кастомное сообщение.
|
|
7
|
+
*
|
|
8
|
+
* @example rules: { minLength: getMinLengthRule(20) }
|
|
6
9
|
*/
|
|
7
|
-
export const getMinLengthRule = (
|
|
10
|
+
export const getMinLengthRule = (minLength: number, message?: string) => {
|
|
11
|
+
const formattedMessage = `Минимальная длина ${minLength} ${plural(
|
|
12
|
+
minLength,
|
|
13
|
+
'символ',
|
|
14
|
+
'символа',
|
|
15
|
+
'символов',
|
|
16
|
+
)}.`
|
|
17
|
+
|
|
8
18
|
return {
|
|
9
|
-
|
|
10
|
-
message: message ||
|
|
11
|
-
}
|
|
12
|
-
}
|
|
19
|
+
value: minLength,
|
|
20
|
+
message: message || formattedMessage,
|
|
21
|
+
};
|
|
22
|
+
};
|
package/rules/get-min-rule.ts
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
export interface MinRuleProps {
|
|
2
|
+
min: number
|
|
3
|
+
message?: string
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @param
|
|
4
|
-
* @param
|
|
7
|
+
* Возвращает ошибку, если число, меньше указанного.
|
|
8
|
+
* @param options - Параметры.
|
|
9
|
+
* @param options.max - Минимальное число
|
|
10
|
+
* @param options.message - Кастомное сообщение.
|
|
11
|
+
*
|
|
12
|
+
* @example rules: { max: getMinRule(20) }
|
|
5
13
|
*/
|
|
6
|
-
export const getMinRule = (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
}
|
|
14
|
+
export const getMinRule = ({
|
|
15
|
+
min,
|
|
16
|
+
message,
|
|
17
|
+
}: MinRuleProps) => ({
|
|
18
|
+
value: min,
|
|
19
|
+
message: message || `Минимальное значение ${min}.`,
|
|
20
|
+
})
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
* Делает поле обязательным.
|
|
3
|
-
* @param isRequired - Статус обазательного поля.
|
|
4
|
-
* @param message - Кастомное сообщение об ошибке.
|
|
5
|
-
* @example getRequired(true)
|
|
6
|
-
*/
|
|
7
|
-
export const getRequiredRule = (isRequired = true, message?: string) => {
|
|
8
|
-
const formattedMessage = message || "Это поле обязательное.";
|
|
1
|
+
const REQUIRED_MESSAGE_TEXT = 'Это поле обязательное.';
|
|
9
2
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
3
|
+
interface RequiredRuleProps {
|
|
4
|
+
isRequired?: boolean
|
|
5
|
+
message?: string
|
|
14
6
|
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Валидирует обязательное поле.
|
|
10
|
+
* @param options - Параметры.
|
|
11
|
+
* @param options.isRequired - Динимический параметр, которые отвечает за то, что поле является обязательным.
|
|
12
|
+
* @param options.message - Кастомное сообщение.
|
|
13
|
+
*
|
|
14
|
+
* @example rules: { required: getRequiredRule({}) }
|
|
15
|
+
*/
|
|
16
|
+
export const getRequiredRule = ({
|
|
17
|
+
isRequired = true,
|
|
18
|
+
message = REQUIRED_MESSAGE_TEXT
|
|
19
|
+
}: RequiredRuleProps) => ({
|
|
20
|
+
value: isRequired,
|
|
21
|
+
message,
|
|
22
|
+
})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const REQUIRED_MESSAGE_TEXT = 'Это поле обязательное.';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Валидирует массив, проверяет есть ли в нем значения
|
|
5
|
+
* @param value - Массиов со значениями
|
|
6
|
+
* @param message - Кастомное сообщение.
|
|
7
|
+
*
|
|
8
|
+
* @example rules: { validate: getRequiredArrrayRule }
|
|
9
|
+
*/
|
|
10
|
+
export const getRequiredArrayRule = (arr: unknown[], message?: string) => {
|
|
11
|
+
return arr.length > 0 || (message || REQUIRED_MESSAGE_TEXT);
|
|
12
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const REQUIRED_MESSAGE_TEXT = 'Это поле обязательное.';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Валидирует объект, проверяет если в нем значения
|
|
5
|
+
* @param obj - Объект со значениями
|
|
6
|
+
* @param message - Кастомное сообщение.
|
|
7
|
+
*
|
|
8
|
+
* @example rules: { validate: getRequiredObjectRule }
|
|
9
|
+
*/
|
|
10
|
+
export const getRequiredObjectRule = (obj: Record<string, unknown>, message?: string) => {
|
|
11
|
+
const formattedMessage = message || REQUIRED_MESSAGE_TEXT;
|
|
12
|
+
|
|
13
|
+
if (!obj) {
|
|
14
|
+
return false || formattedMessage;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return Object?.keys(obj)?.length > 0 || formattedMessage;
|
|
18
|
+
};
|
package/rules/get-url-rule.ts
CHANGED
|
@@ -7,14 +7,19 @@ interface UrlRule {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Возвращает правило, которое валидирует ввод url
|
|
11
|
+
* @param options - Параметры.
|
|
12
|
+
* @param options.pattern - Регулярное выражение.
|
|
13
|
+
* @param options.message - Кастомное сообщение.
|
|
14
|
+
*
|
|
15
|
+
* @example rules: { pattern: getUrlValidationRule() }
|
|
11
16
|
*/
|
|
12
17
|
export const getUrlRule = ({
|
|
13
|
-
message = DEFAULT_MESSAGE,
|
|
14
18
|
pattern = DEFAULT_PATTERN,
|
|
19
|
+
message = DEFAULT_MESSAGE,
|
|
15
20
|
}: UrlRule) => {
|
|
16
21
|
return {
|
|
17
22
|
message,
|
|
18
|
-
pattern,
|
|
23
|
+
value: pattern,
|
|
19
24
|
};
|
|
20
25
|
};
|