@chopperqt/react-hook-form-rules 2.3.1

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.
Files changed (103) hide show
  1. package/CHANGELOG.md +314 -0
  2. package/README.md +307 -0
  3. package/dist/cjs/index.d.ts +15 -0
  4. package/dist/cjs/index.js +31 -0
  5. package/dist/cjs/locales/TranslateKey.d.ts +12 -0
  6. package/dist/cjs/locales/TranslateKey.js +14 -0
  7. package/dist/cjs/locales/en.json +11 -0
  8. package/dist/cjs/locales/i18n.d.ts +5 -0
  9. package/dist/cjs/locales/i18n.js +37 -0
  10. package/dist/cjs/locales/index.d.ts +4 -0
  11. package/dist/cjs/locales/index.js +9 -0
  12. package/dist/cjs/locales/ru.json +11 -0
  13. package/dist/cjs/rules/array/get-max-array-length-rule.d.ts +9 -0
  14. package/dist/cjs/rules/array/get-max-array-length-rule.js +17 -0
  15. package/dist/cjs/rules/array/get-min-array-length-rule.d.ts +9 -0
  16. package/dist/cjs/rules/array/get-min-array-length-rule.js +17 -0
  17. package/dist/cjs/rules/array/get-required-array-rule.d.ts +8 -0
  18. package/dist/cjs/rules/array/get-required-array-rule.js +15 -0
  19. package/dist/cjs/rules/constants.d.ts +1 -0
  20. package/dist/cjs/rules/constants.js +4 -0
  21. package/dist/cjs/rules/date/get-required-date-range-rule.d.ts +12 -0
  22. package/dist/cjs/rules/date/get-required-date-range-rule.js +23 -0
  23. package/dist/cjs/rules/default/get-max-length-rule.d.ts +11 -0
  24. package/dist/cjs/rules/default/get-max-length-rule.js +18 -0
  25. package/dist/cjs/rules/default/get-max-rule.d.ts +11 -0
  26. package/dist/cjs/rules/default/get-max-rule.js +16 -0
  27. package/dist/cjs/rules/default/get-min-length-rule.d.ts +11 -0
  28. package/dist/cjs/rules/default/get-min-length-rule.js +18 -0
  29. package/dist/cjs/rules/default/get-min-rule.d.ts +11 -0
  30. package/dist/cjs/rules/default/get-min-rule.js +18 -0
  31. package/dist/cjs/rules/default/get-require-rule.d.ts +11 -0
  32. package/dist/cjs/rules/default/get-require-rule.js +16 -0
  33. package/dist/cjs/rules/object/get-required-object-rule.d.ts +8 -0
  34. package/dist/cjs/rules/object/get-required-object-rule.js +21 -0
  35. package/dist/cjs/rules/patterns/get-email-rule.d.ts +17 -0
  36. package/dist/cjs/rules/patterns/get-email-rule.js +16 -0
  37. package/dist/cjs/rules/patterns/get-pattern-rule.d.ts +12 -0
  38. package/dist/cjs/rules/patterns/get-pattern-rule.js +16 -0
  39. package/dist/cjs/rules/patterns/get-url-rule.d.ts +17 -0
  40. package/dist/cjs/rules/patterns/get-url-rule.js +16 -0
  41. package/dist/cjs/tests/locales/locales.test.d.ts +1 -0
  42. package/dist/cjs/tests/locales/locales.test.js +20 -0
  43. package/dist/cjs/tests/rules/array/get-max-array-length-rule.test.d.ts +1 -0
  44. package/dist/cjs/tests/rules/array/get-max-array-length-rule.test.js +15 -0
  45. package/dist/cjs/tests/rules/array/get-min-array-length-rule.test.d.ts +1 -0
  46. package/dist/cjs/tests/rules/array/get-min-array-length-rule.test.js +15 -0
  47. package/dist/cjs/tests/rules/array/get-required-array-rule.test.d.ts +1 -0
  48. package/dist/cjs/tests/rules/array/get-required-array-rule.test.js +15 -0
  49. package/dist/cjs/tests/rules/date/get-required-date-range-rule.test.d.ts +1 -0
  50. package/dist/cjs/tests/rules/date/get-required-date-range-rule.test.js +14 -0
  51. package/dist/cjs/tests/rules/default/get-max-length-rule.test.d.ts +1 -0
  52. package/dist/cjs/tests/rules/default/get-max-length-rule.test.js +23 -0
  53. package/dist/cjs/tests/rules/default/get-max-rule.test.d.ts +1 -0
  54. package/dist/cjs/tests/rules/default/get-max-rule.test.js +23 -0
  55. package/dist/cjs/tests/rules/default/get-min-length-rule.test.d.ts +1 -0
  56. package/dist/cjs/tests/rules/default/get-min-length-rule.test.js +23 -0
  57. package/dist/cjs/tests/rules/default/get-min-rule.test.d.ts +1 -0
  58. package/dist/cjs/tests/rules/default/get-min-rule.test.js +23 -0
  59. package/dist/cjs/tests/rules/default/get-required-rule.test.d.ts +1 -0
  60. package/dist/cjs/tests/rules/default/get-required-rule.test.js +11 -0
  61. package/dist/cjs/tests/rules/object/get-require-object-rule.test.d.ts +1 -0
  62. package/dist/cjs/tests/rules/object/get-require-object-rule.test.js +15 -0
  63. package/dist/cjs/tests/rules/patterns/get-email-rule.test.d.ts +1 -0
  64. package/dist/cjs/tests/rules/patterns/get-email-rule.test.js +25 -0
  65. package/dist/cjs/tests/rules/patterns/get-pattern-rule.test.d.ts +1 -0
  66. package/dist/cjs/tests/rules/patterns/get-pattern-rule.test.js +11 -0
  67. package/dist/cjs/tests/rules/patterns/get-url-rule.test.d.ts +1 -0
  68. package/dist/cjs/tests/rules/patterns/get-url-rule.test.js +25 -0
  69. package/dist/esm/index.js +15 -0
  70. package/dist/esm/locales/TranslateKey.js +11 -0
  71. package/dist/esm/locales/en.json +11 -0
  72. package/dist/esm/locales/i18n.js +31 -0
  73. package/dist/esm/locales/index.js +4 -0
  74. package/dist/esm/locales/ru.json +11 -0
  75. package/dist/esm/rules/array/get-max-array-length-rule.js +13 -0
  76. package/dist/esm/rules/array/get-min-array-length-rule.js +13 -0
  77. package/dist/esm/rules/array/get-required-array-rule.js +11 -0
  78. package/dist/esm/rules/constants.js +1 -0
  79. package/dist/esm/rules/date/get-required-date-range-rule.js +19 -0
  80. package/dist/esm/rules/default/get-max-length-rule.js +14 -0
  81. package/dist/esm/rules/default/get-max-rule.js +12 -0
  82. package/dist/esm/rules/default/get-min-length-rule.js +14 -0
  83. package/dist/esm/rules/default/get-min-rule.js +14 -0
  84. package/dist/esm/rules/default/get-require-rule.js +12 -0
  85. package/dist/esm/rules/object/get-required-object-rule.js +17 -0
  86. package/dist/esm/rules/patterns/get-email-rule.js +12 -0
  87. package/dist/esm/rules/patterns/get-pattern-rule.js +12 -0
  88. package/dist/esm/rules/patterns/get-url-rule.js +12 -0
  89. package/dist/esm/tests/locales/locales.test.js +18 -0
  90. package/dist/esm/tests/rules/array/get-max-array-length-rule.test.js +13 -0
  91. package/dist/esm/tests/rules/array/get-min-array-length-rule.test.js +13 -0
  92. package/dist/esm/tests/rules/array/get-required-array-rule.test.js +13 -0
  93. package/dist/esm/tests/rules/date/get-required-date-range-rule.test.js +12 -0
  94. package/dist/esm/tests/rules/default/get-max-length-rule.test.js +21 -0
  95. package/dist/esm/tests/rules/default/get-max-rule.test.js +21 -0
  96. package/dist/esm/tests/rules/default/get-min-length-rule.test.js +21 -0
  97. package/dist/esm/tests/rules/default/get-min-rule.test.js +21 -0
  98. package/dist/esm/tests/rules/default/get-required-rule.test.js +9 -0
  99. package/dist/esm/tests/rules/object/get-require-object-rule.test.js +13 -0
  100. package/dist/esm/tests/rules/patterns/get-email-rule.test.js +23 -0
  101. package/dist/esm/tests/rules/patterns/get-pattern-rule.test.js +9 -0
  102. package/dist/esm/tests/rules/patterns/get-url-rule.test.js +23 -0
  103. package/package.json +54 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = exports.getRequiredDateRangeRule = exports.getUrlRule = exports.getRequiredRule = exports.getMinRule = exports.getMinLengthRule = exports.getMinArrayLengthRule = exports.getMaxArrayLengthRule = exports.getMaxLengthRule = exports.getEmailRule = exports.getRequiredArrayRule = exports.getRequiredObjectRule = exports.getMaxRule = exports.getPatternRule = void 0;
4
+ const get_email_rule_1 = require("./rules/patterns/get-email-rule");
5
+ Object.defineProperty(exports, "getEmailRule", { enumerable: true, get: function () { return get_email_rule_1.getEmailRule; } });
6
+ const get_url_rule_1 = require("./rules/patterns/get-url-rule");
7
+ Object.defineProperty(exports, "getUrlRule", { enumerable: true, get: function () { return get_url_rule_1.getUrlRule; } });
8
+ const get_pattern_rule_1 = require("./rules/patterns/get-pattern-rule");
9
+ Object.defineProperty(exports, "getPatternRule", { enumerable: true, get: function () { return get_pattern_rule_1.getPatternRule; } });
10
+ const get_max_array_length_rule_1 = require("./rules/array/get-max-array-length-rule");
11
+ Object.defineProperty(exports, "getMaxArrayLengthRule", { enumerable: true, get: function () { return get_max_array_length_rule_1.getMaxArrayLengthRule; } });
12
+ const get_min_array_length_rule_1 = require("./rules/array/get-min-array-length-rule");
13
+ Object.defineProperty(exports, "getMinArrayLengthRule", { enumerable: true, get: function () { return get_min_array_length_rule_1.getMinArrayLengthRule; } });
14
+ const get_required_array_rule_1 = require("./rules/array/get-required-array-rule");
15
+ Object.defineProperty(exports, "getRequiredArrayRule", { enumerable: true, get: function () { return get_required_array_rule_1.getRequiredArrayRule; } });
16
+ const get_max_length_rule_1 = require("./rules/default/get-max-length-rule");
17
+ Object.defineProperty(exports, "getMaxLengthRule", { enumerable: true, get: function () { return get_max_length_rule_1.getMaxLengthRule; } });
18
+ const get_max_rule_1 = require("./rules/default/get-max-rule");
19
+ Object.defineProperty(exports, "getMaxRule", { enumerable: true, get: function () { return get_max_rule_1.getMaxRule; } });
20
+ const get_min_length_rule_1 = require("./rules/default/get-min-length-rule");
21
+ Object.defineProperty(exports, "getMinLengthRule", { enumerable: true, get: function () { return get_min_length_rule_1.getMinLengthRule; } });
22
+ const get_min_rule_1 = require("./rules/default/get-min-rule");
23
+ Object.defineProperty(exports, "getMinRule", { enumerable: true, get: function () { return get_min_rule_1.getMinRule; } });
24
+ const get_require_rule_1 = require("./rules/default/get-require-rule");
25
+ Object.defineProperty(exports, "getRequiredRule", { enumerable: true, get: function () { return get_require_rule_1.getRequiredRule; } });
26
+ const get_required_object_rule_1 = require("./rules/object/get-required-object-rule");
27
+ Object.defineProperty(exports, "getRequiredObjectRule", { enumerable: true, get: function () { return get_required_object_rule_1.getRequiredObjectRule; } });
28
+ const get_required_date_range_rule_1 = require("@rules/date/get-required-date-range-rule");
29
+ Object.defineProperty(exports, "getRequiredDateRangeRule", { enumerable: true, get: function () { return get_required_date_range_rule_1.getRequiredDateRangeRule; } });
30
+ const i18n_1 = require("./locales/i18n");
31
+ Object.defineProperty(exports, "config", { enumerable: true, get: function () { return i18n_1.config; } });
@@ -0,0 +1,12 @@
1
+ export declare const TranslateKey: {
2
+ readonly REQUIRED: "required";
3
+ readonly MAX_ARRAY_LENGTH: "maxArrayLength";
4
+ readonly MIN_ARRAY_LENGTH: "minArrayLength";
5
+ readonly MIN: "min";
6
+ readonly MAX: "max";
7
+ readonly MIN_LENGTH: "minLength";
8
+ readonly MAX_LENGTH: "maxLength";
9
+ readonly EMAIL: "email";
10
+ readonly URL: "url";
11
+ };
12
+ export type ITranslateKey = typeof TranslateKey[keyof typeof TranslateKey];
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TranslateKey = void 0;
4
+ exports.TranslateKey = {
5
+ REQUIRED: "required",
6
+ MAX_ARRAY_LENGTH: "maxArrayLength",
7
+ MIN_ARRAY_LENGTH: "minArrayLength",
8
+ MIN: "min",
9
+ MAX: "max",
10
+ MIN_LENGTH: "minLength",
11
+ MAX_LENGTH: "maxLength",
12
+ EMAIL: "email",
13
+ URL: "url",
14
+ };
@@ -0,0 +1,11 @@
1
+ {
2
+ "required": "This field is required.",
3
+ "maxArrayLength": "Maximum number of values - {{max}}.",
4
+ "minArrayLength": "Minimum number of values - {{min}}.",
5
+ "min": "Minimum value - {{min}}.",
6
+ "max": "Maximum value - {{max}}.",
7
+ "minLength": "Minimum length - {{min}}.",
8
+ "maxLength": "Maximum length - {{max}}.",
9
+ "email": "Please check the correctness of the entered email address.",
10
+ "url": "The URL does not match the format."
11
+ }
@@ -0,0 +1,5 @@
1
+ import type { ITranslateKey } from './TranslateKey';
2
+ export declare const config: {
3
+ setLanguage: (lang: string) => void;
4
+ translate: (key: ITranslateKey, params?: {}) => string;
5
+ };
@@ -0,0 +1,37 @@
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.config = void 0;
7
+ const en_json_1 = __importDefault(require("./en.json"));
8
+ const ru_json_1 = __importDefault(require("./ru.json"));
9
+ const translataions = {
10
+ en: en_json_1.default,
11
+ ru: ru_json_1.default,
12
+ };
13
+ function reactHookFormRulesConfig(language = 'en') {
14
+ let currentLang = language;
15
+ const setLanguage = (lang) => {
16
+ if (translataions[lang]) {
17
+ currentLang = lang;
18
+ }
19
+ else {
20
+ console.warn(`⚠️ Language "${lang}" is not supported. Defaulting to English.`);
21
+ }
22
+ };
23
+ const translate = (key, params = {}) => {
24
+ var _a;
25
+ let text = translataions[currentLang][key] || key;
26
+ // Подставляем параметры (например, {{min}})
27
+ Object.keys(params).forEach((param) => {
28
+ text = text.replace(`{{${param}}}`, params[param]);
29
+ });
30
+ return (_a = text) !== null && _a !== void 0 ? _a : '';
31
+ };
32
+ return {
33
+ setLanguage,
34
+ translate,
35
+ };
36
+ }
37
+ exports.config = reactHookFormRulesConfig();
@@ -0,0 +1,4 @@
1
+ import { config } from "./i18n";
2
+ import { TranslateKey } from "./TranslateKey";
3
+ declare const translate: (key: import("./TranslateKey").ITranslateKey, params?: {}) => string;
4
+ export { config, translate, TranslateKey, };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TranslateKey = exports.translate = exports.config = void 0;
4
+ const i18n_1 = require("./i18n");
5
+ Object.defineProperty(exports, "config", { enumerable: true, get: function () { return i18n_1.config; } });
6
+ const TranslateKey_1 = require("./TranslateKey");
7
+ Object.defineProperty(exports, "TranslateKey", { enumerable: true, get: function () { return TranslateKey_1.TranslateKey; } });
8
+ const { translate } = i18n_1.config;
9
+ exports.translate = translate;
@@ -0,0 +1,11 @@
1
+ {
2
+ "required": "Поле объязательное.",
3
+ "maxArrayLength": "Максимальное количество значений - {{max}}.",
4
+ "minArrayLength": "Минимальное количество значений - {{min}}.",
5
+ "min": "Минимальное значение - {{min}}.",
6
+ "max": "Максимальное значение - {{max}}.",
7
+ "minLength": "Минимальная длина - {{min}}.",
8
+ "maxLength": "Максимальная длина - {{max}}.",
9
+ "email": "Проверьте правильность введенного адреса электронной почты.",
10
+ "url": "URL не соответствует формату."
11
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Validates an array for the maximum number of values.
3
+ * @param arr - Array of values.
4
+ * @param maxLength - Maximum number of values.
5
+ * @param message - Custom message.
6
+ *
7
+ * @example getMaxArrayLengthRule(2, "Maximum number of values is 2").
8
+ */
9
+ export declare const getMaxArrayLengthRule: (arr: unknown[], maxLength: number, message?: string) => string | true;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMaxArrayLengthRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Validates an array for the maximum number of values.
7
+ * @param arr - Array of values.
8
+ * @param maxLength - Maximum number of values.
9
+ * @param message - Custom message.
10
+ *
11
+ * @example getMaxArrayLengthRule(2, "Maximum number of values is 2").
12
+ */
13
+ const getMaxArrayLengthRule = (arr, maxLength, message) => {
14
+ const formattedMessage = message || (0, _locales_1.translate)(_locales_1.TranslateKey.MAX_ARRAY_LENGTH, { max: maxLength });
15
+ return arr.length < maxLength || formattedMessage;
16
+ };
17
+ exports.getMaxArrayLengthRule = getMaxArrayLengthRule;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Validates an array for the maximum number of values.
3
+ * @param arr - Array of values.
4
+ * @param maxLength - Maximum number of values.
5
+ * @param message - Custom message.
6
+ *
7
+ * @example getMaxArrayLengthRule(3, "Maximum number of values is 2").
8
+ */
9
+ export declare const getMinArrayLengthRule: (arr: unknown[], minLength: number, message?: string) => string | true;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMinArrayLengthRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Validates an array for the maximum number of values.
7
+ * @param arr - Array of values.
8
+ * @param maxLength - Maximum number of values.
9
+ * @param message - Custom message.
10
+ *
11
+ * @example getMaxArrayLengthRule(3, "Maximum number of values is 2").
12
+ */
13
+ const getMinArrayLengthRule = (arr, minLength, message) => {
14
+ const formattedMessage = message || (0, _locales_1.translate)(_locales_1.TranslateKey.MIN_ARRAY_LENGTH, { min: minLength });
15
+ return arr.length >= minLength || formattedMessage;
16
+ };
17
+ exports.getMinArrayLengthRule = getMinArrayLengthRule;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validates an array, checking if it contains values.
3
+ * @param arr - Array of values.
4
+ * @param message - Custom message.
5
+ *
6
+ * @example rules: { validate: (arr) => getRequiredArrayRule(arr) }
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 _locales_1 = require("@locales");
5
+ /**
6
+ * Validates an array, checking if it contains values.
7
+ * @param arr - Array of values.
8
+ * @param message - Custom message.
9
+ *
10
+ * @example rules: { validate: (arr) => getRequiredArrayRule(arr) }
11
+ */
12
+ const getRequiredArrayRule = (arr, message = (0, _locales_1.translate)(_locales_1.TranslateKey.REQUIRED)) => {
13
+ return arr.length > 0 || message;
14
+ };
15
+ exports.getRequiredArrayRule = getRequiredArrayRule;
@@ -0,0 +1 @@
1
+ export declare const REQUIRED_MESSAGE_TEXT = "This field is required.";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REQUIRED_MESSAGE_TEXT = void 0;
4
+ exports.REQUIRED_MESSAGE_TEXT = 'This field is required.';
@@ -0,0 +1,12 @@
1
+ type DateRange = [Date | null, Date | null];
2
+ /**
3
+ * Checks an array of dates that have a large value.
4
+ * @param value - Array with dates
5
+ * @param isRequired - The parameter that determines whether the field is required.
6
+ * @param message - Custom message.
7
+ *
8
+ * @example rules: { validate: (dateRange) => getRequiredDateRangeRule(dateRange, true) }
9
+ * @example rules: { validate: getRequiredDateRangeRule }
10
+ */
11
+ export declare const getRequiredDateRangeRule: (value: DateRange, isRequired?: boolean, message?: string) => string | true;
12
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRequiredDateRangeRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Checks an array of dates that have a large value.
7
+ * @param value - Array with dates
8
+ * @param isRequired - The parameter that determines whether the field is required.
9
+ * @param message - Custom message.
10
+ *
11
+ * @example rules: { validate: (dateRange) => getRequiredDateRangeRule(dateRange, true) }
12
+ * @example rules: { validate: getRequiredDateRangeRule }
13
+ */
14
+ const getRequiredDateRangeRule = (value, isRequired = true, message = (0, _locales_1.translate)(_locales_1.TranslateKey.REQUIRED)) => {
15
+ if (!isRequired) {
16
+ return true;
17
+ }
18
+ if (!value[0] || !value[1]) {
19
+ return message;
20
+ }
21
+ return true;
22
+ };
23
+ exports.getRequiredDateRangeRule = getRequiredDateRangeRule;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Validates the maximum length of a string.
3
+ * @param maxLength - Maximum number of characters allowed.
4
+ * @param message - Custom message.
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,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMaxLengthRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Validates the maximum length of a string.
7
+ * @param maxLength - Maximum number of characters allowed.
8
+ * @param message - Custom message.
9
+ *
10
+ * @example rules: { maxLength: getMaxLengthRule(1000) }
11
+ */
12
+ const getMaxLengthRule = (maxLength, message) => ({
13
+ value: maxLength,
14
+ message: message || (0, _locales_1.translate)(_locales_1.TranslateKey.MAX_LENGTH, {
15
+ max: maxLength,
16
+ }),
17
+ });
18
+ exports.getMaxLengthRule = getMaxLengthRule;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns an error if the number exceeds the specified value.
3
+ * @param max - Maximum number.
4
+ * @param message - Custom message.
5
+ *
6
+ * @example rules: { max: getMaxRule(20) }
7
+ */
8
+ export declare const getMaxRule: (max: number, message?: string) => {
9
+ value: number;
10
+ message: string;
11
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMaxRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Returns an error if the number exceeds the specified value.
7
+ * @param max - Maximum number.
8
+ * @param message - Custom message.
9
+ *
10
+ * @example rules: { max: getMaxRule(20) }
11
+ */
12
+ const getMaxRule = (max, message) => ({
13
+ value: max,
14
+ message: message || (0, _locales_1.translate)(_locales_1.TranslateKey.MAX, { max }),
15
+ });
16
+ exports.getMaxRule = getMaxRule;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns a rule that validates the minimum length of a string.
3
+ * @param minLength - Minimum number of characters allowed.
4
+ * @param message - Custom message.
5
+ *
6
+ * @example rules: { minLength: getMinLengthRule(20) }
7
+ */
8
+ export declare const getMinLengthRule: (minLength: number, message?: string) => {
9
+ value: number;
10
+ message: string;
11
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMinLengthRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Returns a rule that validates the minimum length of a string.
7
+ * @param minLength - Minimum number of characters allowed.
8
+ * @param message - Custom message.
9
+ *
10
+ * @example rules: { minLength: getMinLengthRule(20) }
11
+ */
12
+ const getMinLengthRule = (minLength, message) => {
13
+ return {
14
+ value: minLength,
15
+ message: message || (0, _locales_1.translate)(_locales_1.TranslateKey.MIN_LENGTH, { min: minLength }),
16
+ };
17
+ };
18
+ exports.getMinLengthRule = getMinLengthRule;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns an error if the number is less than the specified value.
3
+ * @param min - Minimum number.
4
+ * @param message - Custom message.
5
+ *
6
+ * @example rules: { min: getMinRule(20) }
7
+ */
8
+ export declare const getMinRule: (min: number, message?: string) => {
9
+ value: number;
10
+ message: string;
11
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMinRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Returns an error if the number is less than the specified value.
7
+ * @param min - Minimum number.
8
+ * @param message - Custom message.
9
+ *
10
+ * @example rules: { min: getMinRule(20) }
11
+ */
12
+ const getMinRule = (min, message) => ({
13
+ value: min,
14
+ message: message || (0, _locales_1.translate)(_locales_1.TranslateKey.MIN, {
15
+ min,
16
+ }),
17
+ });
18
+ exports.getMinRule = getMinRule;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Validates a required field.
3
+ * @param isRequired - Dynamic parameter that indicates whether the field is required.
4
+ * @param message - Custom message.
5
+ *
6
+ * @example rules: { required: getRequiredRule() }
7
+ */
8
+ export declare const getRequiredRule: (isRequired?: boolean, message?: string) => {
9
+ value: boolean;
10
+ message: string;
11
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRequiredRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Validates a required field.
7
+ * @param isRequired - Dynamic parameter that indicates whether the field is required.
8
+ * @param message - Custom message.
9
+ *
10
+ * @example rules: { required: getRequiredRule() }
11
+ */
12
+ const getRequiredRule = (isRequired = true, message = (0, _locales_1.translate)(_locales_1.TranslateKey.REQUIRED)) => ({
13
+ value: isRequired,
14
+ message,
15
+ });
16
+ exports.getRequiredRule = getRequiredRule;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validates an object, checking if it contains values.
3
+ * @param {Object} obj - Object with values.
4
+ * @param {string} message - Custom message.
5
+ *
6
+ * @example rules: { validate: (obj) => getRequiredObjectRule(obj) }
7
+ */
8
+ export declare const getRequiredObjectRule: (obj: Record<string, unknown>, message?: string) => string | true;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRequiredObjectRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ /**
6
+ * Validates an object, checking if it contains values.
7
+ * @param {Object} obj - Object with values.
8
+ * @param {string} message - Custom message.
9
+ *
10
+ * @example rules: { validate: (obj) => getRequiredObjectRule(obj) }
11
+ */
12
+ const getRequiredObjectRule = (obj, message) => {
13
+ var _a;
14
+ const formattedMessage = message || (0, _locales_1.translate)(_locales_1.TranslateKey.REQUIRED);
15
+ if (!obj) {
16
+ return false || formattedMessage;
17
+ }
18
+ const isEmpty = ((_a = Object === null || Object === void 0 ? void 0 : Object.keys(obj)) === null || _a === void 0 ? void 0 : _a.length) > 0;
19
+ return isEmpty || formattedMessage;
20
+ };
21
+ exports.getRequiredObjectRule = getRequiredObjectRule;
@@ -0,0 +1,17 @@
1
+ interface EmailRule {
2
+ pattern?: RegExp;
3
+ message?: string;
4
+ }
5
+ /**
6
+ * Validates an email address.
7
+ * @param options - Parameters.
8
+ * @param {string} options.pattern - Regular expression.
9
+ * @param {string} options.message - Custom message.
10
+ *
11
+ * @example rules: { pattern: getEmailRule({}) }
12
+ */
13
+ export declare const getEmailRule: ({ pattern, message, }: EmailRule) => {
14
+ value: RegExp;
15
+ message: string;
16
+ };
17
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEmailRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ const get_pattern_rule_1 = require("./get-pattern-rule");
6
+ const DEFAULT_PATTERN = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
7
+ /**
8
+ * Validates an email address.
9
+ * @param options - Parameters.
10
+ * @param {string} options.pattern - Regular expression.
11
+ * @param {string} options.message - Custom message.
12
+ *
13
+ * @example rules: { pattern: getEmailRule({}) }
14
+ */
15
+ const getEmailRule = ({ pattern = DEFAULT_PATTERN, message = (0, _locales_1.translate)(_locales_1.TranslateKey.EMAIL), }) => (0, get_pattern_rule_1.getPatternRule)(pattern, message);
16
+ exports.getEmailRule = getEmailRule;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Returns a rule that validates the pattern.
3
+ * @param options - Parameters.
4
+ * @param options.pattern - Regular expression.
5
+ * @param options.message - Custom message.
6
+ *
7
+ * @example rules: { pattern: getPatternRule(pattern) }
8
+ */
9
+ export declare const getPatternRule: (pattern: RegExp, message: string) => {
10
+ value: RegExp;
11
+ message: string;
12
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPatternRule = void 0;
4
+ /**
5
+ * Returns a rule that validates the pattern.
6
+ * @param options - Parameters.
7
+ * @param options.pattern - Regular expression.
8
+ * @param options.message - Custom message.
9
+ *
10
+ * @example rules: { pattern: getPatternRule(pattern) }
11
+ */
12
+ const getPatternRule = (pattern, message) => ({
13
+ value: pattern,
14
+ message,
15
+ });
16
+ exports.getPatternRule = getPatternRule;
@@ -0,0 +1,17 @@
1
+ interface UrlRule {
2
+ message?: string;
3
+ pattern?: RegExp;
4
+ }
5
+ /**
6
+ * Returns a rule that validates the input URL.
7
+ * @param options - Parameters.
8
+ * @param options.pattern - Regular expression.
9
+ * @param options.message - Custom message.
10
+ *
11
+ * @example rules: { pattern: getUrlRule() }
12
+ */
13
+ export declare const getUrlRule: ({ pattern, message, }: UrlRule) => {
14
+ value: RegExp;
15
+ message: string;
16
+ };
17
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUrlRule = void 0;
4
+ const _locales_1 = require("@locales");
5
+ const get_pattern_rule_1 = require("./get-pattern-rule");
6
+ const DEFAULT_PATTERN = /(http(s)?):\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/;
7
+ /**
8
+ * Returns a rule that validates the input URL.
9
+ * @param options - Parameters.
10
+ * @param options.pattern - Regular expression.
11
+ * @param options.message - Custom message.
12
+ *
13
+ * @example rules: { pattern: getUrlRule() }
14
+ */
15
+ const getUrlRule = ({ pattern = DEFAULT_PATTERN, message = (0, _locales_1.translate)(_locales_1.TranslateKey.URL), }) => (0, get_pattern_rule_1.getPatternRule)(pattern, message);
16
+ exports.getUrlRule = getUrlRule;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const get_require_rule_1 = require("@rules/default/get-require-rule");
4
+ const _locales_1 = require("@locales");
5
+ describe('Тестирование смены языка в правилах', () => {
6
+ test('Язык в правеле Английский', () => {
7
+ const rule = (0, get_require_rule_1.getRequiredRule)();
8
+ expect(rule.message).toBe("This field is required.");
9
+ });
10
+ test('Проверка смены языка через конфиг', () => {
11
+ _locales_1.config.setLanguage('ru');
12
+ const rule = (0, get_require_rule_1.getRequiredRule)();
13
+ expect(rule.message).toBe("Поле объязательное.");
14
+ });
15
+ test('Проверка смены языка и получение ошибки через метод translate', () => {
16
+ _locales_1.config.setLanguage('ru');
17
+ const rule = (0, get_require_rule_1.getRequiredRule)();
18
+ expect(rule.message).toBe((0, _locales_1.translate)(_locales_1.TranslateKey.REQUIRED));
19
+ });
20
+ });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const get_max_array_length_rule_1 = require("@rules/array/get-max-array-length-rule");
4
+ const MAX_LENGTH = 2;
5
+ describe('Тестирование функции getMaxArrayLengthRule', () => {
6
+ test('Проверка, что функция возвращает текстовое сообщение с ошибкой если длинна массива превышает максимальную.', () => {
7
+ expect((0, get_max_array_length_rule_1.getMaxArrayLengthRule)([1, 2, 3], MAX_LENGTH)).toBe(`Maximum number of values - ${MAX_LENGTH}.`);
8
+ });
9
+ test('Проверка, что функция возвращает true, если длинна массива меньше, либо равна максимальной.', () => {
10
+ expect((0, get_max_array_length_rule_1.getMaxArrayLengthRule)([1], MAX_LENGTH)).toBe(true);
11
+ });
12
+ test('Проверка, что функция возвращает кастомное сообщение, если кол-во заначений превышает максимальное.', () => {
13
+ expect((0, get_max_array_length_rule_1.getMaxArrayLengthRule)([1, 2, 3, 4], MAX_LENGTH, 'test message')).toBe('test message');
14
+ });
15
+ });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const get_min_array_length_rule_1 = require("@rules/array/get-min-array-length-rule");
4
+ const MIN_LENGTH = 2;
5
+ describe('Тестирование функции getMinArrayLengthRule', () => {
6
+ test('Проверка, что функция возвращает текстовое сообщение с ошибкой если длинна массива меньше минимальной.', () => {
7
+ expect((0, get_min_array_length_rule_1.getMinArrayLengthRule)([1], MIN_LENGTH)).toBe(`Minimum number of values - ${MIN_LENGTH}.`);
8
+ });
9
+ test('Проверка, что функция возвращает true, если длинна массива большe, либо равна минимальной.', () => {
10
+ expect((0, get_min_array_length_rule_1.getMinArrayLengthRule)([1, 3, 4], MIN_LENGTH)).toBe(true);
11
+ });
12
+ test('Проверка, что функция возвращает кастомное сообщение, если кол-во заначений меньше минимальной.', () => {
13
+ expect((0, get_min_array_length_rule_1.getMinArrayLengthRule)([1], MIN_LENGTH, 'test message')).toBe('test message');
14
+ });
15
+ });