co.validation 2.7.2 → 3.0.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.
Files changed (41) hide show
  1. package/lib/createValidation.d.ts +6 -0
  2. package/lib/createValidation.d.ts.map +1 -0
  3. package/lib/createValidation.js +153 -204
  4. package/lib/createValidation.js.map +1 -0
  5. package/lib/helpers.d.ts +2 -0
  6. package/lib/helpers.d.ts.map +1 -0
  7. package/lib/helpers.js +4 -8
  8. package/lib/helpers.js.map +1 -0
  9. package/lib/index.d.ts +7 -0
  10. package/lib/index.d.ts.map +1 -0
  11. package/lib/index.js +18 -38
  12. package/lib/index.js.map +1 -0
  13. package/lib/messageProcessor.d.ts +7 -0
  14. package/lib/messageProcessor.d.ts.map +1 -0
  15. package/lib/messageProcessor.js +45 -51
  16. package/lib/messageProcessor.js.map +1 -0
  17. package/lib/operators.d.ts +4 -0
  18. package/lib/operators.d.ts.map +1 -0
  19. package/lib/operators.js +60 -71
  20. package/lib/operators.js.map +1 -0
  21. package/lib/types.d.ts +123 -0
  22. package/lib/types.d.ts.map +1 -0
  23. package/lib/types.js +3 -0
  24. package/lib/types.js.map +1 -0
  25. package/lib/validators.d.ts +18 -0
  26. package/lib/validators.d.ts.map +1 -0
  27. package/lib/validators.js +164 -196
  28. package/lib/validators.js.map +1 -0
  29. package/package.json +13 -21
  30. package/tsconfig.json +32 -0
  31. package/lib/__tests__/component.arrayValidation.js +0 -201
  32. package/lib/__tests__/component.objectValidation.js +0 -556
  33. package/lib/__tests__/component.reduxFormValidation.js +0 -20
  34. package/lib/__tests__/component.valueValidation.js +0 -923
  35. package/lib/__tests__/integration.objectValidation.js +0 -64
  36. package/lib/__tests__/integration.registrationForm.js +0 -234
  37. package/lib/__tests__/integration.valueValidation.js +0 -448
  38. package/lib/__tests__/operators.js +0 -28
  39. package/lib/__tests__/unit.operators.js +0 -125
  40. package/lib/createObjectValidation.js +0 -34
  41. package/lib/createValueValidation.js +0 -71
@@ -0,0 +1,6 @@
1
+ import type { ValidationRule, ValidatorFn } from './types';
2
+ declare const createValidation: (rule: ValidationRule) => ValidatorFn;
3
+ declare const _default: (rule: ValidationRule) => ValidatorFn;
4
+ export default _default;
5
+ export { createValidation };
6
+ //# sourceMappingURL=createValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createValidation.d.ts","sourceRoot":"","sources":["../src/createValidation.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EAQZ,MAAM,SAAS,CAAC;AAEjB,QAAA,MAAM,gBAAgB,GAAI,MAAM,cAAc,KAAG,WAuDhD,CAAC;yBA+Hc,MAAM,cAAc,KAAG,WAAW;AAAlD,wBAME;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,215 +1,164 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _validators = require("./validators");
9
-
10
- var _operators = require("./operators");
11
-
12
- var _helpers = require("./helpers");
13
-
14
- var _messageProcessor = _interopRequireDefault(require("./messageProcessor"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- const createValidation = rule => {
19
- switch (rule.type) {
20
- case 'any':
21
- return (0, _validators.any)(rule);
22
-
23
- case 'required':
24
- return (0, _validators.required)(rule);
25
-
26
- case 'requiredArrayWithItem':
27
- return (0, _validators.requiredArrayWithItem)(rule);
28
-
29
- case 'custom':
30
- return (0, _validators.custom)(rule);
31
-
32
- case 'equals':
33
- return (0, _validators.equals)(rule);
34
-
35
- case 'maxLength':
36
- return (0, _validators.maxLength)(rule);
37
-
38
- case 'minLength':
39
- return (0, _validators.minLength)(rule);
40
-
41
- case 'minValue':
42
- return (0, _validators.minValue)(rule);
43
-
44
- case 'maxValue':
45
- return (0, _validators.maxValue)(rule);
46
-
47
- case 'number':
48
- return (0, _validators.number)(rule);
49
-
50
- case 'boolean':
51
- return (0, _validators.boolean)(rule);
52
-
53
- case 'string':
54
- return (0, _validators.string)(rule);
55
-
56
- case 'email':
57
- return (0, _validators.email)(rule);
58
-
59
- case 'alphanumeric':
60
- return (0, _validators.alphanumeric)(rule);
61
-
62
- case 'equalsToField':
63
- return (0, _validators.equalsToField)(rule);
64
-
65
- case 'regex':
66
- return (0, _validators.regex)(rule);
67
-
68
- case 'oneOf':
69
- {
70
- if (!rule.validators) {
71
- throw 'oneOf validations must have validators list passed';
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.createValidation = void 0;
7
+ const validators_1 = require("./validators");
8
+ const operators_1 = require("./operators");
9
+ const helpers_1 = require("./helpers");
10
+ const messageProcessor_1 = __importDefault(require("./messageProcessor"));
11
+ const createValidation = (rule) => {
12
+ switch (rule.type) {
13
+ case 'any':
14
+ return (0, validators_1.any)(rule);
15
+ case 'required':
16
+ return (0, validators_1.required)(rule);
17
+ case 'requiredArrayWithItem':
18
+ return (0, validators_1.requiredArrayWithItem)(rule);
19
+ case 'custom':
20
+ return (0, validators_1.custom)(rule);
21
+ case 'equals':
22
+ return (0, validators_1.equals)(rule);
23
+ case 'maxLength':
24
+ return (0, validators_1.maxLength)(rule);
25
+ case 'minLength':
26
+ return (0, validators_1.minLength)(rule);
27
+ case 'minValue':
28
+ return (0, validators_1.minValue)(rule);
29
+ case 'maxValue':
30
+ return (0, validators_1.maxValue)(rule);
31
+ case 'number':
32
+ return (0, validators_1.number)(rule);
33
+ case 'boolean':
34
+ return (0, validators_1.boolean)(rule);
35
+ case 'string':
36
+ return (0, validators_1.string)(rule);
37
+ case 'email':
38
+ return (0, validators_1.email)(rule);
39
+ case 'alphanumeric':
40
+ return (0, validators_1.alphanumeric)(rule);
41
+ case 'equalsToField':
42
+ return (0, validators_1.equalsToField)(rule);
43
+ case 'regex':
44
+ return (0, validators_1.regex)(rule);
45
+ case 'oneOf': {
46
+ const oneOfRule = rule;
47
+ if (!oneOfRule.validators) {
48
+ throw new Error('oneOf validations must have validators list passed');
49
+ }
50
+ return (0, operators_1.oneOf)(...oneOfRule.validators.map(createValidation));
72
51
  }
73
-
74
- return (0, _operators.oneOf)(...rule.validators.map(createValidation));
75
- }
76
-
77
- case 'all':
78
- {
79
- if (!rule.validators) {
80
- throw 'all validations must have validators list passed';
52
+ case 'all': {
53
+ const allRule = rule;
54
+ if (!allRule.validators) {
55
+ throw new Error('all validations must have validators list passed');
56
+ }
57
+ return (0, operators_1.all)(...allRule.validators.map(createValidation));
81
58
  }
82
-
83
- return (0, _operators.all)(...rule.validators.map(createValidation));
84
- }
85
-
86
- case 'object':
87
- return createObjectValidation(rule);
88
-
89
- case 'array':
90
- return createArrayValidation(rule);
91
-
92
- default:
93
- throw new Error(`invalid validator type: ${rule.type}`);
94
- }
95
- };
96
-
97
- const createArrayValidation = rule => {
98
- const arrayItemValidation = createValidation(rule.itemRule);
99
- return (array, allValues) => {
100
- if (array === undefined || array === null) {
101
- return {
102
- data: array,
103
- errors: undefined
104
- };
59
+ case 'object':
60
+ return createObjectValidation(rule);
61
+ case 'array':
62
+ return createArrayValidation(rule);
63
+ default:
64
+ throw new Error(`invalid validator type: ${rule.type}`);
105
65
  }
106
-
107
- if (!Array.isArray(array)) {
108
- return {
109
- errors: (0, _messageProcessor.default)(rule.getMessage, `##array`, null, array)
110
- };
111
- }
112
-
113
- const resultData = [];
114
- const resultErrors = [];
115
- let hasErrors = false;
116
- array.forEach((item, index) => {
117
- const validationResult = arrayItemValidation(item, array, allValues, index);
118
-
119
- if (validationResult.errors) {
120
- resultErrors.push(validationResult.errors);
121
- hasErrors = true;
122
- } else {
123
- resultErrors.push(null);
124
- }
125
-
126
- if (validationResult.data !== null && validationResult.data !== undefined) {
127
- resultData.push(validationResult.data);
128
- }
129
- });
130
- return {
131
- data: resultData,
132
- errors: hasErrors ? resultErrors : undefined
133
- };
134
- };
135
66
  };
136
-
137
- const createObjectValidation = rule => {
138
- const fieldValidations = rule.rules && Object.getOwnPropertyNames(rule.rules).map(ruleProp => ({
139
- prop: ruleProp,
140
- validation: createValidation(rule.rules[ruleProp])
141
- }));
142
- const customFieldValidations = rule.customPropRules && rule.customPropRules.map(customPropRule => ({
143
- nameValidation: createValidation(customPropRule.nameRule),
144
- valueValidation: createValidation(customPropRule.valueRule)
145
- }));
146
- return (object, allValues) => {
147
- if (object === undefined || object === null) {
148
- return {
149
- data: object,
150
- errors: undefined
151
- };
152
- }
153
-
154
- if (!(0, _helpers.isPlainObject)(object)) {
155
- return {
156
- errors: (0, _messageProcessor.default)(rule.getMessage, `##object`, null, object)
157
- };
158
- }
159
-
160
- const resultData = {};
161
- const resultErrors = {};
162
-
163
- const performFieldValidation = ({
164
- prop,
165
- validation
166
- }) => {
167
- const fieldValidation = validation(object[prop], object, allValues);
168
-
169
- if (fieldValidation.errors) {
170
- resultErrors[prop] = fieldValidation.errors;
171
- }
172
-
173
- if (fieldValidation.data !== undefined) {
174
- resultData[prop] = fieldValidation.data;
175
- }
176
- };
177
-
178
- fieldValidations && fieldValidations.forEach(performFieldValidation);
179
-
180
- if (customFieldValidations) {
181
- Object.keys(object).map(prop => {
182
- if (resultData.hasOwnProperty(prop) || resultErrors.hasOwnProperty(prop)) {
183
- return;
67
+ exports.createValidation = createValidation;
68
+ const createArrayValidation = (rule) => {
69
+ const arrayItemValidation = createValidation(rule.itemRule);
70
+ return (array, allValues) => {
71
+ if (array === undefined || array === null) {
72
+ return { data: array, errors: undefined };
184
73
  }
185
-
186
- ;
187
- const customFieldValidation = customFieldValidations.find(cfv => {
188
- const propNameValidation = cfv.nameValidation(prop, object, allValues);
189
- return !propNameValidation.errors;
74
+ if (!Array.isArray(array)) {
75
+ return {
76
+ errors: (0, messageProcessor_1.default)(rule.getMessage, '##array', null, array),
77
+ };
78
+ }
79
+ const resultData = [];
80
+ const resultErrors = [];
81
+ let hasErrors = false;
82
+ array.forEach((item) => {
83
+ const validationResult = arrayItemValidation(item, allValues);
84
+ if (validationResult.errors) {
85
+ resultErrors.push(validationResult.errors);
86
+ hasErrors = true;
87
+ }
88
+ else {
89
+ resultErrors.push(null);
90
+ }
91
+ if (validationResult.data !== null && validationResult.data !== undefined) {
92
+ resultData.push(validationResult.data);
93
+ }
190
94
  });
191
-
192
- if (customFieldValidation) {
193
- performFieldValidation({
194
- prop,
195
- validation: customFieldValidation.valueValidation
196
- });
95
+ return {
96
+ data: resultData,
97
+ errors: hasErrors ? resultErrors : undefined,
98
+ };
99
+ };
100
+ };
101
+ const createObjectValidation = (rule) => {
102
+ const fieldValidations = rule.rules &&
103
+ Object.getOwnPropertyNames(rule.rules).map((ruleProp) => ({
104
+ prop: ruleProp,
105
+ validation: createValidation(rule.rules[ruleProp]),
106
+ }));
107
+ const customFieldValidations = rule.customPropRules &&
108
+ rule.customPropRules.map((customPropRule) => ({
109
+ nameValidation: createValidation(customPropRule.nameRule),
110
+ valueValidation: createValidation(customPropRule.valueRule),
111
+ }));
112
+ return (object, _allValues) => {
113
+ if (object === undefined || object === null) {
114
+ return { data: object, errors: undefined };
197
115
  }
198
- });
199
- }
200
-
201
- return {
202
- data: fieldValidations || customFieldValidations ? Object.getOwnPropertyNames(resultData).length > 0 ? resultData : undefined : object,
203
- errors: Object.getOwnPropertyNames(resultErrors).length > 0 ? resultErrors : undefined
116
+ if (!(0, helpers_1.isPlainObject)(object)) {
117
+ return {
118
+ errors: (0, messageProcessor_1.default)(rule.getMessage, '##object', null, object),
119
+ };
120
+ }
121
+ const resultData = {};
122
+ const resultErrors = {};
123
+ const performFieldValidation = ({ prop, validation }) => {
124
+ const fieldValidation = validation(object[prop], object);
125
+ if (fieldValidation.errors) {
126
+ resultErrors[prop] = fieldValidation.errors;
127
+ }
128
+ if (fieldValidation.data !== undefined) {
129
+ resultData[prop] = fieldValidation.data;
130
+ }
131
+ };
132
+ fieldValidations && fieldValidations.forEach(performFieldValidation);
133
+ if (customFieldValidations) {
134
+ Object.keys(object).forEach((prop) => {
135
+ if (Object.prototype.hasOwnProperty.call(resultData, prop) ||
136
+ Object.prototype.hasOwnProperty.call(resultErrors, prop)) {
137
+ return;
138
+ }
139
+ const customFieldValidation = customFieldValidations.find((cfv) => {
140
+ const propNameValidation = cfv.nameValidation(prop, object);
141
+ return !propNameValidation.errors;
142
+ });
143
+ if (customFieldValidation) {
144
+ performFieldValidation({ prop, validation: customFieldValidation.valueValidation });
145
+ }
146
+ });
147
+ }
148
+ return {
149
+ data: fieldValidations || customFieldValidations
150
+ ? Object.getOwnPropertyNames(resultData).length > 0
151
+ ? resultData
152
+ : undefined
153
+ : object,
154
+ errors: Object.getOwnPropertyNames(resultErrors).length > 0 ? resultErrors : undefined,
155
+ };
204
156
  };
205
- };
206
157
  };
207
-
208
- var _default = rule => {
209
- const validator = createValidation(rule);
210
- return (value, allValues) => {
211
- return validator(value, allValues);
212
- };
158
+ exports.default = (rule) => {
159
+ const validator = createValidation(rule);
160
+ return (value, allValues) => {
161
+ return validator(value, allValues);
162
+ };
213
163
  };
214
-
215
- exports.default = _default;
164
+ //# sourceMappingURL=createValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createValidation.js","sourceRoot":"","sources":["../src/createValidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const isPlainObject: (obj: unknown) => obj is Record<string, unknown>;
2
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACf,CAAC"}
package/lib/helpers.js CHANGED
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.isPlainObject = void 0;
7
-
8
- const isPlainObject = obj => Object.prototype.toString.call(obj) === '[object Object]';
9
-
10
- exports.isPlainObject = isPlainObject;
4
+ const isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]';
5
+ exports.isPlainObject = isPlainObject;
6
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GAAG,CAAC,GAAY,EAAkC,EAAE,CAC5E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC;AAD/C,QAAA,aAAa,iBACkC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import createValidation from './createValidation';
2
+ import { resetDefaultMessages, setDefaultMessages } from './messageProcessor';
3
+ import type { ValidationRule, ValidationErrors } from './types';
4
+ declare const createReduxFormValidation: (rules: Record<string, ValidationRule>) => ((values: unknown) => Record<string, ValidationErrors> | undefined);
5
+ export { createValidation, createReduxFormValidation, resetDefaultMessages, setDefaultMessages };
6
+ export type { ValidationRule, ValidationResult, ValidationErrors, GetMessage, GetMessageFn, ValidatorFn, DefaultMessages, DefaultMessageCode, RequiredRule, AnyRule, StringRule, NumberRule, BooleanRule, EmailRule, AlphanumericRule, RegexRule, MinLengthRule, MaxLengthRule, MinValueRule, MaxValueRule, EqualsRule, EqualsToFieldRule, CustomRule, RequiredArrayWithItemRule, OneOfRule, AllRule, ObjectRule, ArrayRule, CustomPropRule, } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAc,MAAM,SAAS,CAAC;AAE5E,QAAA,MAAM,yBAAyB,GAC7B,OAAO,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KACpC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAOpE,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;AAGjG,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAElB,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,yBAAyB,EACzB,SAAS,EACT,OAAO,EACP,UAAU,EACV,SAAS,EACT,cAAc,GACf,MAAM,SAAS,CAAC"}
package/lib/index.js CHANGED
@@ -1,40 +1,20 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "createValidation", {
7
- enumerable: true,
8
- get: function () {
9
- return _createValidation.default;
10
- }
11
- });
12
- Object.defineProperty(exports, "resetDefaultMessages", {
13
- enumerable: true,
14
- get: function () {
15
- return _messageProcessor.resetDefaultMessages;
16
- }
17
- });
18
- Object.defineProperty(exports, "setDefaultMessages", {
19
- enumerable: true,
20
- get: function () {
21
- return _messageProcessor.setDefaultMessages;
22
- }
23
- });
24
- exports.createReduxFormValidation = void 0;
25
-
26
- var _createValidation = _interopRequireDefault(require("./createValidation"));
27
-
28
- var _messageProcessor = require("./messageProcessor");
29
-
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
- const createReduxFormValidation = rules => {
33
- const formObjectValidation = (0, _createValidation.default)({
34
- type: 'object',
35
- rules
36
- });
37
- return values => formObjectValidation(values).errors;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
4
  };
39
-
40
- exports.createReduxFormValidation = createReduxFormValidation;
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setDefaultMessages = exports.resetDefaultMessages = exports.createReduxFormValidation = exports.createValidation = void 0;
7
+ const createValidation_1 = __importDefault(require("./createValidation"));
8
+ exports.createValidation = createValidation_1.default;
9
+ const messageProcessor_1 = require("./messageProcessor");
10
+ Object.defineProperty(exports, "resetDefaultMessages", { enumerable: true, get: function () { return messageProcessor_1.resetDefaultMessages; } });
11
+ Object.defineProperty(exports, "setDefaultMessages", { enumerable: true, get: function () { return messageProcessor_1.setDefaultMessages; } });
12
+ const createReduxFormValidation = (rules) => {
13
+ const formObjectValidation = (0, createValidation_1.default)({
14
+ type: 'object',
15
+ rules,
16
+ });
17
+ return (values) => formObjectValidation(values).errors;
18
+ };
19
+ exports.createReduxFormValidation = createReduxFormValidation;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,0EAAkD;AAezC,2BAfF,0BAAgB,CAeE;AAdzB,yDAA8E;AAcxB,qGAd7C,uCAAoB,OAc6C;AAAE,mGAd7C,qCAAkB,OAc6C;AAX9F,MAAM,yBAAyB,GAAG,CAChC,KAAqC,EACgC,EAAE;IACvE,MAAM,oBAAoB,GAAG,IAAA,0BAAgB,EAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,KAAK;KACQ,CAAC,CAAC;IACjB,OAAO,CAAC,MAAe,EAAE,EAAE,CACzB,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAsD,CAAC;AACxF,CAAC,CAAC;AAEyB,8DAAyB"}
@@ -0,0 +1,7 @@
1
+ import type { DefaultMessageCode, DefaultMessages, GetMessage } from './types';
2
+ export declare const setDefaultMessages: (defaultMessages: DefaultMessages) => void;
3
+ export declare const resetDefaultMessages: () => void;
4
+ type StringFormatter = (str: string) => string;
5
+ declare const messageProcessor: (getMessage: GetMessage, defaultValueCode: DefaultMessageCode, stringFormatter?: StringFormatter | null, ...args: unknown[]) => string[];
6
+ export default messageProcessor;
7
+ //# sourceMappingURL=messageProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageProcessor.d.ts","sourceRoot":"","sources":["../src/messageProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAyB/E,eAAO,MAAM,kBAAkB,GAAI,iBAAiB,eAAe,KAAG,IAErE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,IAEvC,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAE/C,QAAA,MAAM,gBAAgB,GACpB,YAAY,UAAU,EACtB,kBAAkB,kBAAkB,EACpC,kBAAkB,eAAe,GAAG,IAAI,EACxC,GAAG,MAAM,OAAO,EAAE,KACjB,MAAM,EAqBR,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,62 +1,56 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.resetDefaultMessages = exports.setDefaultMessages = void 0;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetDefaultMessages = exports.setDefaultMessages = void 0;
7
4
  const defaultDefaultMessages = {
8
- '##object': 'Must be an object',
9
- '##array': 'Must be an array',
10
- '##required': 'Required',
11
- '##equals': 'Must be equal to {to}',
12
- '##maxLength': 'Maximum number of characters - {max}',
13
- '##minLength': 'Minimum number of characters - {min}',
14
- '##number': 'Must be a number',
15
- '##minValue': 'Must be at least {min}',
16
- '##maxValue': 'Must be not more than {max}',
17
- '##email': 'Invalid email format',
18
- '##alphanumeric': 'Only alphanumeric characters',
19
- '##string': 'Must be a string',
20
- '##boolean': 'Must be a boolean',
21
- '##equalsToField': 'Must be equal to {field}',
22
- '##regex': 'Invalid format',
23
- '##custom': 'Error'
5
+ '##object': 'Must be an object',
6
+ '##array': 'Must be an array',
7
+ '##required': 'Required',
8
+ '##equals': 'Must be equal to {to}',
9
+ '##maxLength': 'Maximum number of characters - {max}',
10
+ '##minLength': 'Minimum number of characters - {min}',
11
+ '##number': 'Must be a number',
12
+ '##minValue': 'Must be at least {min}',
13
+ '##maxValue': 'Must be not more than {max}',
14
+ '##email': 'Invalid email format',
15
+ '##alphanumeric': 'Only alphanumeric characters',
16
+ '##string': 'Must be a string',
17
+ '##boolean': 'Must be a boolean',
18
+ '##equalsToField': 'Must be equal to {field}',
19
+ '##regex': 'Invalid format',
20
+ '##custom': 'Error',
24
21
  };
25
- const currentDefaultMessages = { ...defaultDefaultMessages
22
+ const currentDefaultMessages = {
23
+ ...defaultDefaultMessages,
26
24
  };
27
-
28
- const setDefaultMessages = defaultMessages => {
29
- Object.assign(currentDefaultMessages, defaultMessages);
25
+ const setDefaultMessages = (defaultMessages) => {
26
+ Object.assign(currentDefaultMessages, defaultMessages);
30
27
  };
31
-
32
28
  exports.setDefaultMessages = setDefaultMessages;
33
-
34
29
  const resetDefaultMessages = () => {
35
- Object.assign(currentDefaultMessages, defaultDefaultMessages);
30
+ Object.assign(currentDefaultMessages, defaultDefaultMessages);
36
31
  };
37
-
38
32
  exports.resetDefaultMessages = resetDefaultMessages;
39
-
40
- var _default = (getMessage, defaultValueCode, stringFormatter, ...args) => {
41
- let result = null;
42
-
43
- if (!getMessage) {
44
- result = currentDefaultMessages[defaultValueCode];
45
- } else if (typeof getMessage === 'function') {
46
- result = getMessage(...args);
47
-
48
- if (result && typeof result !== 'string') {
49
- result = result.toString();
33
+ const messageProcessor = (getMessage, defaultValueCode, stringFormatter, ...args) => {
34
+ let result = null;
35
+ if (!getMessage) {
36
+ result = currentDefaultMessages[defaultValueCode];
50
37
  }
51
- } else {
52
- result = getMessage.toString();
53
- }
54
-
55
- if (result && stringFormatter && typeof stringFormatter === 'function') {
56
- result = stringFormatter(result);
57
- }
58
-
59
- return [result];
38
+ else if (typeof getMessage === 'function') {
39
+ const fnResult = getMessage(...args);
40
+ if (fnResult && typeof fnResult !== 'string') {
41
+ result = String(fnResult);
42
+ }
43
+ else {
44
+ result = fnResult;
45
+ }
46
+ }
47
+ else {
48
+ result = String(getMessage);
49
+ }
50
+ if (result && stringFormatter && typeof stringFormatter === 'function') {
51
+ result = stringFormatter(result);
52
+ }
53
+ return [result || ''];
60
54
  };
61
-
62
- exports.default = _default;
55
+ exports.default = messageProcessor;
56
+ //# sourceMappingURL=messageProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageProcessor.js","sourceRoot":"","sources":["../src/messageProcessor.ts"],"names":[],"mappings":";;;AAEA,MAAM,sBAAsB,GAAuC;IACjE,UAAU,EAAE,mBAAmB;IAC/B,SAAS,EAAE,kBAAkB;IAC7B,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,uBAAuB;IACnC,aAAa,EAAE,sCAAsC;IACrD,aAAa,EAAE,sCAAsC;IACrD,UAAU,EAAE,kBAAkB;IAC9B,YAAY,EAAE,wBAAwB;IACtC,YAAY,EAAE,6BAA6B;IAC3C,SAAS,EAAE,sBAAsB;IACjC,gBAAgB,EAAE,8BAA8B;IAChD,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,mBAAmB;IAChC,iBAAiB,EAAE,0BAA0B;IAC7C,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,OAAO;CACpB,CAAC;AAEF,MAAM,sBAAsB,GAAuC;IACjE,GAAG,sBAAsB;CAC1B,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,eAAgC,EAAQ,EAAE;IAC3E,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AACzD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEK,MAAM,oBAAoB,GAAG,GAAS,EAAE;IAC7C,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAIF,MAAM,gBAAgB,GAAG,CACvB,UAAsB,EACtB,gBAAoC,EACpC,eAAwC,EACxC,GAAG,IAAe,EACR,EAAE;IACZ,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QACrC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM,IAAI,eAAe,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;QACvE,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ValidatorFn } from './types';
2
+ export declare const oneOf: (...validators: ValidatorFn[]) => ValidatorFn;
3
+ export declare const all: (...validators: ValidatorFn[]) => ValidatorFn;
4
+ //# sourceMappingURL=operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D,eAAO,MAAM,KAAK,GAAI,GAAG,YAAY,WAAW,EAAE,KAAG,WAgCpD,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,GAAG,YAAY,WAAW,EAAE,KAAG,WAkClD,CAAC"}