@decaf-ts/decorator-validation 1.4.20 → 1.5.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 (175) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/decorator-validation.bundle.min.js +1 -1
  4. package/dist/decorator-validation.bundle.min.js.LICENSE.txt +0 -0
  5. package/dist/esm/decorator-validation.bundle.min.esm.js +1 -1
  6. package/dist/esm/decorator-validation.bundle.min.esm.js.LICENSE.txt +0 -0
  7. package/lib/esm/index.d.ts +1 -1
  8. package/lib/esm/index.js +1 -3
  9. package/lib/esm/model/Model.d.ts +1 -2
  10. package/lib/esm/model/Model.js +3 -6
  11. package/lib/esm/model/ModelErrorDefinition.d.ts +0 -0
  12. package/lib/esm/model/ModelErrorDefinition.js +0 -2
  13. package/lib/esm/model/Registry.d.ts +0 -0
  14. package/lib/esm/model/Registry.js +0 -2
  15. package/lib/esm/model/constants.d.ts +0 -0
  16. package/lib/esm/model/constants.js +0 -2
  17. package/lib/esm/model/construction.d.ts +0 -0
  18. package/lib/esm/model/construction.js +0 -2
  19. package/lib/esm/model/decorators.d.ts +0 -0
  20. package/lib/esm/model/decorators.js +0 -2
  21. package/lib/esm/model/index.d.ts +0 -0
  22. package/lib/esm/model/index.js +0 -2
  23. package/lib/esm/model/types.d.ts +0 -0
  24. package/lib/esm/model/types.js +0 -2
  25. package/lib/esm/model/utils.d.ts +0 -0
  26. package/lib/esm/model/utils.js +0 -2
  27. package/lib/esm/model/validation.d.ts +0 -0
  28. package/lib/esm/model/validation.js +3 -4
  29. package/lib/esm/utils/constants.d.ts +0 -0
  30. package/lib/esm/utils/constants.js +0 -2
  31. package/lib/esm/utils/dates.d.ts +0 -0
  32. package/lib/esm/utils/dates.js +0 -2
  33. package/lib/esm/utils/decorators.d.ts +0 -0
  34. package/lib/esm/utils/decorators.js +0 -2
  35. package/lib/esm/utils/hashing.d.ts +0 -0
  36. package/lib/esm/utils/hashing.js +0 -2
  37. package/lib/esm/utils/index.d.ts +0 -0
  38. package/lib/esm/utils/index.js +0 -2
  39. package/lib/esm/utils/registry.d.ts +0 -0
  40. package/lib/esm/utils/registry.js +0 -2
  41. package/lib/esm/utils/serialization.d.ts +0 -0
  42. package/lib/esm/utils/serialization.js +0 -2
  43. package/lib/esm/utils/strings.d.ts +0 -0
  44. package/lib/esm/utils/strings.js +0 -2
  45. package/lib/esm/validation/Validation.d.ts +0 -0
  46. package/lib/esm/validation/Validation.js +0 -2
  47. package/lib/esm/validation/Validators/DateValidator.d.ts +7 -5
  48. package/lib/esm/validation/Validators/DateValidator.js +6 -7
  49. package/lib/esm/validation/Validators/EmailValidator.d.ts +3 -4
  50. package/lib/esm/validation/Validators/EmailValidator.js +7 -7
  51. package/lib/esm/validation/Validators/ListValidator.d.ts +7 -5
  52. package/lib/esm/validation/Validators/ListValidator.js +4 -7
  53. package/lib/esm/validation/Validators/MaxLengthValidator.d.ts +7 -5
  54. package/lib/esm/validation/Validators/MaxLengthValidator.js +4 -7
  55. package/lib/esm/validation/Validators/MaxValidator.d.ts +7 -5
  56. package/lib/esm/validation/Validators/MaxValidator.js +5 -7
  57. package/lib/esm/validation/Validators/MinLengthValidator.d.ts +7 -5
  58. package/lib/esm/validation/Validators/MinLengthValidator.js +5 -8
  59. package/lib/esm/validation/Validators/MinValidator.d.ts +7 -5
  60. package/lib/esm/validation/Validators/MinValidator.js +5 -7
  61. package/lib/esm/validation/Validators/PasswordValidator.d.ts +3 -4
  62. package/lib/esm/validation/Validators/PasswordValidator.js +6 -6
  63. package/lib/esm/validation/Validators/PatternValidator.d.ts +7 -5
  64. package/lib/esm/validation/Validators/PatternValidator.js +5 -7
  65. package/lib/esm/validation/Validators/RequiredValidator.d.ts +3 -3
  66. package/lib/esm/validation/Validators/RequiredValidator.js +7 -7
  67. package/lib/esm/validation/Validators/StepValidator.d.ts +7 -4
  68. package/lib/esm/validation/Validators/StepValidator.js +5 -7
  69. package/lib/esm/validation/Validators/TypeValidator.d.ts +9 -7
  70. package/lib/esm/validation/Validators/TypeValidator.js +4 -6
  71. package/lib/esm/validation/Validators/URLValidator.d.ts +9 -3
  72. package/lib/esm/validation/Validators/URLValidator.js +3 -5
  73. package/lib/esm/validation/Validators/Validator.d.ts +6 -3
  74. package/lib/esm/validation/Validators/Validator.js +0 -2
  75. package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +0 -0
  76. package/lib/esm/validation/Validators/ValidatorRegistry.js +0 -2
  77. package/lib/esm/validation/Validators/constants.d.ts +0 -0
  78. package/lib/esm/validation/Validators/constants.js +0 -2
  79. package/lib/esm/validation/Validators/decorators.d.ts +0 -0
  80. package/lib/esm/validation/Validators/decorators.js +0 -2
  81. package/lib/esm/validation/Validators/index.d.ts +0 -0
  82. package/lib/esm/validation/Validators/index.js +0 -2
  83. package/lib/esm/validation/Validators/types.d.ts +0 -0
  84. package/lib/esm/validation/Validators/types.js +1 -0
  85. package/lib/esm/validation/decorators.d.ts +0 -0
  86. package/lib/esm/validation/decorators.js +7 -9
  87. package/lib/esm/validation/index.d.ts +0 -0
  88. package/lib/esm/validation/index.js +0 -2
  89. package/lib/esm/validation/types.d.ts +0 -0
  90. package/lib/esm/validation/types.js +0 -2
  91. package/lib/index.cjs +1 -1
  92. package/lib/index.d.ts +1 -1
  93. package/lib/model/Model.cjs +3 -4
  94. package/lib/model/Model.d.ts +1 -2
  95. package/lib/model/ModelErrorDefinition.cjs +0 -0
  96. package/lib/model/ModelErrorDefinition.d.ts +0 -0
  97. package/lib/model/Registry.cjs +0 -0
  98. package/lib/model/Registry.d.ts +0 -0
  99. package/lib/model/constants.cjs +0 -0
  100. package/lib/model/constants.d.ts +0 -0
  101. package/lib/model/construction.cjs +0 -0
  102. package/lib/model/construction.d.ts +0 -0
  103. package/lib/model/decorators.cjs +0 -0
  104. package/lib/model/decorators.d.ts +0 -0
  105. package/lib/model/index.cjs +0 -0
  106. package/lib/model/index.d.ts +0 -0
  107. package/lib/model/types.cjs +0 -0
  108. package/lib/model/types.d.ts +0 -0
  109. package/lib/model/utils.cjs +0 -0
  110. package/lib/model/utils.d.ts +0 -0
  111. package/lib/model/validation.cjs +3 -2
  112. package/lib/model/validation.d.ts +0 -0
  113. package/lib/utils/constants.cjs +0 -0
  114. package/lib/utils/constants.d.ts +0 -0
  115. package/lib/utils/dates.cjs +0 -0
  116. package/lib/utils/dates.d.ts +0 -0
  117. package/lib/utils/decorators.cjs +0 -0
  118. package/lib/utils/decorators.d.ts +0 -0
  119. package/lib/utils/hashing.cjs +0 -0
  120. package/lib/utils/hashing.d.ts +0 -0
  121. package/lib/utils/index.cjs +0 -0
  122. package/lib/utils/index.d.ts +0 -0
  123. package/lib/utils/registry.cjs +0 -0
  124. package/lib/utils/registry.d.ts +0 -0
  125. package/lib/utils/serialization.cjs +0 -0
  126. package/lib/utils/serialization.d.ts +0 -0
  127. package/lib/utils/strings.cjs +0 -0
  128. package/lib/utils/strings.d.ts +0 -0
  129. package/lib/validation/Validation.cjs +0 -0
  130. package/lib/validation/Validation.d.ts +0 -0
  131. package/lib/validation/Validators/DateValidator.cjs +5 -4
  132. package/lib/validation/Validators/DateValidator.d.ts +7 -5
  133. package/lib/validation/Validators/EmailValidator.cjs +6 -4
  134. package/lib/validation/Validators/EmailValidator.d.ts +3 -4
  135. package/lib/validation/Validators/ListValidator.cjs +4 -5
  136. package/lib/validation/Validators/ListValidator.d.ts +7 -5
  137. package/lib/validation/Validators/MaxLengthValidator.cjs +4 -5
  138. package/lib/validation/Validators/MaxLengthValidator.d.ts +7 -5
  139. package/lib/validation/Validators/MaxValidator.cjs +4 -4
  140. package/lib/validation/Validators/MaxValidator.d.ts +7 -5
  141. package/lib/validation/Validators/MinLengthValidator.cjs +4 -5
  142. package/lib/validation/Validators/MinLengthValidator.d.ts +7 -5
  143. package/lib/validation/Validators/MinValidator.cjs +4 -4
  144. package/lib/validation/Validators/MinValidator.d.ts +7 -5
  145. package/lib/validation/Validators/PasswordValidator.cjs +6 -4
  146. package/lib/validation/Validators/PasswordValidator.d.ts +3 -4
  147. package/lib/validation/Validators/PatternValidator.cjs +4 -4
  148. package/lib/validation/Validators/PatternValidator.d.ts +7 -5
  149. package/lib/validation/Validators/RequiredValidator.cjs +6 -4
  150. package/lib/validation/Validators/RequiredValidator.d.ts +3 -3
  151. package/lib/validation/Validators/StepValidator.cjs +4 -4
  152. package/lib/validation/Validators/StepValidator.d.ts +7 -4
  153. package/lib/validation/Validators/TypeValidator.cjs +4 -4
  154. package/lib/validation/Validators/TypeValidator.d.ts +9 -7
  155. package/lib/validation/Validators/URLValidator.cjs +3 -3
  156. package/lib/validation/Validators/URLValidator.d.ts +9 -3
  157. package/lib/validation/Validators/Validator.cjs +0 -0
  158. package/lib/validation/Validators/Validator.d.ts +6 -3
  159. package/lib/validation/Validators/ValidatorRegistry.cjs +0 -0
  160. package/lib/validation/Validators/ValidatorRegistry.d.ts +0 -0
  161. package/lib/validation/Validators/constants.cjs +0 -0
  162. package/lib/validation/Validators/constants.d.ts +0 -0
  163. package/lib/validation/Validators/decorators.cjs +0 -0
  164. package/lib/validation/Validators/index.cjs +0 -0
  165. package/lib/validation/Validators/types.cjs +0 -0
  166. package/lib/validation/decorators.cjs +7 -7
  167. package/lib/validation/decorators.d.ts +0 -0
  168. package/lib/validation/index.cjs +0 -0
  169. package/lib/validation/index.d.ts +0 -0
  170. package/lib/validation/types.cjs +0 -0
  171. package/lib/validation/types.d.ts +0 -0
  172. package/package.json +1 -1
  173. package/lib/validation/Validators/decorators.d.ts +0 -12
  174. package/lib/validation/Validators/index.d.ts +0 -52
  175. package/lib/validation/Validators/types.d.ts +0 -51
@@ -32,8 +32,7 @@ let MaxLengthValidator = class MaxLengthValidator extends Validator_1.Validator
32
32
  * @summary Validates a model
33
33
  *
34
34
  * @param {string} value
35
- * @param {number} maxlength
36
- * @param {string} [message]
35
+ * @param {MaxLengthValidatorOptions} options
37
36
  *
38
37
  * @return {string | undefined}
39
38
  *
@@ -41,11 +40,11 @@ let MaxLengthValidator = class MaxLengthValidator extends Validator_1.Validator
41
40
  *
42
41
  * @see Validator#hasErrors
43
42
  */
44
- hasErrors(value, maxlength, message) {
43
+ hasErrors(value, options) {
45
44
  if (typeof value === "undefined")
46
45
  return;
47
- return value.length > maxlength
48
- ? this.getMessage(message || this.message, maxlength)
46
+ return value.length > options.maxLength
47
+ ? this.getMessage(options.message || this.message, options.maxLength)
49
48
  : undefined;
50
49
  }
51
50
  };
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface MaxLengthValidatorOptions extends ValidatorOptions {
3
+ maxLength: number;
4
+ }
2
5
  /**
3
6
  * @summary Maximum Length Validator
4
7
  * @description Validates strings and Arrays on their maximum length
@@ -10,14 +13,13 @@ import { Validator } from "./Validator";
10
13
  *
11
14
  * @category Validators
12
15
  */
13
- export declare class MaxLengthValidator extends Validator {
16
+ export declare class MaxLengthValidator extends Validator<MaxLengthValidatorOptions> {
14
17
  constructor(message?: string);
15
18
  /**
16
19
  * @summary Validates a model
17
20
  *
18
21
  * @param {string} value
19
- * @param {number} maxlength
20
- * @param {string} [message]
22
+ * @param {MaxLengthValidatorOptions} options
21
23
  *
22
24
  * @return {string | undefined}
23
25
  *
@@ -25,5 +27,5 @@ export declare class MaxLengthValidator extends Validator {
25
27
  *
26
28
  * @see Validator#hasErrors
27
29
  */
28
- hasErrors(value: string | any[], maxlength: number, message?: string): string | undefined;
30
+ hasErrors(value: string | any[], options: MaxLengthValidatorOptions): string | undefined;
29
31
  }
@@ -31,8 +31,7 @@ let MaxValidator = class MaxValidator extends Validator_1.Validator {
31
31
  * @summary Validates a Model
32
32
  *
33
33
  * @param {string} value
34
- * @param {number | Date | string} max
35
- * @param {string} [message]
34
+ * @param {MaxValidatorOptions} options
36
35
  *
37
36
  * @return {string | undefined}
38
37
  *
@@ -40,16 +39,17 @@ let MaxValidator = class MaxValidator extends Validator_1.Validator {
40
39
  *
41
40
  * @see Validator#hasErrors
42
41
  */
43
- hasErrors(value, max, message) {
42
+ hasErrors(value, options) {
44
43
  if (typeof value === "undefined")
45
44
  return;
45
+ let { max } = options;
46
46
  if (value instanceof Date && !(max instanceof Date)) {
47
47
  max = new Date(max);
48
48
  if (Number.isNaN(max.getDate()))
49
49
  throw new Error("Invalid Max param defined");
50
50
  }
51
51
  return value > max
52
- ? this.getMessage(message || this.message, max)
52
+ ? this.getMessage(options.message || this.message, max)
53
53
  : undefined;
54
54
  }
55
55
  };
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface MaxValidatorOptions extends ValidatorOptions {
3
+ max: number | Date | string;
4
+ }
2
5
  /**
3
6
  * @summary Max Validator
4
7
  *
@@ -9,14 +12,13 @@ import { Validator } from "./Validator";
9
12
  *
10
13
  * @category Validators
11
14
  */
12
- export declare class MaxValidator extends Validator {
15
+ export declare class MaxValidator extends Validator<MaxValidatorOptions> {
13
16
  constructor(message?: string);
14
17
  /**
15
18
  * @summary Validates a Model
16
19
  *
17
20
  * @param {string} value
18
- * @param {number | Date | string} max
19
- * @param {string} [message]
21
+ * @param {MaxValidatorOptions} options
20
22
  *
21
23
  * @return {string | undefined}
22
24
  *
@@ -24,5 +26,5 @@ export declare class MaxValidator extends Validator {
24
26
  *
25
27
  * @see Validator#hasErrors
26
28
  */
27
- hasErrors(value: number | Date | string, max: number | Date | string, message?: string): string | undefined;
29
+ hasErrors(value: number | Date | string, options: MaxValidatorOptions): string | undefined;
28
30
  }
@@ -31,8 +31,7 @@ let MinLengthValidator = class MinLengthValidator extends Validator_1.Validator
31
31
  /**
32
32
  *
33
33
  * @param {string | Array} value
34
- * @param {number} minlength
35
- * @param {string} [message]
34
+ * @param {MinLengthValidatorOptions} options
36
35
  *
37
36
  * @return {string | undefined}
38
37
  *
@@ -41,11 +40,11 @@ let MinLengthValidator = class MinLengthValidator extends Validator_1.Validator
41
40
  *
42
41
  * @see Validator#hasErrors
43
42
  */
44
- hasErrors(value, minlength, message) {
43
+ hasErrors(value, options) {
45
44
  if (typeof value === "undefined")
46
45
  return;
47
- return value.length < minlength
48
- ? this.getMessage(message || this.message, minlength)
46
+ return value.length < options.minLength
47
+ ? this.getMessage(options.message || this.message, options.minLength)
49
48
  : undefined;
50
49
  }
51
50
  };
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface MinLengthValidatorOptions extends ValidatorOptions {
3
+ minLength: number;
4
+ }
2
5
  /**
3
6
  * @summary Minimum Length Validator
4
7
  * @description Validates strings and Arrays on their minimum length
@@ -10,13 +13,12 @@ import { Validator } from "./Validator";
10
13
  *
11
14
  * @category Validators
12
15
  */
13
- export declare class MinLengthValidator extends Validator {
16
+ export declare class MinLengthValidator extends Validator<MinLengthValidatorOptions> {
14
17
  constructor(message?: string);
15
18
  /**
16
19
  *
17
20
  * @param {string | Array} value
18
- * @param {number} minlength
19
- * @param {string} [message]
21
+ * @param {MinLengthValidatorOptions} options
20
22
  *
21
23
  * @return {string | undefined}
22
24
  *
@@ -25,5 +27,5 @@ export declare class MinLengthValidator extends Validator {
25
27
  *
26
28
  * @see Validator#hasErrors
27
29
  */
28
- hasErrors(value: string | any[], minlength: number, message?: string): string | undefined;
30
+ hasErrors(value: string | any[], options: MinLengthValidatorOptions): string | undefined;
29
31
  }
@@ -31,8 +31,7 @@ let MinValidator = class MinValidator extends Validator_1.Validator {
31
31
  * @summary Validates Model
32
32
  *
33
33
  * @param {string} value
34
- * @param {number | Date | string} min
35
- * @param {string} [message]
34
+ * @param {MaxValidatorOptions} options
36
35
  *
37
36
  * @return {string | undefined}
38
37
  *
@@ -40,16 +39,17 @@ let MinValidator = class MinValidator extends Validator_1.Validator {
40
39
  *
41
40
  * @see Validator#hasErrors
42
41
  */
43
- hasErrors(value, min, message) {
42
+ hasErrors(value, options) {
44
43
  if (typeof value === "undefined")
45
44
  return;
45
+ let { min } = options;
46
46
  if (value instanceof Date && !(min instanceof Date)) {
47
47
  min = new Date(min);
48
48
  if (Number.isNaN(min.getDate()))
49
49
  throw new Error("Invalid Min param defined");
50
50
  }
51
51
  return value < min
52
- ? this.getMessage(message || this.message, min)
52
+ ? this.getMessage(options.message || this.message, min)
53
53
  : undefined;
54
54
  }
55
55
  };
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface MinValidatorOptions extends ValidatorOptions {
3
+ min: number | Date | string;
4
+ }
2
5
  /**
3
6
  * @summary Min Validator
4
7
  *
@@ -9,14 +12,13 @@ import { Validator } from "./Validator";
9
12
  *
10
13
  * @category Validators
11
14
  */
12
- export declare class MinValidator extends Validator {
15
+ export declare class MinValidator extends Validator<MinValidatorOptions> {
13
16
  constructor(message?: string);
14
17
  /**
15
18
  * @summary Validates Model
16
19
  *
17
20
  * @param {string} value
18
- * @param {number | Date | string} min
19
- * @param {string} [message]
21
+ * @param {MaxValidatorOptions} options
20
22
  *
21
23
  * @return {string | undefined}
22
24
  *
@@ -24,5 +26,5 @@ export declare class MinValidator extends Validator {
24
26
  *
25
27
  * @see Validator#hasErrors
26
28
  */
27
- hasErrors(value: number | Date | string, min: number | Date | string, message?: string): string | undefined;
29
+ hasErrors(value: number | Date | string, options: MinValidatorOptions): string | undefined;
28
30
  }
@@ -31,8 +31,7 @@ let PasswordValidator = class PasswordValidator extends PatternValidator_1.Patte
31
31
  * @summary Validates a model
32
32
  *
33
33
  * @param {string} value
34
- * @param {RegExp} [pattern]
35
- * @param {string} [message]
34
+ * @param {PatternValidatorOptions} [options={}]
36
35
  *
37
36
  * @return {string | undefined}
38
37
  *
@@ -40,8 +39,11 @@ let PasswordValidator = class PasswordValidator extends PatternValidator_1.Patte
40
39
  *
41
40
  * @see PatternValidator#hasErrors
42
41
  */
43
- hasErrors(value, pattern, message) {
44
- return super.hasErrors(value, pattern || constants_1.DEFAULT_ERROR_MESSAGES.PASSWORD, message || this.message);
42
+ hasErrors(value, options = {}) {
43
+ return super.hasErrors(value, {
44
+ ...options,
45
+ message: options.message || this.message,
46
+ });
45
47
  }
46
48
  };
47
49
  exports.PasswordValidator = PasswordValidator;
@@ -1,4 +1,4 @@
1
- import { PatternValidator } from "./PatternValidator";
1
+ import { PatternValidator, PatternValidatorOptions } from "./PatternValidator";
2
2
  /**
3
3
  * @summary Handles Password Validation
4
4
  *
@@ -15,8 +15,7 @@ export declare class PasswordValidator extends PatternValidator {
15
15
  * @summary Validates a model
16
16
  *
17
17
  * @param {string} value
18
- * @param {RegExp} [pattern]
19
- * @param {string} [message]
18
+ * @param {PatternValidatorOptions} [options={}]
20
19
  *
21
20
  * @return {string | undefined}
22
21
  *
@@ -24,5 +23,5 @@ export declare class PasswordValidator extends PatternValidator {
24
23
  *
25
24
  * @see PatternValidator#hasErrors
26
25
  */
27
- hasErrors(value: string, pattern?: RegExp, message?: string): string | undefined;
26
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
28
27
  }
@@ -45,8 +45,7 @@ let PatternValidator = class PatternValidator extends Validator_1.Validator {
45
45
  * @summary Validates a Model
46
46
  *
47
47
  * @param {string} value
48
- * @param {RegExp | string} pattern
49
- * @param {string} [message]
48
+ * @param {PatternValidatorOptions} options
50
49
  *
51
50
  * @return {string | undefined}
52
51
  *
@@ -54,15 +53,16 @@ let PatternValidator = class PatternValidator extends Validator_1.Validator {
54
53
  *
55
54
  * @see Validator#hasErrors
56
55
  */
57
- hasErrors(value, pattern, message) {
56
+ hasErrors(value, options) {
58
57
  if (!value)
59
58
  return;
59
+ let { pattern } = options;
60
60
  if (!pattern)
61
61
  throw new Error("Missing Pattern");
62
62
  pattern = typeof pattern === "string" ? this.getPattern(pattern) : pattern;
63
63
  pattern.lastIndex = 0; // resets pattern position for repeat validation requests
64
64
  return !pattern.test(value)
65
- ? this.getMessage(message || this.message)
65
+ ? this.getMessage(options.message || this.message)
66
66
  : undefined;
67
67
  }
68
68
  };
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface PatternValidatorOptions extends ValidatorOptions {
3
+ pattern?: RegExp | string;
4
+ }
2
5
  export declare const regexpParser: RegExp;
3
6
  /**
4
7
  * @summary Pattern Validator
@@ -11,7 +14,7 @@ export declare const regexpParser: RegExp;
11
14
  *
12
15
  * @category Validators
13
16
  */
14
- export declare class PatternValidator extends Validator {
17
+ export declare class PatternValidator extends Validator<PatternValidatorOptions> {
15
18
  constructor(message?: string);
16
19
  /**
17
20
  * @summary parses and validates a pattern
@@ -24,8 +27,7 @@ export declare class PatternValidator extends Validator {
24
27
  * @summary Validates a Model
25
28
  *
26
29
  * @param {string} value
27
- * @param {RegExp | string} pattern
28
- * @param {string} [message]
30
+ * @param {PatternValidatorOptions} options
29
31
  *
30
32
  * @return {string | undefined}
31
33
  *
@@ -33,5 +35,5 @@ export declare class PatternValidator extends Validator {
33
35
  *
34
36
  * @see Validator#hasErrors
35
37
  */
36
- hasErrors(value: string, pattern?: RegExp | string, message?: string): string | undefined;
38
+ hasErrors(value: string, options: PatternValidatorOptions): string | undefined;
37
39
  }
@@ -31,7 +31,7 @@ let RequiredValidator = class RequiredValidator extends Validator_1.Validator {
31
31
  * @summary Validates a model
32
32
  *
33
33
  * @param {string} value
34
- * @param {string} [message]
34
+ * @param {ValidatorOptions} [options={}]
35
35
  *
36
36
  * @return {string | undefined}
37
37
  *
@@ -39,15 +39,17 @@ let RequiredValidator = class RequiredValidator extends Validator_1.Validator {
39
39
  *
40
40
  * @see Validator#hasErrors
41
41
  */
42
- hasErrors(value, message) {
42
+ hasErrors(value, options = {}) {
43
43
  switch (typeof value) {
44
44
  case "boolean":
45
45
  case "number":
46
46
  return typeof value === "undefined"
47
- ? this.getMessage(message || this.message)
47
+ ? this.getMessage(options.message || this.message)
48
48
  : undefined;
49
49
  default:
50
- return !value ? this.getMessage(message || this.message) : undefined;
50
+ return !value
51
+ ? this.getMessage(options.message || this.message)
52
+ : undefined;
51
53
  }
52
54
  }
53
55
  };
@@ -1,4 +1,4 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
2
  /**
3
3
  * @summary Required Validator
4
4
  *
@@ -15,7 +15,7 @@ export declare class RequiredValidator extends Validator {
15
15
  * @summary Validates a model
16
16
  *
17
17
  * @param {string} value
18
- * @param {string} [message]
18
+ * @param {ValidatorOptions} [options={}]
19
19
  *
20
20
  * @return {string | undefined}
21
21
  *
@@ -23,5 +23,5 @@ export declare class RequiredValidator extends Validator {
23
23
  *
24
24
  * @see Validator#hasErrors
25
25
  */
26
- hasErrors(value: any, message?: string): string | undefined;
26
+ hasErrors(value: any, options?: ValidatorOptions): string | undefined;
27
27
  }
@@ -32,7 +32,7 @@ let StepValidator = class StepValidator extends Validator_1.Validator {
32
32
  *
33
33
  * @param {string} value
34
34
  * @param {number} step
35
- * @param {string} [message]
35
+ * @param {StepValidatorOptions} options
36
36
  *
37
37
  * @return {string | undefined}
38
38
  *
@@ -40,11 +40,11 @@ let StepValidator = class StepValidator extends Validator_1.Validator {
40
40
  *
41
41
  * @see Validator#hasErrors
42
42
  */
43
- hasErrors(value, step, message) {
43
+ hasErrors(value, options) {
44
44
  if (typeof value === "undefined")
45
45
  return;
46
- return Number(value) % Number(step) !== 0
47
- ? this.getMessage(message || this.message, step)
46
+ return Number(value) % Number(options.step) !== 0
47
+ ? this.getMessage(options.message || this.message, options.step)
48
48
  : undefined;
49
49
  }
50
50
  };
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface StepValidatorOptions extends ValidatorOptions {
3
+ step: number | string;
4
+ }
2
5
  /**
3
6
  * @summary Step Validator
4
7
  *
@@ -9,14 +12,14 @@ import { Validator } from "./Validator";
9
12
  *
10
13
  * @category Validators
11
14
  */
12
- export declare class StepValidator extends Validator {
15
+ export declare class StepValidator extends Validator<StepValidatorOptions> {
13
16
  constructor(message?: string);
14
17
  /**
15
18
  * @summary Validates a model
16
19
  *
17
20
  * @param {string} value
18
21
  * @param {number} step
19
- * @param {string} [message]
22
+ * @param {StepValidatorOptions} options
20
23
  *
21
24
  * @return {string | undefined}
22
25
  *
@@ -24,5 +27,5 @@ export declare class StepValidator extends Validator {
24
27
  *
25
28
  * @see Validator#hasErrors
26
29
  */
27
- hasErrors(value: number | string, step: number | string, message?: string): string | undefined;
30
+ hasErrors(value: number | string, options: StepValidatorOptions): string | undefined;
28
31
  }
@@ -31,8 +31,7 @@ let TypeValidator = class TypeValidator extends Validator_1.Validator {
31
31
  /**
32
32
  * @summary Validates a model
33
33
  * @param {string} value
34
- * @param {string | string[] | {name: string}} types
35
- * @param {string} [message]
34
+ * @param {TypeValidatorOptions} options
36
35
  *
37
36
  * @return {string | undefined}
38
37
  *
@@ -40,9 +39,10 @@ let TypeValidator = class TypeValidator extends Validator_1.Validator {
40
39
  *
41
40
  * @see Validator#hasErrors
42
41
  */
43
- hasErrors(value, types, message) {
42
+ hasErrors(value, options) {
44
43
  if (value === undefined)
45
- return; // Dont try and enforce type if undefined
44
+ return; // Don't try and enforce type if undefined
45
+ const { types, message } = options;
46
46
  if (!reflection_1.Reflection.evaluateDesignTypes(value, types))
47
47
  return this.getMessage(message || this.message, typeof types === "string"
48
48
  ? types
@@ -1,4 +1,9 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface TypeValidatorOptions extends ValidatorOptions {
3
+ types: string | string[] | {
4
+ name: string;
5
+ };
6
+ }
2
7
  /**
3
8
  * @summary Required Validator
4
9
  *
@@ -7,13 +12,12 @@ import { Validator } from "./Validator";
7
12
  *
8
13
  * @category Validators
9
14
  */
10
- export declare class TypeValidator extends Validator {
15
+ export declare class TypeValidator extends Validator<TypeValidatorOptions> {
11
16
  constructor(message?: string);
12
17
  /**
13
18
  * @summary Validates a model
14
19
  * @param {string} value
15
- * @param {string | string[] | {name: string}} types
16
- * @param {string} [message]
20
+ * @param {TypeValidatorOptions} options
17
21
  *
18
22
  * @return {string | undefined}
19
23
  *
@@ -21,7 +25,5 @@ export declare class TypeValidator extends Validator {
21
25
  *
22
26
  * @see Validator#hasErrors
23
27
  */
24
- hasErrors(value: any, types: string | string[] | {
25
- name: string;
26
- }, message?: string): string | undefined;
28
+ hasErrors(value: any, options: TypeValidatorOptions): string | undefined;
27
29
  }
@@ -30,7 +30,7 @@ let URLValidator = class URLValidator extends PatternValidator_1.PatternValidato
30
30
  * @summary Validates a model
31
31
  *
32
32
  * @param {string} value
33
- * @param {string} [message]
33
+ * @param {PatternValidatorOptions} [options={}]
34
34
  *
35
35
  * @return {string | undefined}
36
36
  *
@@ -38,8 +38,8 @@ let URLValidator = class URLValidator extends PatternValidator_1.PatternValidato
38
38
  *
39
39
  * @see Validator#hasErrors
40
40
  */
41
- hasErrors(value, pattern, message) {
42
- return super.hasErrors(value, pattern || constants_1.DEFAULT_PATTERNS.URL, message);
41
+ hasErrors(value, options = {}) {
42
+ return super.hasErrors(value, { ...options, pattern: options.pattern || constants_1.DEFAULT_PATTERNS.URL });
43
43
  }
44
44
  };
45
45
  exports.URLValidator = URLValidator;
@@ -1,4 +1,10 @@
1
- import { PatternValidator } from "./PatternValidator";
1
+ import { PatternValidator, PatternValidatorOptions } from "./PatternValidator";
2
+ import { ValidatorOptions } from "./Validator";
3
+ export interface URLValidatorOptions extends ValidatorOptions {
4
+ types: string | string[] | {
5
+ name: string;
6
+ };
7
+ }
2
8
  /**
3
9
  * @summary URL Validator
4
10
  * @description Pattern from {@link https://gist.github.com/dperini/729294}
@@ -14,7 +20,7 @@ export declare class URLValidator extends PatternValidator {
14
20
  * @summary Validates a model
15
21
  *
16
22
  * @param {string} value
17
- * @param {string} [message]
23
+ * @param {PatternValidatorOptions} [options={}]
18
24
  *
19
25
  * @return {string | undefined}
20
26
  *
@@ -22,5 +28,5 @@ export declare class URLValidator extends PatternValidator {
22
28
  *
23
29
  * @see Validator#hasErrors
24
30
  */
25
- hasErrors(value: string, pattern?: RegExp, message?: string): string | undefined;
31
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
26
32
  }
File without changes
@@ -1,3 +1,6 @@
1
+ export type ValidatorOptions = {
2
+ message?: string;
3
+ };
1
4
  /**
2
5
  * @summary Base Implementation for Validators
3
6
  * @description Provides the underlying functionality for {@link Validator}s
@@ -10,7 +13,7 @@
10
13
  * @abstract
11
14
  * @category Validators
12
15
  */
13
- export declare abstract class Validator {
16
+ export declare abstract class Validator<V extends ValidatorOptions = ValidatorOptions> {
14
17
  readonly message: string;
15
18
  readonly acceptedTypes?: string[];
16
19
  protected constructor(message?: string, ...acceptedTypes: string[]);
@@ -30,11 +33,11 @@ export declare abstract class Validator {
30
33
  /**
31
34
  * @summary Validates an attribute
32
35
  * @param {any} value
33
- * @param {any[]} args
36
+ * @param {ValidatorOptions} [options] Validate options for customizing the model validation behavior
34
37
  *
35
38
  * @abstract
36
39
  *
37
40
  * @see Model#hasErrors
38
41
  */
39
- abstract hasErrors(value: any, ...args: any[]): string | undefined;
42
+ abstract hasErrors(value: any, options?: V): string | undefined;
40
43
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes