@decaf-ts/decorator-validation 1.6.2 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decorator-validation.cjs +1016 -1164
- package/dist/decorator-validation.esm.cjs +971 -1134
- package/lib/constants/index.cjs +18 -0
- package/lib/constants/index.d.ts +1 -0
- package/lib/constants/validation.cjs +14 -0
- package/lib/constants/validation.d.ts +10 -0
- package/lib/esm/constants/index.d.ts +1 -0
- package/lib/esm/constants/index.js +2 -0
- package/lib/esm/constants/validation.d.ts +10 -0
- package/lib/esm/constants/validation.js +11 -0
- package/lib/esm/index.d.ts +37 -5
- package/lib/esm/index.js +38 -6
- package/lib/esm/model/Model.d.ts +29 -100
- package/lib/esm/model/Model.js +37 -104
- package/lib/esm/model/constants.d.ts +3 -3
- package/lib/esm/model/constants.js +4 -4
- package/lib/esm/model/construction.d.ts +3 -3
- package/lib/esm/model/construction.js +4 -4
- package/lib/esm/model/decorators.d.ts +4 -4
- package/lib/esm/model/decorators.js +5 -6
- package/lib/esm/model/types.d.ts +11 -30
- package/lib/esm/model/types.js +1 -1
- package/lib/esm/model/validation.d.ts +2 -2
- package/lib/esm/model/validation.js +18 -7
- package/lib/esm/utils/constants.d.ts +9 -27
- package/lib/esm/utils/constants.js +10 -28
- package/lib/esm/utils/dates.d.ts +16 -26
- package/lib/esm/utils/dates.js +17 -27
- package/lib/esm/utils/decorators.d.ts +0 -41
- package/lib/esm/utils/decorators.js +1 -42
- package/lib/esm/utils/hashing.d.ts +6 -50
- package/lib/esm/utils/hashing.js +5 -49
- package/lib/esm/utils/index.d.ts +0 -1
- package/lib/esm/utils/index.js +1 -2
- package/lib/esm/utils/registry.d.ts +2 -2
- package/lib/esm/utils/registry.js +1 -1
- package/lib/esm/utils/serialization.d.ts +1 -1
- package/lib/esm/utils/serialization.js +2 -2
- package/lib/esm/utils/strings.d.ts +4 -4
- package/lib/esm/utils/strings.js +5 -5
- package/lib/esm/utils/types.d.ts +16 -123
- package/lib/esm/utils/types.js +1 -1
- package/lib/esm/validation/Validators/DateValidator.d.ts +8 -40
- package/lib/esm/validation/Validators/DateValidator.js +9 -41
- package/lib/esm/validation/Validators/DiffValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/DiffValidator.js +58 -0
- package/lib/esm/validation/Validators/EmailValidator.d.ts +7 -39
- package/lib/esm/validation/Validators/EmailValidator.js +8 -40
- package/lib/esm/validation/Validators/EqualsValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/EqualsValidator.js +63 -0
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +65 -0
- package/lib/esm/validation/Validators/GreaterThanValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/GreaterThanValidator.js +62 -0
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +65 -0
- package/lib/esm/validation/Validators/LessThanValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/LessThanValidator.js +62 -0
- package/lib/esm/validation/Validators/ListValidator.d.ts +6 -44
- package/lib/esm/validation/Validators/ListValidator.js +7 -45
- package/lib/esm/validation/Validators/MaxValidator.d.ts +6 -52
- package/lib/esm/validation/Validators/MaxValidator.js +7 -53
- package/lib/esm/validation/Validators/MinValidator.d.ts +6 -52
- package/lib/esm/validation/Validators/MinValidator.js +7 -53
- package/lib/esm/validation/Validators/PatternValidator.d.ts +9 -75
- package/lib/esm/validation/Validators/PatternValidator.js +10 -76
- package/lib/esm/validation/Validators/RequiredValidator.d.ts +6 -52
- package/lib/esm/validation/Validators/RequiredValidator.js +7 -53
- package/lib/esm/validation/Validators/TypeValidator.d.ts +6 -60
- package/lib/esm/validation/Validators/TypeValidator.js +7 -69
- package/lib/esm/validation/Validators/URLValidator.d.ts +7 -41
- package/lib/esm/validation/Validators/URLValidator.js +8 -42
- package/lib/esm/validation/Validators/Validator.d.ts +17 -77
- package/lib/esm/validation/Validators/Validator.js +11 -68
- package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +7 -1
- package/lib/esm/validation/Validators/ValidatorRegistry.js +11 -4
- package/lib/esm/validation/Validators/constants.d.ts +41 -0
- package/lib/esm/validation/Validators/constants.js +43 -1
- package/lib/esm/validation/Validators/index.d.ts +7 -0
- package/lib/esm/validation/Validators/index.js +8 -1
- package/lib/esm/validation/Validators/utils.d.ts +52 -0
- package/lib/esm/validation/Validators/utils.js +174 -0
- package/lib/esm/validation/decorators.d.ts +124 -50
- package/lib/esm/validation/decorators.js +173 -102
- package/lib/esm/validation/types.d.ts +31 -146
- package/lib/esm/validation/types.js +1 -1
- package/lib/index.cjs +39 -7
- package/lib/index.d.ts +37 -5
- package/lib/model/Model.cjs +39 -104
- package/lib/model/Model.d.ts +29 -100
- package/lib/model/constants.cjs +4 -4
- package/lib/model/constants.d.ts +3 -3
- package/lib/model/construction.cjs +4 -4
- package/lib/model/construction.d.ts +3 -3
- package/lib/model/decorators.cjs +5 -6
- package/lib/model/decorators.d.ts +4 -4
- package/lib/model/types.cjs +1 -1
- package/lib/model/types.d.ts +11 -30
- package/lib/model/validation.cjs +25 -14
- package/lib/model/validation.d.ts +2 -2
- package/lib/utils/constants.cjs +11 -29
- package/lib/utils/constants.d.ts +9 -27
- package/lib/utils/dates.cjs +17 -27
- package/lib/utils/dates.d.ts +16 -26
- package/lib/utils/decorators.cjs +1 -42
- package/lib/utils/decorators.d.ts +0 -41
- package/lib/utils/hashing.cjs +5 -49
- package/lib/utils/hashing.d.ts +6 -50
- package/lib/utils/index.cjs +1 -2
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/registry.cjs +1 -1
- package/lib/utils/registry.d.ts +2 -2
- package/lib/utils/serialization.cjs +2 -2
- package/lib/utils/serialization.d.ts +1 -1
- package/lib/utils/strings.cjs +5 -5
- package/lib/utils/strings.d.ts +4 -4
- package/lib/utils/types.cjs +1 -1
- package/lib/utils/types.d.ts +16 -123
- package/lib/validation/Validators/DateValidator.cjs +9 -41
- package/lib/validation/Validators/DateValidator.d.ts +8 -40
- package/lib/validation/Validators/DiffValidator.cjs +61 -0
- package/lib/validation/Validators/DiffValidator.d.ts +27 -0
- package/lib/validation/Validators/EmailValidator.cjs +8 -40
- package/lib/validation/Validators/EmailValidator.d.ts +7 -39
- package/lib/validation/Validators/EqualsValidator.cjs +66 -0
- package/lib/validation/Validators/EqualsValidator.d.ts +27 -0
- package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +68 -0
- package/lib/validation/Validators/GreaterThanOrEqualValidator.d.ts +27 -0
- package/lib/validation/Validators/GreaterThanValidator.cjs +65 -0
- package/lib/validation/Validators/GreaterThanValidator.d.ts +27 -0
- package/lib/validation/Validators/LessThanOrEqualValidator.cjs +68 -0
- package/lib/validation/Validators/LessThanOrEqualValidator.d.ts +27 -0
- package/lib/validation/Validators/LessThanValidator.cjs +65 -0
- package/lib/validation/Validators/LessThanValidator.d.ts +27 -0
- package/lib/validation/Validators/ListValidator.cjs +7 -45
- package/lib/validation/Validators/ListValidator.d.ts +6 -44
- package/lib/validation/Validators/MaxValidator.cjs +7 -53
- package/lib/validation/Validators/MaxValidator.d.ts +6 -52
- package/lib/validation/Validators/MinValidator.cjs +7 -53
- package/lib/validation/Validators/MinValidator.d.ts +6 -52
- package/lib/validation/Validators/PatternValidator.cjs +10 -76
- package/lib/validation/Validators/PatternValidator.d.ts +9 -75
- package/lib/validation/Validators/RequiredValidator.cjs +7 -53
- package/lib/validation/Validators/RequiredValidator.d.ts +6 -52
- package/lib/validation/Validators/TypeValidator.cjs +7 -69
- package/lib/validation/Validators/TypeValidator.d.ts +6 -60
- package/lib/validation/Validators/URLValidator.cjs +8 -42
- package/lib/validation/Validators/URLValidator.d.ts +7 -41
- package/lib/validation/Validators/Validator.cjs +11 -68
- package/lib/validation/Validators/Validator.d.ts +17 -77
- package/lib/validation/Validators/ValidatorRegistry.cjs +12 -4
- package/lib/validation/Validators/ValidatorRegistry.d.ts +7 -1
- package/lib/validation/Validators/constants.cjs +44 -2
- package/lib/validation/Validators/constants.d.ts +41 -0
- package/lib/validation/Validators/index.cjs +8 -1
- package/lib/validation/Validators/index.d.ts +7 -0
- package/lib/validation/Validators/utils.cjs +180 -0
- package/lib/validation/Validators/utils.d.ts +52 -0
- package/lib/validation/decorators.cjs +179 -102
- package/lib/validation/decorators.d.ts +124 -50
- package/lib/validation/types.cjs +1 -1
- package/lib/validation/types.d.ts +31 -146
- package/package.json +1 -1
- package/lib/esm/utils/Decoration.d.ts +0 -123
- package/lib/esm/utils/Decoration.js +0 -188
- package/lib/utils/Decoration.cjs +0 -192
- package/lib/utils/Decoration.d.ts +0 -123
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Validator } from "./Validator";
|
|
2
|
+
import type { ComparisonValidatorOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Equals Validator
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EQUALS}
|
|
7
|
+
*
|
|
8
|
+
* @class EqualsValidator
|
|
9
|
+
* @extends Validator
|
|
10
|
+
*
|
|
11
|
+
* @category Validators
|
|
12
|
+
*/
|
|
13
|
+
export declare class EqualsValidator extends Validator<ComparisonValidatorOptions> {
|
|
14
|
+
constructor(message?: string);
|
|
15
|
+
/**
|
|
16
|
+
* @summary Validates a model
|
|
17
|
+
*
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {ComparisonValidatorOptions} options
|
|
20
|
+
*
|
|
21
|
+
* @return {string | undefined}
|
|
22
|
+
*
|
|
23
|
+
* @override
|
|
24
|
+
* @see Validator#hasErrors
|
|
25
|
+
*/
|
|
26
|
+
hasErrors(value: any, options: ComparisonValidatorOptions, instance: any): string | undefined;
|
|
27
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Validator } from "./Validator";
|
|
11
|
+
import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
|
|
12
|
+
import { validator } from "./decorators";
|
|
13
|
+
import { isEqual } from "@decaf-ts/reflection";
|
|
14
|
+
import { getValueByPath } from "./utils";
|
|
15
|
+
/**
|
|
16
|
+
* @summary Equals Validator
|
|
17
|
+
*
|
|
18
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EQUALS}
|
|
19
|
+
*
|
|
20
|
+
* @class EqualsValidator
|
|
21
|
+
* @extends Validator
|
|
22
|
+
*
|
|
23
|
+
* @category Validators
|
|
24
|
+
*/
|
|
25
|
+
let EqualsValidator = class EqualsValidator extends Validator {
|
|
26
|
+
constructor(message = DEFAULT_ERROR_MESSAGES.EQUALS) {
|
|
27
|
+
super(message);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @summary Validates a model
|
|
31
|
+
*
|
|
32
|
+
* @param {string} value
|
|
33
|
+
* @param {ComparisonValidatorOptions} options
|
|
34
|
+
*
|
|
35
|
+
* @return {string | undefined}
|
|
36
|
+
*
|
|
37
|
+
* @override
|
|
38
|
+
* @see Validator#hasErrors
|
|
39
|
+
*/
|
|
40
|
+
hasErrors(value, options, instance) {
|
|
41
|
+
let comparisonPropertyValue;
|
|
42
|
+
try {
|
|
43
|
+
comparisonPropertyValue = getValueByPath(instance, options.propertyToCompare);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
return this.getMessage(e.message || this.message);
|
|
47
|
+
}
|
|
48
|
+
return isEqual(value, comparisonPropertyValue)
|
|
49
|
+
? undefined
|
|
50
|
+
: this.getMessage(options.message || this.message, options.propertyToCompare);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
EqualsValidator = __decorate([
|
|
54
|
+
validator(ValidationKeys.EQUALS),
|
|
55
|
+
__metadata("design:paramtypes", [String])
|
|
56
|
+
], EqualsValidator);
|
|
57
|
+
export { EqualsValidator };
|
|
58
|
+
// Validation.register({
|
|
59
|
+
// validator: EqualsValidator,
|
|
60
|
+
// validationKey: ValidationKeys.EQUALS,
|
|
61
|
+
// save: false,
|
|
62
|
+
// } as ValidatorDefinition);
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXF1YWxzVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9FcXVhbHNWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZ0IsU0FBUSxTQUFxQztJQUN4RSxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLE1BQU07UUFDekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUFtQyxFQUNuQyxRQUFhO1FBRWIsSUFBSSx1QkFBNEIsQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDSCx1QkFBdUIsR0FBRyxjQUFjLENBQ3RDLFFBQVEsRUFDUixPQUFPLENBQUMsaUJBQWlCLENBQzFCLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztZQUM1QyxDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUNiLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFDL0IsT0FBTyxDQUFDLGlCQUFpQixDQUMxQixDQUFDO0lBQ1IsQ0FBQztDQUNGLENBQUE7QUF0Q1ksZUFBZTtJQUQzQixTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQzs7R0FDcEIsZUFBZSxDQXNDM0I7O0FBRUQsd0JBQXdCO0FBQ3hCLGdDQUFnQztBQUNoQywwQ0FBMEM7QUFDMUMsaUJBQWlCO0FBQ2pCLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUywgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgQ29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IGdldFZhbHVlQnlQYXRoIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBFcXVhbHMgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNFUVVBTFN9XG4gKlxuICogQGNsYXNzIEVxdWFsc1ZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5FUVVBTFMpXG5leHBvcnQgY2xhc3MgRXF1YWxzVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPENvbXBhcmlzb25WYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuRVFVQUxTKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Q29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogQ29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnMsXG4gICAgaW5zdGFuY2U6IGFueVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZTogYW55O1xuICAgIHRyeSB7XG4gICAgICBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSA9IGdldFZhbHVlQnlQYXRoKFxuICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoZS5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzRXF1YWwodmFsdWUsIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlKVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogdGhpcy5nZXRNZXNzYWdlKFxuICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsXG4gICAgICAgICAgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZVxuICAgICAgICApO1xuICB9XG59XG5cbi8vIFZhbGlkYXRpb24ucmVnaXN0ZXIoe1xuLy8gICB2YWxpZGF0b3I6IEVxdWFsc1ZhbGlkYXRvcixcbi8vICAgdmFsaWRhdGlvbktleTogVmFsaWRhdGlvbktleXMuRVFVQUxTLFxuLy8gICBzYXZlOiBmYWxzZSxcbi8vIH0gYXMgVmFsaWRhdG9yRGVmaW5pdGlvbik7XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Validator } from "./Validator";
|
|
2
|
+
import type { ComparisonValidatorOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Greater Than or Equal Validator
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#GREATER_THAN_OR_EQUAL}
|
|
7
|
+
*
|
|
8
|
+
* @class GreaterThanOrEqualValidator
|
|
9
|
+
* @extends Validator
|
|
10
|
+
*
|
|
11
|
+
* @category Validators
|
|
12
|
+
*/
|
|
13
|
+
export declare class GreaterThanOrEqualValidator extends Validator<ComparisonValidatorOptions> {
|
|
14
|
+
constructor(message?: string);
|
|
15
|
+
/**
|
|
16
|
+
* @summary Validates a model
|
|
17
|
+
*
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {ComparisonValidatorOptions} options
|
|
20
|
+
*
|
|
21
|
+
* @return {string | undefined}
|
|
22
|
+
*
|
|
23
|
+
* @override
|
|
24
|
+
* @see Validator#hasErrors
|
|
25
|
+
*/
|
|
26
|
+
hasErrors(value: any, options: ComparisonValidatorOptions, instance: any): string | undefined;
|
|
27
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Validator } from "./Validator";
|
|
11
|
+
import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
|
|
12
|
+
import { validator } from "./decorators";
|
|
13
|
+
import { getValueByPath, isGreaterThan, isValidForGteOrLteComparison, } from "./utils";
|
|
14
|
+
import { isEqual } from "@decaf-ts/reflection";
|
|
15
|
+
/**
|
|
16
|
+
* @summary Greater Than or Equal Validator
|
|
17
|
+
*
|
|
18
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#GREATER_THAN_OR_EQUAL}
|
|
19
|
+
*
|
|
20
|
+
* @class GreaterThanOrEqualValidator
|
|
21
|
+
* @extends Validator
|
|
22
|
+
*
|
|
23
|
+
* @category Validators
|
|
24
|
+
*/
|
|
25
|
+
let GreaterThanOrEqualValidator = class GreaterThanOrEqualValidator extends Validator {
|
|
26
|
+
constructor(message = DEFAULT_ERROR_MESSAGES.GREATER_THAN_OR_EQUAL) {
|
|
27
|
+
super(message);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @summary Validates a model
|
|
31
|
+
*
|
|
32
|
+
* @param {string} value
|
|
33
|
+
* @param {ComparisonValidatorOptions} options
|
|
34
|
+
*
|
|
35
|
+
* @return {string | undefined}
|
|
36
|
+
*
|
|
37
|
+
* @override
|
|
38
|
+
* @see Validator#hasErrors
|
|
39
|
+
*/
|
|
40
|
+
hasErrors(value, options, instance) {
|
|
41
|
+
let comparisonPropertyValue;
|
|
42
|
+
try {
|
|
43
|
+
comparisonPropertyValue = getValueByPath(instance, options.propertyToCompare);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
return this.getMessage(e.message || this.message);
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
if ((isValidForGteOrLteComparison(value, comparisonPropertyValue) &&
|
|
50
|
+
isEqual(value, comparisonPropertyValue)) ||
|
|
51
|
+
isGreaterThan(value, comparisonPropertyValue))
|
|
52
|
+
return undefined;
|
|
53
|
+
throw new Error(options.message || this.message);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
return this.getMessage(e.message, options.propertyToCompare);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
GreaterThanOrEqualValidator = __decorate([
|
|
61
|
+
validator(ValidationKeys.GREATER_THAN_OR_EQUAL),
|
|
62
|
+
__metadata("design:paramtypes", [String])
|
|
63
|
+
], GreaterThanOrEqualValidator);
|
|
64
|
+
export { GreaterThanOrEqualValidator };
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9HcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsNEJBQTRCLEdBQzdCLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLDJCQUEyQixHQUFqQyxNQUFNLDJCQUE0QixTQUFRLFNBQXFDO0lBQ3BGLFlBQVksVUFBa0Isc0JBQXNCLENBQUMscUJBQXFCO1FBQ3hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFNBQVMsQ0FDZCxLQUFVLEVBQ1YsT0FBbUMsRUFDbkMsUUFBYTtRQUViLElBQUksdUJBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsdUJBQXVCLEdBQUcsY0FBYyxDQUN0QyxRQUFRLEVBQ1IsT0FBTyxDQUFDLGlCQUFpQixDQUMxQixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxJQUNFLENBQUMsNEJBQTRCLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDO2dCQUMzRCxPQUFPLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLENBQUM7Z0JBQzFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUM7Z0JBRTdDLE9BQU8sU0FBUyxDQUFDO1lBRW5CLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBNUNZLDJCQUEyQjtJQUR2QyxTQUFTLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDOztHQUNuQywyQkFBMkIsQ0E0Q3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJpc29uVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0VmFsdWVCeVBhdGgsXG4gIGlzR3JlYXRlclRoYW4sXG4gIGlzVmFsaWRGb3JHdGVPckx0ZUNvbXBhcmlzb24sXG59IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgR3JlYXRlciBUaGFuIG9yIEVxdWFsIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjR1JFQVRFUl9USEFOX09SX0VRVUFMfVxuICpcbiAqIEBjbGFzcyBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOX09SX0VRVUFMKVxuZXhwb3J0IGNsYXNzIEdyZWF0ZXJUaGFuT3JFcXVhbFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxDb21wYXJpc29uVmFsaWRhdG9yT3B0aW9ucz4ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLkdSRUFURVJfVEhBTl9PUl9FUVVBTCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge0NvbXBhcmlzb25WYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IENvbXBhcmlzb25WYWxpZGF0b3JPcHRpb25zLFxuICAgIGluc3RhbmNlOiBhbnlcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgY29tcGFyaXNvblByb3BlcnR5VmFsdWU6IGFueTtcbiAgICB0cnkge1xuICAgICAgY29tcGFyaXNvblByb3BlcnR5VmFsdWUgPSBnZXRWYWx1ZUJ5UGF0aChcbiAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgIG9wdGlvbnMucHJvcGVydHlUb0NvbXBhcmVcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBpZiAoXG4gICAgICAgIChpc1ZhbGlkRm9yR3RlT3JMdGVDb21wYXJpc29uKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSkgJiZcbiAgICAgICAgICBpc0VxdWFsKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSkpIHx8XG4gICAgICAgIGlzR3JlYXRlclRoYW4odmFsdWUsIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3Iob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSwgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Validator } from "./Validator";
|
|
2
|
+
import type { ComparisonValidatorOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Greater Than Validator
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#GREATER_THAN}
|
|
7
|
+
*
|
|
8
|
+
* @class GreaterThanValidator
|
|
9
|
+
* @extends Validator
|
|
10
|
+
*
|
|
11
|
+
* @category Validators
|
|
12
|
+
*/
|
|
13
|
+
export declare class GreaterThanValidator extends Validator<ComparisonValidatorOptions> {
|
|
14
|
+
constructor(message?: string);
|
|
15
|
+
/**
|
|
16
|
+
* @summary Validates a model
|
|
17
|
+
*
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {ComparisonValidatorOptions} options
|
|
20
|
+
*
|
|
21
|
+
* @return {string | undefined}
|
|
22
|
+
*
|
|
23
|
+
* @override
|
|
24
|
+
* @see Validator#hasErrors
|
|
25
|
+
*/
|
|
26
|
+
hasErrors(value: any, options: ComparisonValidatorOptions, instance: any): string | undefined;
|
|
27
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Validator } from "./Validator";
|
|
11
|
+
import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
|
|
12
|
+
import { validator } from "./decorators";
|
|
13
|
+
import { getValueByPath, isGreaterThan } from "./utils";
|
|
14
|
+
/**
|
|
15
|
+
* @summary Greater Than Validator
|
|
16
|
+
*
|
|
17
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#GREATER_THAN}
|
|
18
|
+
*
|
|
19
|
+
* @class GreaterThanValidator
|
|
20
|
+
* @extends Validator
|
|
21
|
+
*
|
|
22
|
+
* @category Validators
|
|
23
|
+
*/
|
|
24
|
+
let GreaterThanValidator = class GreaterThanValidator extends Validator {
|
|
25
|
+
constructor(message = DEFAULT_ERROR_MESSAGES.GREATER_THAN) {
|
|
26
|
+
super(message);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @summary Validates a model
|
|
30
|
+
*
|
|
31
|
+
* @param {string} value
|
|
32
|
+
* @param {ComparisonValidatorOptions} options
|
|
33
|
+
*
|
|
34
|
+
* @return {string | undefined}
|
|
35
|
+
*
|
|
36
|
+
* @override
|
|
37
|
+
* @see Validator#hasErrors
|
|
38
|
+
*/
|
|
39
|
+
hasErrors(value, options, instance) {
|
|
40
|
+
let comparisonPropertyValue;
|
|
41
|
+
try {
|
|
42
|
+
comparisonPropertyValue = getValueByPath(instance, options.propertyToCompare);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
return this.getMessage(e.message || this.message);
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
if (!isGreaterThan(value, comparisonPropertyValue))
|
|
49
|
+
throw new Error(options.message || this.message);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
return this.getMessage(e.message, options.propertyToCompare);
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
GreaterThanValidator = __decorate([
|
|
58
|
+
validator(ValidationKeys.GREATER_THAN),
|
|
59
|
+
__metadata("design:paramtypes", [String])
|
|
60
|
+
], GreaterThanValidator);
|
|
61
|
+
export { GreaterThanValidator };
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JlYXRlclRoYW5WYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL0dyZWF0ZXJUaGFuVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXhEOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQXFCLFNBQVEsU0FBcUM7SUFDN0UsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxZQUFZO1FBQy9ELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFNBQVMsQ0FDZCxLQUFVLEVBQ1YsT0FBbUMsRUFDbkMsUUFBYTtRQUViLElBQUksdUJBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsdUJBQXVCLEdBQUcsY0FBYyxDQUN0QyxRQUFRLEVBQ1IsT0FBTyxDQUFDLGlCQUFpQixDQUMxQixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztnQkFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGLENBQUE7QUF4Q1ksb0JBQW9CO0lBRGhDLFNBQVMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDOztHQUMxQixvQkFBb0IsQ0F3Q2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJpc29uVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0VmFsdWVCeVBhdGgsIGlzR3JlYXRlclRoYW4gfSBmcm9tIFwiLi91dGlsc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEdyZWF0ZXIgVGhhbiBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI0dSRUFURVJfVEhBTn1cbiAqXG4gKiBAY2xhc3MgR3JlYXRlclRoYW5WYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOKVxuZXhwb3J0IGNsYXNzIEdyZWF0ZXJUaGFuVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPENvbXBhcmlzb25WYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuR1JFQVRFUl9USEFOKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Q29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogQ29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnMsXG4gICAgaW5zdGFuY2U6IGFueVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZTogYW55O1xuICAgIHRyeSB7XG4gICAgICBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSA9IGdldFZhbHVlQnlQYXRoKFxuICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoZS5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghaXNHcmVhdGVyVGhhbih2YWx1ZSwgY29tcGFyaXNvblByb3BlcnR5VmFsdWUpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3Iob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSwgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Validator } from "./Validator";
|
|
2
|
+
import type { ComparisonValidatorOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Less Than or Equal Validator
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LESS_THAN_OR_EQUAL}
|
|
7
|
+
*
|
|
8
|
+
* @class LessThanOrEqualValidator
|
|
9
|
+
* @extends Validator
|
|
10
|
+
*
|
|
11
|
+
* @category Validators
|
|
12
|
+
*/
|
|
13
|
+
export declare class LessThanOrEqualValidator extends Validator<ComparisonValidatorOptions> {
|
|
14
|
+
constructor(message?: string);
|
|
15
|
+
/**
|
|
16
|
+
* @summary Validates a model
|
|
17
|
+
*
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {ComparisonValidatorOptions} options
|
|
20
|
+
*
|
|
21
|
+
* @return {string | undefined}
|
|
22
|
+
*
|
|
23
|
+
* @override
|
|
24
|
+
* @see Validator#hasErrors
|
|
25
|
+
*/
|
|
26
|
+
hasErrors(value: any, options: ComparisonValidatorOptions, instance: any): string | undefined;
|
|
27
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Validator } from "./Validator";
|
|
11
|
+
import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
|
|
12
|
+
import { validator } from "./decorators";
|
|
13
|
+
import { getValueByPath, isLessThan, isValidForGteOrLteComparison, } from "./utils";
|
|
14
|
+
import { isEqual } from "@decaf-ts/reflection";
|
|
15
|
+
/**
|
|
16
|
+
* @summary Less Than or Equal Validator
|
|
17
|
+
*
|
|
18
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LESS_THAN_OR_EQUAL}
|
|
19
|
+
*
|
|
20
|
+
* @class LessThanOrEqualValidator
|
|
21
|
+
* @extends Validator
|
|
22
|
+
*
|
|
23
|
+
* @category Validators
|
|
24
|
+
*/
|
|
25
|
+
let LessThanOrEqualValidator = class LessThanOrEqualValidator extends Validator {
|
|
26
|
+
constructor(message = DEFAULT_ERROR_MESSAGES.LESS_THAN_OR_EQUAL) {
|
|
27
|
+
super(message);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @summary Validates a model
|
|
31
|
+
*
|
|
32
|
+
* @param {string} value
|
|
33
|
+
* @param {ComparisonValidatorOptions} options
|
|
34
|
+
*
|
|
35
|
+
* @return {string | undefined}
|
|
36
|
+
*
|
|
37
|
+
* @override
|
|
38
|
+
* @see Validator#hasErrors
|
|
39
|
+
*/
|
|
40
|
+
hasErrors(value, options, instance) {
|
|
41
|
+
let comparisonPropertyValue;
|
|
42
|
+
try {
|
|
43
|
+
comparisonPropertyValue = getValueByPath(instance, options.propertyToCompare);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
return this.getMessage(e.message || this.message);
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
if ((isValidForGteOrLteComparison(value, comparisonPropertyValue) &&
|
|
50
|
+
isEqual(value, comparisonPropertyValue)) ||
|
|
51
|
+
isLessThan(value, comparisonPropertyValue))
|
|
52
|
+
return undefined;
|
|
53
|
+
throw new Error(options.message || this.message);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
return this.getMessage(e.message, options.propertyToCompare);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
LessThanOrEqualValidator = __decorate([
|
|
61
|
+
validator(ValidationKeys.LESS_THAN_OR_EQUAL),
|
|
62
|
+
__metadata("design:paramtypes", [String])
|
|
63
|
+
], LessThanOrEqualValidator);
|
|
64
|
+
export { LessThanOrEqualValidator };
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVzc1RoYW5PckVxdWFsVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9MZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUNMLGNBQWMsRUFDZCxVQUFVLEVBQ1YsNEJBQTRCLEdBQzdCLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLHdCQUF3QixHQUE5QixNQUFNLHdCQUF5QixTQUFRLFNBQXFDO0lBQ2pGLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsa0JBQWtCO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFNBQVMsQ0FDZCxLQUFVLEVBQ1YsT0FBbUMsRUFDbkMsUUFBYTtRQUViLElBQUksdUJBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsdUJBQXVCLEdBQUcsY0FBYyxDQUN0QyxRQUFRLEVBQ1IsT0FBTyxDQUFDLGlCQUFpQixDQUMxQixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxJQUNFLENBQUMsNEJBQTRCLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDO2dCQUMzRCxPQUFPLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLENBQUM7Z0JBQzFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUM7Z0JBRTFDLE9BQU8sU0FBUyxDQUFDO1lBRW5CLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBNUNZLHdCQUF3QjtJQURwQyxTQUFTLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDOztHQUNoQyx3QkFBd0IsQ0E0Q3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJpc29uVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0VmFsdWVCeVBhdGgsXG4gIGlzTGVzc1RoYW4sXG4gIGlzVmFsaWRGb3JHdGVPckx0ZUNvbXBhcmlzb24sXG59IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTGVzcyBUaGFuIG9yIEVxdWFsIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTEVTU19USEFOX09SX0VRVUFMfVxuICpcbiAqIEBjbGFzcyBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTEVTU19USEFOX09SX0VRVUFMKVxuZXhwb3J0IGNsYXNzIExlc3NUaGFuT3JFcXVhbFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxDb21wYXJpc29uVmFsaWRhdG9yT3B0aW9ucz4ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLkxFU1NfVEhBTl9PUl9FUVVBTCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge0NvbXBhcmlzb25WYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IENvbXBhcmlzb25WYWxpZGF0b3JPcHRpb25zLFxuICAgIGluc3RhbmNlOiBhbnlcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgY29tcGFyaXNvblByb3BlcnR5VmFsdWU6IGFueTtcbiAgICB0cnkge1xuICAgICAgY29tcGFyaXNvblByb3BlcnR5VmFsdWUgPSBnZXRWYWx1ZUJ5UGF0aChcbiAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgIG9wdGlvbnMucHJvcGVydHlUb0NvbXBhcmVcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBpZiAoXG4gICAgICAgIChpc1ZhbGlkRm9yR3RlT3JMdGVDb21wYXJpc29uKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSkgJiZcbiAgICAgICAgICBpc0VxdWFsKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSkpIHx8XG4gICAgICAgIGlzTGVzc1RoYW4odmFsdWUsIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3Iob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSwgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Validator } from "./Validator";
|
|
2
|
+
import type { ComparisonValidatorOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Less Than Validator
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LESS_THAN}
|
|
7
|
+
*
|
|
8
|
+
* @class LessThanValidator
|
|
9
|
+
* @extends Validator
|
|
10
|
+
*
|
|
11
|
+
* @category Validators
|
|
12
|
+
*/
|
|
13
|
+
export declare class LessThanValidator extends Validator<ComparisonValidatorOptions> {
|
|
14
|
+
constructor(message?: string);
|
|
15
|
+
/**
|
|
16
|
+
* @summary Validates a model
|
|
17
|
+
*
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {ComparisonValidatorOptions} options
|
|
20
|
+
*
|
|
21
|
+
* @return {string | undefined}
|
|
22
|
+
*
|
|
23
|
+
* @override
|
|
24
|
+
* @see Validator#hasErrors
|
|
25
|
+
*/
|
|
26
|
+
hasErrors(value: any, options: ComparisonValidatorOptions, instance: any): string | undefined;
|
|
27
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Validator } from "./Validator";
|
|
11
|
+
import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
|
|
12
|
+
import { validator } from "./decorators";
|
|
13
|
+
import { getValueByPath, isLessThan } from "./utils";
|
|
14
|
+
/**
|
|
15
|
+
* @summary Less Than Validator
|
|
16
|
+
*
|
|
17
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LESS_THAN}
|
|
18
|
+
*
|
|
19
|
+
* @class LessThanValidator
|
|
20
|
+
* @extends Validator
|
|
21
|
+
*
|
|
22
|
+
* @category Validators
|
|
23
|
+
*/
|
|
24
|
+
let LessThanValidator = class LessThanValidator extends Validator {
|
|
25
|
+
constructor(message = DEFAULT_ERROR_MESSAGES.LESS_THAN) {
|
|
26
|
+
super(message);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @summary Validates a model
|
|
30
|
+
*
|
|
31
|
+
* @param {string} value
|
|
32
|
+
* @param {ComparisonValidatorOptions} options
|
|
33
|
+
*
|
|
34
|
+
* @return {string | undefined}
|
|
35
|
+
*
|
|
36
|
+
* @override
|
|
37
|
+
* @see Validator#hasErrors
|
|
38
|
+
*/
|
|
39
|
+
hasErrors(value, options, instance) {
|
|
40
|
+
let comparisonPropertyValue;
|
|
41
|
+
try {
|
|
42
|
+
comparisonPropertyValue = getValueByPath(instance, options.propertyToCompare);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
return this.getMessage(e.message || this.message);
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
if (!isLessThan(value, comparisonPropertyValue))
|
|
49
|
+
throw new Error(options.message || this.message);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
return this.getMessage(e.message, options.propertyToCompare);
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
LessThanValidator = __decorate([
|
|
58
|
+
validator(ValidationKeys.LESS_THAN),
|
|
59
|
+
__metadata("design:paramtypes", [String])
|
|
60
|
+
], LessThanValidator);
|
|
61
|
+
export { LessThanValidator };
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVzc1RoYW5WYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL0xlc3NUaGFuVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJEOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWtCLFNBQVEsU0FBcUM7SUFDMUUsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxTQUFTO1FBQzVELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFNBQVMsQ0FDZCxLQUFVLEVBQ1YsT0FBbUMsRUFDbkMsUUFBYTtRQUViLElBQUksdUJBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsdUJBQXVCLEdBQUcsY0FBYyxDQUN0QyxRQUFRLEVBQ1IsT0FBTyxDQUFDLGlCQUFpQixDQUMxQixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztnQkFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGLENBQUE7QUF4Q1ksaUJBQWlCO0lBRDdCLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDOztHQUN2QixpQkFBaUIsQ0F3QzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBDb21wYXJpc29uVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0VmFsdWVCeVBhdGgsIGlzTGVzc1RoYW4gfSBmcm9tIFwiLi91dGlsc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IExlc3MgVGhhbiBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI0xFU1NfVEhBTn1cbiAqXG4gKiBAY2xhc3MgTGVzc1RoYW5WYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTEVTU19USEFOKVxuZXhwb3J0IGNsYXNzIExlc3NUaGFuVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPENvbXBhcmlzb25WYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTEVTU19USEFOKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Q29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogQ29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnMsXG4gICAgaW5zdGFuY2U6IGFueVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZTogYW55O1xuICAgIHRyeSB7XG4gICAgICBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSA9IGdldFZhbHVlQnlQYXRoKFxuICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoZS5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghaXNMZXNzVGhhbih2YWx1ZSwgY29tcGFyaXNvblByb3BlcnR5VmFsdWUpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3Iob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSwgb3B0aW9ucy5wcm9wZXJ0eVRvQ29tcGFyZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
@@ -1,62 +1,24 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
2
|
import { ListValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
|
-
* @
|
|
5
|
-
* @summary The ListValidator validates that all elements in an array or Set match the expected types.
|
|
6
|
-
* It checks each element against a list of allowed class types and ensures type consistency.
|
|
7
|
-
* This validator is typically used with the @list decorator.
|
|
4
|
+
* @summary List Validator
|
|
8
5
|
*
|
|
9
|
-
* @param {string} [message]
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
|
|
10
7
|
*
|
|
11
8
|
* @class ListValidator
|
|
12
9
|
* @extends Validator
|
|
13
10
|
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Create a list validator with default error message
|
|
17
|
-
* const listValidator = new ListValidator();
|
|
18
|
-
*
|
|
19
|
-
* // Create a list validator with custom error message
|
|
20
|
-
* const customListValidator = new ListValidator("All items must be of the specified type");
|
|
21
|
-
*
|
|
22
|
-
* // Validate a list
|
|
23
|
-
* const options = { clazz: ["String", "Number"] };
|
|
24
|
-
* const result = listValidator.hasErrors(["test", 123], options); // undefined (valid)
|
|
25
|
-
* const invalidResult = listValidator.hasErrors([new Date()], options); // Returns error message (invalid)
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* @mermaid
|
|
29
|
-
* sequenceDiagram
|
|
30
|
-
* participant C as Client
|
|
31
|
-
* participant V as ListValidator
|
|
32
|
-
*
|
|
33
|
-
* C->>V: new ListValidator(message)
|
|
34
|
-
* C->>V: hasErrors(value, options)
|
|
35
|
-
* alt value is empty
|
|
36
|
-
* V-->>C: undefined (valid)
|
|
37
|
-
* else value has elements
|
|
38
|
-
* V->>V: Check each element's type
|
|
39
|
-
* alt All elements match allowed types
|
|
40
|
-
* V-->>C: undefined (valid)
|
|
41
|
-
* else Some elements don't match
|
|
42
|
-
* V-->>C: Error message
|
|
43
|
-
* end
|
|
44
|
-
* end
|
|
45
|
-
*
|
|
46
11
|
* @category Validators
|
|
47
12
|
*/
|
|
48
13
|
export declare class ListValidator extends Validator<ListValidatorOptions> {
|
|
49
14
|
constructor(message?: string);
|
|
50
15
|
/**
|
|
51
|
-
* @
|
|
52
|
-
* @summary Validates that each element in the provided array or Set matches one of the
|
|
53
|
-
* class types specified in the options. For object types, it checks the constructor name,
|
|
54
|
-
* and for primitive types, it compares against the lowercase type name.
|
|
16
|
+
* @summary Validates a model
|
|
55
17
|
*
|
|
56
|
-
* @param {any[] | Set<any>} value
|
|
57
|
-
* @param {ListValidatorOptions} options
|
|
18
|
+
* @param {any[] | Set<any>} value
|
|
19
|
+
* @param {ListValidatorOptions} options
|
|
58
20
|
*
|
|
59
|
-
* @return {string | undefined}
|
|
21
|
+
* @return {string | undefined}
|
|
60
22
|
*
|
|
61
23
|
* @override
|
|
62
24
|
*
|