react-hook-form-rules 1.5.9 → 1.7.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.
- package/.github/workflows/test.yml +17 -0
- package/CHANGELOG.md +68 -0
- package/dist/i18n.d.ts +2 -0
- package/dist/i18n.js +26 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +27 -0
- package/dist/rules/array/get-max-array-length-rule.d.ts +9 -0
- package/dist/rules/array/get-max-array-length-rule.js +17 -0
- package/dist/rules/array/get-max-array-length.d.ts +9 -0
- package/dist/rules/array/get-max-array-length.js +17 -0
- package/dist/rules/array/get-min-array-length-rule.d.ts +9 -0
- package/dist/rules/array/get-min-array-length-rule.js +17 -0
- package/dist/rules/array/get-min-array-length.d.ts +9 -0
- package/dist/rules/array/get-min-array-length.js +17 -0
- package/dist/rules/array/get-required-array-rule.d.ts +8 -0
- package/dist/rules/array/get-required-array-rule.js +15 -0
- package/dist/rules/array/tests/get-max-array-length-rule.test.d.ts +1 -0
- package/dist/rules/array/tests/get-max-array-length-rule.test.js +15 -0
- package/dist/rules/array/tests/get-min-array-length-rule.test.d.ts +1 -0
- package/dist/rules/array/tests/get-min-array-length-rule.test.js +15 -0
- package/dist/rules/array/tests/get-required-array-rule.test.d.ts +1 -0
- package/dist/rules/array/tests/get-required-array-rule.test.js +15 -0
- package/dist/rules/constants.d.ts +1 -0
- package/dist/rules/constants.js +4 -0
- package/dist/rules/default/get-max-length-rule.d.ts +11 -0
- package/dist/rules/default/get-max-length-rule.js +18 -0
- package/dist/rules/default/get-max-rule.d.ts +11 -0
- package/dist/rules/default/get-max-rule.js +16 -0
- package/dist/rules/default/get-min-length-rule.d.ts +11 -0
- package/dist/rules/default/get-min-length-rule.js +18 -0
- package/dist/rules/default/get-min-rule.d.ts +11 -0
- package/dist/rules/default/get-min-rule.js +18 -0
- package/dist/rules/default/get-require-rule.d.ts +11 -0
- package/dist/rules/default/get-require-rule.js +16 -0
- package/dist/rules/default/tests/get-max-length-rule.test.d.ts +1 -0
- package/dist/rules/default/tests/get-max-length-rule.test.js +23 -0
- package/dist/rules/default/tests/get-max-rule.test.d.ts +1 -0
- package/dist/rules/default/tests/get-max-rule.test.js +23 -0
- package/dist/rules/default/tests/get-min-length-rule.test.d.ts +1 -0
- package/dist/rules/default/tests/get-min-length-rule.test.js +23 -0
- package/dist/rules/default/tests/get-min-rule.test.d.ts +1 -0
- package/dist/rules/default/tests/get-min-rule.test.js +23 -0
- package/dist/rules/default/tests/get-required-rule.test.d.ts +1 -0
- package/dist/rules/default/tests/get-required-rule.test.js +11 -0
- package/dist/rules/get-email-rule.d.ts +17 -0
- package/dist/rules/get-email-rule.js +20 -0
- package/dist/rules/get-max-array-length.d.ts +8 -0
- package/dist/rules/get-max-array-length.js +16 -0
- 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 +11 -0
- package/dist/rules/get-max-rule.js +15 -0
- package/dist/rules/get-min-array-length.d.ts +8 -0
- package/dist/rules/get-min-array-length.js +16 -0
- package/dist/rules/get-min-length-rule.d.ts +11 -0
- package/dist/rules/get-min-length-rule.js +22 -0
- package/dist/rules/get-min-rule.d.ts +16 -0
- package/dist/rules/get-min-rule.js +16 -0
- package/dist/rules/get-require-rule.d.ts +11 -0
- package/dist/rules/get-require-rule.js +16 -0
- 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-array-rule.d.ts +8 -0
- package/dist/rules/get-required-array-rule.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 +17 -0
- package/dist/rules/get-url-rule.js +20 -0
- package/dist/rules/helpers/get-min-error.d.ts +6 -0
- package/dist/rules/helpers/get-min-error.js +9 -0
- package/dist/rules/helpers/get-min-length-error.d.ts +6 -0
- package/dist/rules/helpers/get-min-length-error.js +9 -0
- package/dist/rules/link/get-email-rule.d.ts +17 -0
- package/dist/rules/link/get-email-rule.js +40 -0
- package/dist/rules/link/get-url-rule.d.ts +17 -0
- package/dist/rules/link/get-url-rule.js +20 -0
- package/dist/rules/object/get-required-object-rule.d.ts +8 -0
- package/dist/rules/object/get-required-object-rule.js +21 -0
- package/dist/rules/object/tests/get-require-object-rule.test.d.ts +1 -0
- package/dist/rules/object/tests/get-require-object-rule.test.js +15 -0
- package/dist/rules/patterns/get-email-rule.d.ts +17 -0
- package/dist/rules/patterns/get-email-rule.js +16 -0
- package/dist/rules/patterns/get-pattern-rule.d.ts +12 -0
- package/dist/rules/patterns/get-pattern-rule.js +16 -0
- package/dist/rules/patterns/get-url-rule.d.ts +17 -0
- package/dist/rules/patterns/get-url-rule.js +16 -0
- package/dist/rules/patterns/tests/get-email-rule.test.d.ts +1 -0
- package/dist/rules/patterns/tests/get-email-rule.test.js +25 -0
- package/dist/rules/patterns/tests/get-pattern-rule.test.d.ts +1 -0
- package/dist/rules/patterns/tests/get-pattern-rule.test.js +11 -0
- package/dist/rules/patterns/tests/get-url-rule.test.d.ts +1 -0
- package/dist/rules/patterns/tests/get-url-rule.test.js +25 -0
- package/i18n.ts +25 -0
- package/index.ts +4 -2
- package/jest.config.js +8 -0
- package/locales/en.json +12 -0
- package/locales/ru.json +11 -0
- package/package.json +7 -3
- package/rules/array/get-max-array-length-rule.ts +3 -3
- package/rules/array/get-min-array-length-rule.ts +4 -4
- package/rules/array/get-required-array-rule.ts +2 -2
- package/rules/array/tests/get-max-array-length-rule.test.ts +17 -0
- package/rules/array/tests/get-min-array-length-rule.test.ts +17 -0
- package/rules/array/tests/get-required-array-rule.test.ts +16 -0
- package/rules/default/get-max-length-rule.ts +8 -8
- package/rules/default/get-max-rule.ts +3 -1
- package/rules/default/get-min-length-rule.ts +3 -2
- package/rules/default/get-min-rule.ts +5 -1
- package/rules/default/get-require-rule.ts +2 -2
- package/rules/default/tests/get-max-length-rule.test.ts +24 -0
- package/rules/default/tests/get-max-rule.test.ts +24 -0
- package/rules/default/tests/get-min-length-rule.test.ts +24 -0
- package/rules/default/tests/get-min-rule.test.ts +24 -0
- package/rules/default/tests/get-required-rule.test.ts +10 -0
- package/rules/object/get-required-object-rule.ts +5 -5
- package/rules/object/tests/get-require-object-rule.test.ts +18 -0
- package/rules/patterns/get-email-rule.ts +22 -0
- package/rules/patterns/get-pattern-rule.ts +12 -0
- package/rules/{link → patterns}/get-url-rule.ts +6 -9
- package/rules/patterns/tests/get-email-rule.test.ts +27 -0
- package/rules/patterns/tests/get-pattern-rule.test.ts +10 -0
- package/rules/patterns/tests/get-url-rule.test.ts +28 -0
- package/rules/link/get-email-rule.ts +0 -25
|
@@ -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 const getPatternRule = (pattern: RegExp, message: string) => ({
|
|
10
|
+
value: pattern,
|
|
11
|
+
message,
|
|
12
|
+
})
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { translate } from "../../i18n";
|
|
2
|
+
import { getPatternRule } from "./get-pattern-rule";
|
|
3
|
+
|
|
2
4
|
const DEFAULT_PATTERN =
|
|
3
5
|
/(http(s)?):\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/;
|
|
4
6
|
|
|
@@ -13,14 +15,9 @@ interface UrlRule {
|
|
|
13
15
|
* @param options.pattern - Regular expression.
|
|
14
16
|
* @param options.message - Custom message.
|
|
15
17
|
*
|
|
16
|
-
* @example rules: { pattern:
|
|
18
|
+
* @example rules: { pattern: getUrlRule() }
|
|
17
19
|
*/
|
|
18
20
|
export const getUrlRule = ({
|
|
19
21
|
pattern = DEFAULT_PATTERN,
|
|
20
|
-
message =
|
|
21
|
-
}: UrlRule) =>
|
|
22
|
-
return {
|
|
23
|
-
message,
|
|
24
|
-
value: pattern,
|
|
25
|
-
};
|
|
26
|
-
};
|
|
22
|
+
message = translate('url'),
|
|
23
|
+
}: UrlRule) => getPatternRule(pattern, message)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getEmailRule } from "../get-email-rule";
|
|
2
|
+
|
|
3
|
+
const DEFAULT_MESSAGE = "Please check the correctness of the entered email address.";
|
|
4
|
+
const DEFAULT_PATTERN = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
|
|
5
|
+
|
|
6
|
+
describe('Тестирование функции getEmailRule', () => {
|
|
7
|
+
test('Проверка значения по умолчанию', () => {
|
|
8
|
+
expect(getEmailRule({})).toEqual({
|
|
9
|
+
message: DEFAULT_MESSAGE,
|
|
10
|
+
value: DEFAULT_PATTERN
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('Проверка передачи кастомного сообщения', () => {
|
|
15
|
+
expect(getEmailRule({ message: 'Custom message' })).toEqual({
|
|
16
|
+
message: 'Custom message',
|
|
17
|
+
value: DEFAULT_PATTERN
|
|
18
|
+
});
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
test('Проверка передачи камсного паттерна', () => {
|
|
22
|
+
expect(getEmailRule({ pattern: /test/ })).toEqual({
|
|
23
|
+
message: DEFAULT_MESSAGE,
|
|
24
|
+
value: /test/
|
|
25
|
+
});
|
|
26
|
+
})
|
|
27
|
+
})
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { getPatternRule } from "../get-pattern-rule";
|
|
2
|
+
|
|
3
|
+
describe('Тестирование функции getEmailRule', () => {
|
|
4
|
+
test('Проверка кастомного сообщения', () => {
|
|
5
|
+
expect(getPatternRule(/-/, 'test message')).toEqual({
|
|
6
|
+
message: 'test message',
|
|
7
|
+
value: /-/
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getUrlRule } from "../get-url-rule";
|
|
2
|
+
|
|
3
|
+
const DEFAULT_MESSAGE = "The URL does not match the format.";
|
|
4
|
+
const DEFAULT_PATTERN =
|
|
5
|
+
/(http(s)?):\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/;
|
|
6
|
+
|
|
7
|
+
describe('Тестирование функции getEmailRule', () => {
|
|
8
|
+
test('Проверка значения по умолчанию', () => {
|
|
9
|
+
expect(getUrlRule({})).toEqual({
|
|
10
|
+
message: DEFAULT_MESSAGE,
|
|
11
|
+
value: DEFAULT_PATTERN
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test('Проверка передачи кастомного сообщения', () => {
|
|
16
|
+
expect(getUrlRule({ message: 'Custom message' })).toEqual({
|
|
17
|
+
message: 'Custom message',
|
|
18
|
+
value: DEFAULT_PATTERN
|
|
19
|
+
});
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
test('Проверка передачи камсного паттерна', () => {
|
|
23
|
+
expect(getUrlRule({ pattern: /test/ })).toEqual({
|
|
24
|
+
message: DEFAULT_MESSAGE,
|
|
25
|
+
value: /test/
|
|
26
|
+
});
|
|
27
|
+
})
|
|
28
|
+
})
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
const DEFAULT_PATTERN = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
|
|
2
|
-
const DEFAULT_MESSAGE = "Please check the correctness of the entered email address.";
|
|
3
|
-
|
|
4
|
-
interface EmailRule {
|
|
5
|
-
pattern?: RegExp;
|
|
6
|
-
message?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Validates an email address.
|
|
11
|
-
* @param options - Parameters.
|
|
12
|
-
* @param options.pattern - Regular expression.
|
|
13
|
-
* @param options.message - Custom message.
|
|
14
|
-
*
|
|
15
|
-
* @example rules: { pattern: getEmailRule() }
|
|
16
|
-
*/
|
|
17
|
-
export const getEmailRule = ({
|
|
18
|
-
pattern = DEFAULT_PATTERN,
|
|
19
|
-
message = DEFAULT_MESSAGE,
|
|
20
|
-
}: EmailRule) => {
|
|
21
|
-
return {
|
|
22
|
-
value: pattern,
|
|
23
|
-
message,
|
|
24
|
-
};
|
|
25
|
-
};
|