@decaf-ts/decorator-validation 1.0.7 → 1.0.11
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.bundle.min.js +1 -1
- package/dist/esm/decorator-validation.bundle.min.esm.js +1 -1
- package/lib/esm/index.d.ts +6 -1
- package/lib/esm/index.js +68 -1
- package/lib/esm/model/Model.d.ts +3 -1
- package/lib/esm/model/Model.js +316 -1
- package/lib/esm/model/ModelErrorDefinition.d.ts +1 -1
- package/lib/esm/model/ModelErrorDefinition.js +55 -3
- package/lib/esm/model/Registry.d.ts +1 -1
- package/lib/esm/model/Registry.js +76 -1
- package/lib/esm/model/constants.js +44 -1
- package/lib/esm/model/construction.js +124 -1
- package/lib/esm/model/decorators.d.ts +3 -3
- package/lib/esm/model/decorators.js +68 -1
- package/lib/esm/model/index.d.ts +3 -3
- package/lib/esm/model/index.js +9 -1
- package/lib/esm/model/types.js +3 -0
- package/lib/esm/reflection/decorators.d.ts +15 -0
- package/lib/esm/reflection/decorators.js +28 -0
- package/lib/esm/reflection/index.d.ts +2 -0
- package/lib/esm/reflection/index.js +4 -0
- package/lib/esm/{utils/general.d.ts → reflection/utils.d.ts} +7 -87
- package/lib/esm/reflection/utils.js +239 -0
- package/lib/esm/utils/constants.js +25 -1
- package/lib/esm/utils/dates.d.ts +76 -0
- package/lib/esm/utils/dates.js +241 -0
- package/lib/esm/utils/equality.d.ts +14 -0
- package/lib/esm/utils/equality.js +34 -0
- package/lib/esm/utils/hashing.d.ts +42 -0
- package/lib/esm/utils/hashing.js +73 -0
- package/lib/esm/utils/index.d.ts +6 -2
- package/lib/esm/utils/index.js +10 -1
- package/lib/esm/utils/registry.js +3 -0
- package/lib/esm/utils/serialization.js +53 -1
- package/lib/esm/utils/strings.d.ts +25 -0
- package/lib/esm/utils/strings.js +31 -0
- package/lib/esm/validation/Validation.d.ts +2 -1
- package/lib/esm/validation/Validation.js +63 -1
- package/lib/esm/validation/Validators/DateValidator.js +55 -1
- package/lib/esm/validation/Validators/EmailValidator.d.ts +0 -1
- package/lib/esm/validation/Validators/EmailValidator.js +49 -1
- package/lib/esm/validation/Validators/ListValidator.js +67 -1
- package/lib/esm/validation/Validators/MaxLengthValidator.js +55 -1
- package/lib/esm/validation/Validators/MaxValidator.js +59 -1
- package/lib/esm/validation/Validators/MinLengthValidator.js +55 -1
- package/lib/esm/validation/Validators/MinValidator.js +59 -1
- package/lib/esm/validation/Validators/PasswordValidator.js +52 -1
- package/lib/esm/validation/Validators/PatternValidator.d.ts +3 -3
- package/lib/esm/validation/Validators/PatternValidator.js +72 -1
- package/lib/esm/validation/Validators/RequiredValidator.js +57 -1
- package/lib/esm/validation/Validators/StepValidator.js +54 -1
- package/lib/esm/validation/Validators/TypeValidator.js +42 -1
- package/lib/esm/validation/Validators/URLValidator.d.ts +0 -1
- package/lib/esm/validation/Validators/URLValidator.js +48 -1
- package/lib/esm/validation/Validators/Validator.js +50 -1
- package/lib/esm/validation/Validators/ValidatorRegistry.js +81 -1
- package/lib/esm/validation/Validators/constants.d.ts +8 -4
- package/lib/esm/validation/Validators/constants.js +135 -1
- package/lib/esm/validation/Validators/decorators.d.ts +13 -0
- package/lib/esm/validation/Validators/decorators.js +23 -0
- package/lib/esm/validation/Validators/index.d.ts +9 -7
- package/lib/esm/validation/Validators/index.js +54 -1
- package/lib/esm/validation/Validators/types.d.ts +2 -2
- package/lib/esm/validation/Validators/types.js +3 -0
- package/lib/esm/validation/decorators.d.ts +14 -87
- package/lib/esm/validation/decorators.js +320 -1
- package/lib/esm/validation/index.d.ts +1 -10
- package/lib/esm/validation/index.js +6 -1
- package/lib/esm/validation/types.d.ts +11 -0
- package/lib/esm/validation/types.js +3 -0
- package/lib/index.cjs +85 -1
- package/lib/index.d.ts +6 -1
- package/lib/model/Model.cjs +321 -1
- package/lib/model/Model.d.ts +3 -1
- package/lib/model/ModelErrorDefinition.cjs +59 -3
- package/lib/model/ModelErrorDefinition.d.ts +1 -1
- package/lib/model/Registry.cjs +81 -1
- package/lib/model/Registry.d.ts +1 -1
- package/lib/model/constants.cjs +47 -1
- package/lib/model/construction.cjs +129 -1
- package/lib/model/decorators.cjs +73 -1
- package/lib/model/decorators.d.ts +3 -3
- package/lib/model/index.cjs +25 -1
- package/lib/model/index.d.ts +3 -3
- package/lib/model/types.cjs +4 -1
- package/lib/reflection/decorators.cjs +31 -0
- package/lib/reflection/decorators.d.ts +15 -0
- package/lib/reflection/index.cjs +20 -0
- package/lib/reflection/index.d.ts +2 -0
- package/lib/reflection/utils.cjs +251 -0
- package/lib/{utils/general.d.ts → reflection/utils.d.ts} +7 -87
- package/lib/utils/constants.cjs +28 -1
- package/lib/utils/dates.cjs +249 -0
- package/lib/utils/dates.d.ts +76 -0
- package/lib/utils/equality.cjs +37 -0
- package/lib/utils/equality.d.ts +14 -0
- package/lib/utils/hashing.cjs +78 -0
- package/lib/utils/hashing.d.ts +42 -0
- package/lib/utils/index.cjs +26 -1
- package/lib/utils/index.d.ts +6 -2
- package/lib/utils/registry.cjs +4 -1
- package/lib/utils/serialization.cjs +57 -1
- package/lib/utils/strings.cjs +35 -0
- package/lib/utils/strings.d.ts +25 -0
- package/lib/validation/Validation.cjs +67 -1
- package/lib/validation/Validation.d.ts +2 -1
- package/lib/validation/Validators/DateValidator.cjs +58 -1
- package/lib/validation/Validators/EmailValidator.cjs +52 -1
- package/lib/validation/Validators/EmailValidator.d.ts +0 -1
- package/lib/validation/Validators/ListValidator.cjs +70 -1
- package/lib/validation/Validators/MaxLengthValidator.cjs +58 -1
- package/lib/validation/Validators/MaxValidator.cjs +62 -1
- package/lib/validation/Validators/MinLengthValidator.cjs +58 -1
- package/lib/validation/Validators/MinValidator.cjs +62 -1
- package/lib/validation/Validators/PasswordValidator.cjs +55 -1
- package/lib/validation/Validators/PatternValidator.cjs +75 -1
- package/lib/validation/Validators/PatternValidator.d.ts +3 -3
- package/lib/validation/Validators/RequiredValidator.cjs +60 -1
- package/lib/validation/Validators/StepValidator.cjs +57 -1
- package/lib/validation/Validators/TypeValidator.cjs +46 -1
- package/lib/validation/Validators/URLValidator.cjs +51 -1
- package/lib/validation/Validators/URLValidator.d.ts +0 -1
- package/lib/validation/Validators/Validator.cjs +54 -1
- package/lib/validation/Validators/ValidatorRegistry.cjs +86 -1
- package/lib/validation/Validators/constants.cjs +138 -1
- package/lib/validation/Validators/constants.d.ts +8 -4
- package/lib/validation/Validators/decorators.cjs +26 -0
- package/lib/validation/Validators/decorators.d.ts +13 -0
- package/lib/validation/Validators/index.cjs +71 -1
- package/lib/validation/Validators/index.d.ts +9 -7
- package/lib/validation/Validators/types.cjs +4 -1
- package/lib/validation/Validators/types.d.ts +2 -2
- package/lib/validation/decorators.cjs +337 -1
- package/lib/validation/decorators.d.ts +14 -87
- package/lib/validation/index.cjs +22 -1
- package/lib/validation/index.d.ts +1 -10
- package/lib/validation/types.cjs +4 -1
- package/lib/validation/types.d.ts +11 -0
- package/package.json +17 -13
- package/lib/esm/utils/general.js +0 -1
- package/lib/utils/general.cjs +0 -1
|
@@ -1 +1,57 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JSONSerializer = void 0;
|
|
4
|
+
const Model_1 = require("../model/Model/index.cjs");
|
|
5
|
+
const constants_1 = require("./constants/index.cjs");
|
|
6
|
+
/**
|
|
7
|
+
* @summary Concrete implementation of a {@link Serializer} in JSON format
|
|
8
|
+
* @description JS's native JSON.stringify (used here) is not deterministic
|
|
9
|
+
* and therefore should not be used for hashing purposes
|
|
10
|
+
*
|
|
11
|
+
* To keep dependencies low, we will not implement this, but we recommend
|
|
12
|
+
* implementing a similar {@link JSONSerializer} using 'deterministic-json' libraries
|
|
13
|
+
*
|
|
14
|
+
* @class JSONSerializer
|
|
15
|
+
* @implements Serializer
|
|
16
|
+
*
|
|
17
|
+
* @category Serialization
|
|
18
|
+
*/
|
|
19
|
+
class JSONSerializer {
|
|
20
|
+
/**
|
|
21
|
+
* @summary prepares the model for serialization
|
|
22
|
+
* @description returns a shallow copy of the object, containing an enumerable {@link ModelKeys#ANCHOR} property
|
|
23
|
+
* so the object can be recognized upon deserialization
|
|
24
|
+
*
|
|
25
|
+
* @param {T} model
|
|
26
|
+
* @protected
|
|
27
|
+
*/
|
|
28
|
+
preSerialize(model) {
|
|
29
|
+
// TODO: nested preserialization (so increase performance when deserializing)
|
|
30
|
+
const toSerialize = Object.assign({}, model);
|
|
31
|
+
toSerialize[constants_1.ModelKeys.ANCHOR] = model[constants_1.ModelKeys.ANCHOR];
|
|
32
|
+
return toSerialize;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @summary Rebuilds a model from a serialization
|
|
36
|
+
* @param {string} str
|
|
37
|
+
*
|
|
38
|
+
* @throws {Error} If it fails to parse the string, or to build the model
|
|
39
|
+
*/
|
|
40
|
+
deserialize(str) {
|
|
41
|
+
const deserialization = JSON.parse(str);
|
|
42
|
+
const model = Model_1.Model.build(deserialization);
|
|
43
|
+
return model;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @summary Serializes a model
|
|
47
|
+
* @param {T} model
|
|
48
|
+
*
|
|
49
|
+
* @throws {Error} if fails to serialize
|
|
50
|
+
*/
|
|
51
|
+
serialize(model) {
|
|
52
|
+
return JSON.stringify(this.preSerialize(model));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.JSONSerializer = JSONSerializer;
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91dGlscy9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBDQUF1QztBQUN2QywyQ0FBd0M7QUE4QnhDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsY0FBYztJQUN6Qjs7Ozs7OztPQU9HO0lBQ08sWUFBWSxDQUFDLEtBQVE7UUFDN0IsNkVBQTZFO1FBQzdFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLFdBQW1DLENBQUMscUJBQVMsQ0FBQyxNQUFNLENBQUMsR0FDcEQsS0FDRCxDQUFDLHFCQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEdBQVc7UUFDckIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLEtBQUssR0FBTSxhQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBaUIsQ0FBQztRQUM5RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxLQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBdkNELHdDQXVDQyIsImZpbGUiOiJ1dGlscy9zZXJpYWxpemF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvTW9kZWxcIjtcbmltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEhlbHBlciBpbiBzZXJpYWxpemF0aW9uXG4gKlxuICogQGludGVyZmFjZSBTZXJpYWxpemVyXG4gKiBAY2F0ZWdvcnkgU2VyaWFsaXphdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZXI8VCBleHRlbmRzIE1vZGVsPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBTZXJpYWxpemVzIGEgbW9kZWxcbiAgICogQHBhcmFtIHtUfSBtb2RlbFxuICAgKlxuICAgKiBAbWV0aG9kXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfVxuICAgKi9cbiAgc2VyaWFsaXplKG1vZGVsOiBUKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZWJ1aWxkcyBhIG1vZGVsIGZyb20gc2VyaWFsaXphdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gICAqXG4gICAqIEBtZXRob2RcbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9XG4gICAqL1xuICBkZXNlcmlhbGl6ZShzdHI6IHN0cmluZyk6IFQ7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgQ29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgYSB7QGxpbmsgU2VyaWFsaXplcn0gaW4gSlNPTiBmb3JtYXRcbiAqIEBkZXNjcmlwdGlvbiBKUydzIG5hdGl2ZSBKU09OLnN0cmluZ2lmeSAodXNlZCBoZXJlKSBpcyBub3QgZGV0ZXJtaW5pc3RpY1xuICogYW5kIHRoZXJlZm9yZSBzaG91bGQgbm90IGJlIHVzZWQgZm9yIGhhc2hpbmcgcHVycG9zZXNcbiAqXG4gKiBUbyBrZWVwIGRlcGVuZGVuY2llcyBsb3csIHdlIHdpbGwgbm90IGltcGxlbWVudCB0aGlzLCBidXQgd2UgcmVjb21tZW5kXG4gKiBpbXBsZW1lbnRpbmcgYSBzaW1pbGFyIHtAbGluayBKU09OU2VyaWFsaXplcn0gdXNpbmcgJ2RldGVybWluaXN0aWMtanNvbicgbGlicmFyaWVzXG4gKlxuICogQGNsYXNzIEpTT05TZXJpYWxpemVyXG4gKiBAaW1wbGVtZW50cyBTZXJpYWxpemVyXG4gKlxuICogQGNhdGVnb3J5IFNlcmlhbGl6YXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEpTT05TZXJpYWxpemVyPFQgZXh0ZW5kcyBNb2RlbD4gaW1wbGVtZW50cyBTZXJpYWxpemVyPFQ+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHByZXBhcmVzIHRoZSBtb2RlbCBmb3Igc2VyaWFsaXphdGlvblxuICAgKiBAZGVzY3JpcHRpb24gcmV0dXJucyBhIHNoYWxsb3cgY29weSBvZiB0aGUgb2JqZWN0LCBjb250YWluaW5nIGFuIGVudW1lcmFibGUge0BsaW5rIE1vZGVsS2V5cyNBTkNIT1J9IHByb3BlcnR5XG4gICAqIHNvIHRoZSBvYmplY3QgY2FuIGJlIHJlY29nbml6ZWQgdXBvbiBkZXNlcmlhbGl6YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtUfSBtb2RlbFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgcHJlU2VyaWFsaXplKG1vZGVsOiBUKSB7XG4gICAgLy8gVE9ETzogbmVzdGVkIHByZXNlcmlhbGl6YXRpb24gKHNvIGluY3JlYXNlIHBlcmZvcm1hbmNlIHdoZW4gZGVzZXJpYWxpemluZylcbiAgICBjb25zdCB0b1NlcmlhbGl6ZSA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGVsKTtcbiAgICAodG9TZXJpYWxpemUgYXMgUmVjb3JkPHN0cmluZywgYW55PilbTW9kZWxLZXlzLkFOQ0hPUl0gPSAoXG4gICAgICBtb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKVtNb2RlbEtleXMuQU5DSE9SXTtcbiAgICByZXR1cm4gdG9TZXJpYWxpemU7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVidWlsZHMgYSBtb2RlbCBmcm9tIGEgc2VyaWFsaXphdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBpdCBmYWlscyB0byBwYXJzZSB0aGUgc3RyaW5nLCBvciB0byBidWlsZCB0aGUgbW9kZWxcbiAgICovXG4gIGRlc2VyaWFsaXplKHN0cjogc3RyaW5nKTogVCB7XG4gICAgY29uc3QgZGVzZXJpYWxpemF0aW9uID0gSlNPTi5wYXJzZShzdHIpO1xuICAgIGNvbnN0IG1vZGVsOiBUID0gTW9kZWwuYnVpbGQoZGVzZXJpYWxpemF0aW9uKSBhcyB1bmtub3duIGFzIFQ7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFNlcmlhbGl6ZXMgYSBtb2RlbFxuICAgKiBAcGFyYW0ge1R9IG1vZGVsXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBpZiBmYWlscyB0byBzZXJpYWxpemVcbiAgICovXG4gIHNlcmlhbGl6ZShtb2RlbDogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMucHJlU2VyaWFsaXplKG1vZGVsKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sf = void 0;
|
|
4
|
+
exports.stringFormat = stringFormat;
|
|
5
|
+
/**
|
|
6
|
+
* @summary Util function to provide string format functionality similar to C#'s string.format
|
|
7
|
+
*
|
|
8
|
+
* @param {string} string
|
|
9
|
+
* @param {string} args replacements made by order of appearance (replacement0 wil replace {0} and so on)
|
|
10
|
+
* @return {string} formatted string
|
|
11
|
+
*
|
|
12
|
+
* @function stringFormat
|
|
13
|
+
* @memberOf module:decorator-validation.Utils.Format
|
|
14
|
+
* @category Format
|
|
15
|
+
*/
|
|
16
|
+
function stringFormat(string, ...args) {
|
|
17
|
+
return string.replace(/{(\d+)}/g, function (match, number) {
|
|
18
|
+
return typeof args[number] !== "undefined" ? args[number] : match;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @summary Util function to provide string format functionality similar to C#'s string.format
|
|
23
|
+
* @description alias for {@link stringFormat}
|
|
24
|
+
*
|
|
25
|
+
* @param {string} string
|
|
26
|
+
* @param {string} args replacements made by order of appearance (replacement0 wil replace {0} and so on)
|
|
27
|
+
* @return {string} formatted string
|
|
28
|
+
*
|
|
29
|
+
* @function sf
|
|
30
|
+
* @memberOf module:decorator-validation.Utils.Format
|
|
31
|
+
* @category Format
|
|
32
|
+
*/
|
|
33
|
+
exports.sf = stringFormat;
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91dGlscy9zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBLG9DQUlDO0FBZkQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLFlBQVksQ0FBQyxNQUFjLEVBQUUsR0FBRyxJQUFjO0lBQzVELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxLQUFLLEVBQUUsTUFBTTtRQUN2RCxPQUFPLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDVSxRQUFBLEVBQUUsR0FBRyxZQUFZLENBQUMiLCJmaWxlIjoidXRpbHMvc3RyaW5ncy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBwcm92aWRlIHN0cmluZyBmb3JtYXQgZnVuY3Rpb25hbGl0eSBzaW1pbGFyIHRvIEMjJ3Mgc3RyaW5nLmZvcm1hdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzIHJlcGxhY2VtZW50cyBtYWRlIGJ5IG9yZGVyIG9mIGFwcGVhcmFuY2UgKHJlcGxhY2VtZW50MCB3aWwgcmVwbGFjZSB7MH0gYW5kIHNvIG9uKVxuICogQHJldHVybiB7c3RyaW5nfSBmb3JtYXR0ZWQgc3RyaW5nXG4gKlxuICogQGZ1bmN0aW9uIHN0cmluZ0Zvcm1hdFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5VdGlscy5Gb3JtYXRcbiAqIEBjYXRlZ29yeSBGb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0Zvcm1hdChzdHJpbmc6IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC97KFxcZCspfS9nLCBmdW5jdGlvbiAobWF0Y2gsIG51bWJlcikge1xuICAgIHJldHVybiB0eXBlb2YgYXJnc1tudW1iZXJdICE9PSBcInVuZGVmaW5lZFwiID8gYXJnc1tudW1iZXJdIDogbWF0Y2g7XG4gIH0pO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFV0aWwgZnVuY3Rpb24gdG8gcHJvdmlkZSBzdHJpbmcgZm9ybWF0IGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0byBDIydzIHN0cmluZy5mb3JtYXRcbiAqIEBkZXNjcmlwdGlvbiBhbGlhcyBmb3Ige0BsaW5rIHN0cmluZ0Zvcm1hdH1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncyByZXBsYWNlbWVudHMgbWFkZSBieSBvcmRlciBvZiBhcHBlYXJhbmNlIChyZXBsYWNlbWVudDAgd2lsIHJlcGxhY2UgezB9IGFuZCBzbyBvbilcbiAqIEByZXR1cm4ge3N0cmluZ30gZm9ybWF0dGVkIHN0cmluZ1xuICpcbiAqIEBmdW5jdGlvbiBzZlxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5VdGlscy5Gb3JtYXRcbiAqIEBjYXRlZ29yeSBGb3JtYXRcbiAqL1xuZXhwb3J0IGNvbnN0IHNmID0gc3RyaW5nRm9ybWF0O1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @summary Util function to provide string format functionality similar to C#'s string.format
|
|
3
|
+
*
|
|
4
|
+
* @param {string} string
|
|
5
|
+
* @param {string} args replacements made by order of appearance (replacement0 wil replace {0} and so on)
|
|
6
|
+
* @return {string} formatted string
|
|
7
|
+
*
|
|
8
|
+
* @function stringFormat
|
|
9
|
+
* @memberOf module:decorator-validation.Utils.Format
|
|
10
|
+
* @category Format
|
|
11
|
+
*/
|
|
12
|
+
export declare function stringFormat(string: string, ...args: string[]): string;
|
|
13
|
+
/**
|
|
14
|
+
* @summary Util function to provide string format functionality similar to C#'s string.format
|
|
15
|
+
* @description alias for {@link stringFormat}
|
|
16
|
+
*
|
|
17
|
+
* @param {string} string
|
|
18
|
+
* @param {string} args replacements made by order of appearance (replacement0 wil replace {0} and so on)
|
|
19
|
+
* @return {string} formatted string
|
|
20
|
+
*
|
|
21
|
+
* @function sf
|
|
22
|
+
* @memberOf module:decorator-validation.Utils.Format
|
|
23
|
+
* @category Format
|
|
24
|
+
*/
|
|
25
|
+
export declare const sf: typeof stringFormat;
|
|
@@ -1 +1,67 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Validation = void 0;
|
|
4
|
+
const TypeValidator_1 = require("./Validators/TypeValidator/index.cjs");
|
|
5
|
+
const ValidatorRegistry_1 = require("./Validators/ValidatorRegistry/index.cjs");
|
|
6
|
+
const constants_1 = require("../utils/constants/index.cjs");
|
|
7
|
+
/**
|
|
8
|
+
* @summary Static class acting as a namespace for the Validation
|
|
9
|
+
*
|
|
10
|
+
* @class Validation
|
|
11
|
+
* @static
|
|
12
|
+
*
|
|
13
|
+
* @category Validation
|
|
14
|
+
*/
|
|
15
|
+
class Validation {
|
|
16
|
+
static { this.actingValidatorRegistry = undefined; }
|
|
17
|
+
constructor() { }
|
|
18
|
+
/**
|
|
19
|
+
* @summary Defines the acting ValidatorRegistry
|
|
20
|
+
*
|
|
21
|
+
* @param {IValidatorRegistry} validatorRegistry the new implementation of the validator Registry
|
|
22
|
+
* @param {function(Validator): Validator} [migrationHandler] the method to map the validator if required;
|
|
23
|
+
*/
|
|
24
|
+
static setRegistry(validatorRegistry, migrationHandler) {
|
|
25
|
+
if (migrationHandler && Validation.actingValidatorRegistry)
|
|
26
|
+
Validation.actingValidatorRegistry.getKeys().forEach((k) => {
|
|
27
|
+
const validator = validatorRegistry.get(k);
|
|
28
|
+
if (validator)
|
|
29
|
+
validatorRegistry.register(migrationHandler(validator));
|
|
30
|
+
});
|
|
31
|
+
Validation.actingValidatorRegistry = validatorRegistry;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @summary Returns the current ValidatorRegistry
|
|
35
|
+
*
|
|
36
|
+
* @return IValidatorRegistry, defaults to {@link ValidatorRegistry}
|
|
37
|
+
*/
|
|
38
|
+
static getRegistry() {
|
|
39
|
+
if (!Validation.actingValidatorRegistry)
|
|
40
|
+
Validation.actingValidatorRegistry = new ValidatorRegistry_1.ValidatorRegistry({
|
|
41
|
+
validator: TypeValidator_1.TypeValidator,
|
|
42
|
+
validationKey: constants_1.ModelKeys.TYPE,
|
|
43
|
+
save: false,
|
|
44
|
+
});
|
|
45
|
+
return Validation.actingValidatorRegistry;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @summary Retrieves a validator
|
|
49
|
+
*
|
|
50
|
+
* @param {string} validatorKey one of the {@link ValidationKeys}
|
|
51
|
+
* @return {Validator | undefined} the registered Validator or undefined if there is nono matching the provided key
|
|
52
|
+
*/
|
|
53
|
+
static get(validatorKey) {
|
|
54
|
+
return Validation.getRegistry().get(validatorKey);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @summary Registers the provided validators onto the registry
|
|
58
|
+
*
|
|
59
|
+
* @param {T[] | ValidatorDefinition[]} validator
|
|
60
|
+
*/
|
|
61
|
+
static register(...validator) {
|
|
62
|
+
return Validation.getRegistry().register(...validator);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.Validation = Validation;
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsOERBQTJEO0FBQzNELHNFQUFtRTtBQUNuRSxrREFBK0M7QUFFL0M7Ozs7Ozs7R0FPRztBQUNILE1BQWEsVUFBVTthQUNOLDRCQUF1QixHQUNwQyxTQUFTLENBQUM7SUFFWixnQkFBdUIsQ0FBQztJQUV4Qjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQ2hCLGlCQUFnRCxFQUNoRCxnQkFBc0Q7UUFFdEQsSUFBSSxnQkFBZ0IsSUFBSSxVQUFVLENBQUMsdUJBQXVCO1lBQ3hELFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekQsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLFNBQVM7b0JBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDTCxVQUFVLENBQUMsdUJBQXVCLEdBQUcsaUJBQWlCLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsV0FBVztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QjtZQUNyQyxVQUFVLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxxQ0FBaUIsQ0FBQztnQkFDekQsU0FBUyxFQUFFLDZCQUFhO2dCQUN4QixhQUFhLEVBQUUscUJBQVMsQ0FBQyxJQUFJO2dCQUM3QixJQUFJLEVBQUUsS0FBSzthQUNaLENBQUMsQ0FBQztRQUNMLE9BQU8sVUFBVSxDQUFDLHVCQUF1QixDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQXNCLFlBQW9CO1FBQ2xELE9BQU8sVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQ2IsR0FBRyxTQUFzQztRQUV6QyxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDOztBQTFESCxnQ0EyREMiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9ycy9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IElWYWxpZGF0b3JSZWdpc3RyeSwgVmFsaWRhdG9yRGVmaW5pdGlvbiB9IGZyb20gXCIuL1ZhbGlkYXRvcnMvdHlwZXNcIjtcbmltcG9ydCB7IFR5cGVWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JzL1R5cGVWYWxpZGF0b3JcIjtcbmltcG9ydCB7IFZhbGlkYXRvclJlZ2lzdHJ5IH0gZnJvbSBcIi4vVmFsaWRhdG9ycy9WYWxpZGF0b3JSZWdpc3RyeVwiO1xuaW1wb3J0IHsgTW9kZWxLZXlzIH0gZnJvbSBcIi4uL3V0aWxzL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFN0YXRpYyBjbGFzcyBhY3RpbmcgYXMgYSBuYW1lc3BhY2UgZm9yIHRoZSBWYWxpZGF0aW9uXG4gKlxuICogQGNsYXNzIFZhbGlkYXRpb25cbiAqIEBzdGF0aWNcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XG4gIHByaXZhdGUgc3RhdGljIGFjdGluZ1ZhbGlkYXRvclJlZ2lzdHJ5PzogSVZhbGlkYXRvclJlZ2lzdHJ5PFZhbGlkYXRvcj4gPVxuICAgIHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgYWN0aW5nIFZhbGlkYXRvclJlZ2lzdHJ5XG4gICAqXG4gICAqIEBwYXJhbSB7SVZhbGlkYXRvclJlZ2lzdHJ5fSB2YWxpZGF0b3JSZWdpc3RyeSB0aGUgbmV3IGltcGxlbWVudGF0aW9uIG9mIHRoZSB2YWxpZGF0b3IgUmVnaXN0cnlcbiAgICogQHBhcmFtIHtmdW5jdGlvbihWYWxpZGF0b3IpOiBWYWxpZGF0b3J9IFttaWdyYXRpb25IYW5kbGVyXSB0aGUgbWV0aG9kIHRvIG1hcCB0aGUgdmFsaWRhdG9yIGlmIHJlcXVpcmVkO1xuICAgKi9cbiAgc3RhdGljIHNldFJlZ2lzdHJ5KFxuICAgIHZhbGlkYXRvclJlZ2lzdHJ5OiBJVmFsaWRhdG9yUmVnaXN0cnk8VmFsaWRhdG9yPixcbiAgICBtaWdyYXRpb25IYW5kbGVyPzogKHZhbGlkYXRvcjogVmFsaWRhdG9yKSA9PiBWYWxpZGF0b3IsXG4gICkge1xuICAgIGlmIChtaWdyYXRpb25IYW5kbGVyICYmIFZhbGlkYXRpb24uYWN0aW5nVmFsaWRhdG9yUmVnaXN0cnkpXG4gICAgICBWYWxpZGF0aW9uLmFjdGluZ1ZhbGlkYXRvclJlZ2lzdHJ5LmdldEtleXMoKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvciA9IHZhbGlkYXRvclJlZ2lzdHJ5LmdldChrKTtcbiAgICAgICAgaWYgKHZhbGlkYXRvcikgdmFsaWRhdG9yUmVnaXN0cnkucmVnaXN0ZXIobWlncmF0aW9uSGFuZGxlcih2YWxpZGF0b3IpKTtcbiAgICAgIH0pO1xuICAgIFZhbGlkYXRpb24uYWN0aW5nVmFsaWRhdG9yUmVnaXN0cnkgPSB2YWxpZGF0b3JSZWdpc3RyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBjdXJyZW50IFZhbGlkYXRvclJlZ2lzdHJ5XG4gICAqXG4gICAqIEByZXR1cm4gSVZhbGlkYXRvclJlZ2lzdHJ5LCBkZWZhdWx0cyB0byB7QGxpbmsgVmFsaWRhdG9yUmVnaXN0cnl9XG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRSZWdpc3RyeSgpIHtcbiAgICBpZiAoIVZhbGlkYXRpb24uYWN0aW5nVmFsaWRhdG9yUmVnaXN0cnkpXG4gICAgICBWYWxpZGF0aW9uLmFjdGluZ1ZhbGlkYXRvclJlZ2lzdHJ5ID0gbmV3IFZhbGlkYXRvclJlZ2lzdHJ5KHtcbiAgICAgICAgdmFsaWRhdG9yOiBUeXBlVmFsaWRhdG9yLFxuICAgICAgICB2YWxpZGF0aW9uS2V5OiBNb2RlbEtleXMuVFlQRSxcbiAgICAgICAgc2F2ZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICByZXR1cm4gVmFsaWRhdGlvbi5hY3RpbmdWYWxpZGF0b3JSZWdpc3RyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSB2YWxpZGF0b3JcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbGlkYXRvcktleSBvbmUgb2YgdGhlIHtAbGluayBWYWxpZGF0aW9uS2V5c31cbiAgICogQHJldHVybiB7VmFsaWRhdG9yIHwgdW5kZWZpbmVkfSB0aGUgcmVnaXN0ZXJlZCBWYWxpZGF0b3Igb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbm8gbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIGtleVxuICAgKi9cbiAgc3RhdGljIGdldDxUIGV4dGVuZHMgVmFsaWRhdG9yPih2YWxpZGF0b3JLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBWYWxpZGF0aW9uLmdldFJlZ2lzdHJ5KCkuZ2V0KHZhbGlkYXRvcktleSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXJzIHRoZSBwcm92aWRlZCB2YWxpZGF0b3JzIG9udG8gdGhlIHJlZ2lzdHJ5XG4gICAqXG4gICAqIEBwYXJhbSB7VFtdIHwgVmFsaWRhdG9yRGVmaW5pdGlvbltdfSB2YWxpZGF0b3JcbiAgICovXG4gIHN0YXRpYyByZWdpc3RlcjxUIGV4dGVuZHMgVmFsaWRhdG9yPihcbiAgICAuLi52YWxpZGF0b3I6IChWYWxpZGF0b3JEZWZpbml0aW9uIHwgVClbXVxuICApOiB2b2lkIHtcbiAgICByZXR1cm4gVmFsaWRhdGlvbi5nZXRSZWdpc3RyeSgpLnJlZ2lzdGVyKC4uLnZhbGlkYXRvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Validator } from "./Validators/Validator";
|
|
2
|
+
import { IValidatorRegistry, ValidatorDefinition } from "./Validators/types";
|
|
2
3
|
/**
|
|
3
4
|
* @summary Static class acting as a namespace for the Validation
|
|
4
5
|
*
|
|
@@ -1 +1,58 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DateValidator = void 0;
|
|
13
|
+
const Validator_1 = require("./Validator/index.cjs");
|
|
14
|
+
const constants_1 = require("./constants/index.cjs");
|
|
15
|
+
const decorators_1 = require("./decorators/index.cjs");
|
|
16
|
+
/**
|
|
17
|
+
* @summary Date Validator
|
|
18
|
+
*
|
|
19
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#DATE}
|
|
20
|
+
*
|
|
21
|
+
* @class DateValidator
|
|
22
|
+
* @extends Validator
|
|
23
|
+
*
|
|
24
|
+
* @category Validators
|
|
25
|
+
*/
|
|
26
|
+
let DateValidator = class DateValidator extends Validator_1.Validator {
|
|
27
|
+
constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.DATE) {
|
|
28
|
+
super(constants_1.ValidationKeys.DATE, message, Number.name, Date.name, String.name);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @summary Validates a model
|
|
32
|
+
*
|
|
33
|
+
* @param {Date | string} value
|
|
34
|
+
* @param {string} format
|
|
35
|
+
* @param {string} [message]
|
|
36
|
+
*
|
|
37
|
+
* @return Errors
|
|
38
|
+
*
|
|
39
|
+
* @override
|
|
40
|
+
*
|
|
41
|
+
* @see Validator#hasErrors
|
|
42
|
+
*/
|
|
43
|
+
hasErrors(value, format, message) {
|
|
44
|
+
if (value === undefined)
|
|
45
|
+
return;
|
|
46
|
+
if (typeof value === "string")
|
|
47
|
+
value = new Date(value);
|
|
48
|
+
if (isNaN(value.getDate()))
|
|
49
|
+
return this.getMessage(message || this.message);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.DateValidator = DateValidator;
|
|
53
|
+
exports.DateValidator = DateValidator = __decorate([
|
|
54
|
+
(0, decorators_1.validator)(constants_1.ValidationKeys.DATE),
|
|
55
|
+
__metadata("design:paramtypes", [String])
|
|
56
|
+
], DateValidator);
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvRGF0ZVZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsMkNBQXFFO0FBRXJFLDZDQUF5QztBQUV6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEscUJBQVM7SUFDMUMsWUFBWSxVQUFrQixrQ0FBc0IsQ0FBQyxJQUFJO1FBQ3ZELEtBQUssQ0FBQywwQkFBYyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksU0FBUyxDQUNkLEtBQW9CLEVBQ3BCLE1BQWMsRUFDZCxPQUFnQjtRQUVoQixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTztRQUVoQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkQsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGLENBQUE7QUE3Qlksc0NBQWE7d0JBQWIsYUFBYTtJQUR6QixJQUFBLHNCQUFTLEVBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUM7O0dBQ2xCLGFBQWEsQ0E2QnpCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9EYXRlVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cywgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRXJyb3JzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgRGF0ZSBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI0RBVEV9XG4gKlxuICogQGNsYXNzIERhdGVWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuREFURSlcbmV4cG9ydCBjbGFzcyBEYXRlVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5EQVRFKSB7XG4gICAgc3VwZXIoVmFsaWRhdGlvbktleXMuREFURSwgbWVzc2FnZSwgTnVtYmVyLm5hbWUsIERhdGUubmFtZSwgU3RyaW5nLm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7RGF0ZSB8IHN0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqXG4gICAqIEByZXR1cm4gRXJyb3JzXG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IERhdGUgfCBzdHJpbmcsXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgbWVzc2FnZT86IHN0cmluZyxcbiAgKTogRXJyb3JzIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICBpZiAoaXNOYU4odmFsdWUuZ2V0RGF0ZSgpKSkgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1,52 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EmailValidator = void 0;
|
|
13
|
+
const constants_1 = require("./constants/index.cjs");
|
|
14
|
+
const PatternValidator_1 = require("./PatternValidator/index.cjs");
|
|
15
|
+
const decorators_1 = require("./decorators/index.cjs");
|
|
16
|
+
/**
|
|
17
|
+
* @summary Email Validator
|
|
18
|
+
*
|
|
19
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
|
|
20
|
+
*
|
|
21
|
+
* @class EmailValidator
|
|
22
|
+
* @extends PatternValidator
|
|
23
|
+
*
|
|
24
|
+
* @category Validators
|
|
25
|
+
*/
|
|
26
|
+
let EmailValidator = class EmailValidator extends PatternValidator_1.PatternValidator {
|
|
27
|
+
constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.EMAIL) {
|
|
28
|
+
super(constants_1.ValidationKeys.EMAIL, message);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @summary Validates a model
|
|
32
|
+
*
|
|
33
|
+
* @param {string} value
|
|
34
|
+
* @param {string} [message]
|
|
35
|
+
*
|
|
36
|
+
* @return Errors
|
|
37
|
+
*
|
|
38
|
+
* @override
|
|
39
|
+
*
|
|
40
|
+
* @see Validator#hasErrors
|
|
41
|
+
*/
|
|
42
|
+
hasErrors(value, message) {
|
|
43
|
+
return super.hasErrors(value, constants_1.DEFAULT_PATTERNS.EMAIL, message);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.EmailValidator = EmailValidator;
|
|
47
|
+
exports.EmailValidator = EmailValidator = __decorate([
|
|
48
|
+
(0, decorators_1.validator)(constants_1.ValidationKeys.EMAIL),
|
|
49
|
+
__metadata("design:paramtypes", [String])
|
|
50
|
+
], EmailValidator);
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvRW1haWxWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkNBSXFCO0FBRXJCLHlEQUFzRDtBQUN0RCw2Q0FBeUM7QUFFekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBZSxTQUFRLG1DQUFnQjtJQUNsRCxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLEtBQUs7UUFDeEQsS0FBSyxDQUFDLDBCQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FBQyxLQUFhLEVBQUUsT0FBZ0I7UUFDOUMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSw0QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGLENBQUE7QUFwQlksd0NBQWM7eUJBQWQsY0FBYztJQUQxQixJQUFBLHNCQUFTLEVBQUMsMEJBQWMsQ0FBQyxLQUFLLENBQUM7O0dBQ25CLGNBQWMsQ0FvQjFCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9FbWFpbFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFZhbGlkYXRpb25LZXlzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBERUZBVUxUX1BBVFRFUk5TLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEVycm9ycyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgUGF0dGVyblZhbGlkYXRvciB9IGZyb20gXCIuL1BhdHRlcm5WYWxpZGF0b3JcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBFbWFpbCBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI0VNQUlMfVxuICpcbiAqIEBjbGFzcyBFbWFpbFZhbGlkYXRvclxuICogQGV4dGVuZHMgUGF0dGVyblZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuRU1BSUwpXG5leHBvcnQgY2xhc3MgRW1haWxWYWxpZGF0b3IgZXh0ZW5kcyBQYXR0ZXJuVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5FTUFJTCkge1xuICAgIHN1cGVyKFZhbGlkYXRpb25LZXlzLkVNQUlMLCBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKlxuICAgKiBAcmV0dXJuIEVycm9yc1xuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKHZhbHVlOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcpOiBFcnJvcnMge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcnModmFsdWUsIERFRkFVTFRfUEFUVEVSTlMuRU1BSUwsIG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -11,7 +11,6 @@ import { PatternValidator } from "./PatternValidator";
|
|
|
11
11
|
* @category Validators
|
|
12
12
|
*/
|
|
13
13
|
export declare class EmailValidator extends PatternValidator {
|
|
14
|
-
private static readonly emailPat;
|
|
15
14
|
constructor(message?: string);
|
|
16
15
|
/**
|
|
17
16
|
* @summary Validates a model
|
|
@@ -1 +1,70 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ListValidator = void 0;
|
|
13
|
+
const Validator_1 = require("./Validator/index.cjs");
|
|
14
|
+
const constants_1 = require("./constants/index.cjs");
|
|
15
|
+
const decorators_1 = require("./decorators/index.cjs");
|
|
16
|
+
/**
|
|
17
|
+
* @summary List Validator
|
|
18
|
+
*
|
|
19
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
|
|
20
|
+
*
|
|
21
|
+
* @class ListValidator
|
|
22
|
+
* @extends Validator
|
|
23
|
+
*
|
|
24
|
+
* @category Validators
|
|
25
|
+
*/
|
|
26
|
+
let ListValidator = class ListValidator extends Validator_1.Validator {
|
|
27
|
+
constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.LIST) {
|
|
28
|
+
super(constants_1.ValidationKeys.LIST, message, Array.name, Set.name);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @summary Validates a model
|
|
32
|
+
*
|
|
33
|
+
* @param {any[] | Set<any>} value
|
|
34
|
+
* @param {string} clazz
|
|
35
|
+
* @param {string} [message]
|
|
36
|
+
*
|
|
37
|
+
* @return Errors
|
|
38
|
+
*
|
|
39
|
+
* @override
|
|
40
|
+
*
|
|
41
|
+
* @see Validator#hasErrors
|
|
42
|
+
*/
|
|
43
|
+
hasErrors(value, clazz, message) {
|
|
44
|
+
if (!value || (Array.isArray(value) ? !value.length : !value.size))
|
|
45
|
+
return;
|
|
46
|
+
let val;
|
|
47
|
+
for (let i = 0; i < (Array.isArray(value) ? value.length : value.size); i++) {
|
|
48
|
+
val = value[i];
|
|
49
|
+
switch (typeof val) {
|
|
50
|
+
case "object":
|
|
51
|
+
case "function":
|
|
52
|
+
if (!val.constructor ||
|
|
53
|
+
val.constructor.name !== clazz)
|
|
54
|
+
return this.getMessage(message || this.message, clazz);
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
if (typeof val !== clazz)
|
|
58
|
+
return this.getMessage(message || this.message, clazz);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
exports.ListValidator = ListValidator;
|
|
65
|
+
exports.ListValidator = ListValidator = __decorate([
|
|
66
|
+
(0, decorators_1.validator)(constants_1.ValidationKeys.LIST),
|
|
67
|
+
__metadata("design:paramtypes", [String])
|
|
68
|
+
], ListValidator);
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTGlzdFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFFeEMsMkNBQXFFO0FBQ3JFLDZDQUF5QztBQUV6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEscUJBQVM7SUFDMUMsWUFBWSxVQUFrQixrQ0FBc0IsQ0FBQyxJQUFJO1FBQ3ZELEtBQUssQ0FBQywwQkFBYyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILFNBQVMsQ0FBQyxLQUF1QixFQUFFLEtBQWEsRUFBRSxPQUFnQjtRQUNoRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBRTNFLElBQUksR0FBRyxDQUFDO1FBQ1IsS0FDRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQ1QsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUN0RCxDQUFDLEVBQUUsRUFDSCxDQUFDO1lBQ0QsR0FBRyxHQUFJLEtBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixRQUFRLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ25CLEtBQUssUUFBUSxDQUFDO2dCQUNkLEtBQUssVUFBVTtvQkFDYixJQUNFLENBQUUsR0FBYyxDQUFDLFdBQVc7d0JBQzNCLEdBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLEtBQUs7d0JBRTFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDekQsTUFBTTtnQkFDUjtvQkFDRSxJQUFJLE9BQU8sR0FBRyxLQUFLLEtBQUs7d0JBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRixDQUFBO0FBN0NZLHNDQUFhO3dCQUFiLGFBQWE7SUFEekIsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsSUFBSSxDQUFDOztHQUNsQixhQUFhLENBNkN6QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTGlzdFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgRXJyb3JzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IExpc3QgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNMSVNUfVxuICpcbiAqIEBjbGFzcyBMaXN0VmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLkxJU1QpXG5leHBvcnQgY2xhc3MgTGlzdFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTElTVCkge1xuICAgIHN1cGVyKFZhbGlkYXRpb25LZXlzLkxJU1QsIG1lc3NhZ2UsIEFycmF5Lm5hbWUsIFNldC5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge2FueVtdIHwgU2V0PGFueT59IHZhbHVlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGF6elxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqXG4gICAqIEByZXR1cm4gRXJyb3JzXG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIGhhc0Vycm9ycyh2YWx1ZTogYW55W10gfCBTZXQ8YW55PiwgY2xheno6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZyk6IEVycm9ycyB7XG4gICAgaWYgKCF2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAhdmFsdWUubGVuZ3RoIDogIXZhbHVlLnNpemUpKSByZXR1cm47XG5cbiAgICBsZXQgdmFsO1xuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBpIDwgKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUubGVuZ3RoIDogdmFsdWUuc2l6ZSk7XG4gICAgICBpKytcbiAgICApIHtcbiAgICAgIHZhbCA9ICh2YWx1ZSBhcyBhbnkpW2ldO1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsKSB7XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgISh2YWwgYXMgb2JqZWN0KS5jb25zdHJ1Y3RvciB8fFxuICAgICAgICAgICAgKHZhbCBhcyBvYmplY3QpLmNvbnN0cnVjdG9yLm5hbWUgIT09IGNsYXp6XG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgY2xhenopO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsICE9PSBjbGF6eilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIGNsYXp6KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1,58 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MaxLengthValidator = void 0;
|
|
13
|
+
const Validator_1 = require("./Validator/index.cjs");
|
|
14
|
+
const constants_1 = require("./constants/index.cjs");
|
|
15
|
+
const decorators_1 = require("./decorators/index.cjs");
|
|
16
|
+
/**
|
|
17
|
+
* @summary Maximum Length Validator
|
|
18
|
+
* @description Validates strings and Arrays on their maximum length
|
|
19
|
+
*
|
|
20
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX_LENGTH}
|
|
21
|
+
*
|
|
22
|
+
* @class MinLengthValidator
|
|
23
|
+
* @extends Validator
|
|
24
|
+
*
|
|
25
|
+
* @category Validators
|
|
26
|
+
*/
|
|
27
|
+
let MaxLengthValidator = class MaxLengthValidator extends Validator_1.Validator {
|
|
28
|
+
constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.MAX_LENGTH) {
|
|
29
|
+
super(constants_1.ValidationKeys.MAX_LENGTH, message, String.name, Array.name);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @summary Validates a model
|
|
33
|
+
*
|
|
34
|
+
* @param {string} value
|
|
35
|
+
* @param {number} maxlength
|
|
36
|
+
* @param {string} [message]
|
|
37
|
+
*
|
|
38
|
+
* @return Errors
|
|
39
|
+
*
|
|
40
|
+
* @override
|
|
41
|
+
*
|
|
42
|
+
* @see Validator#hasErrors
|
|
43
|
+
*/
|
|
44
|
+
hasErrors(value, maxlength, message) {
|
|
45
|
+
if (value === undefined)
|
|
46
|
+
return;
|
|
47
|
+
return value.length > maxlength
|
|
48
|
+
? this.getMessage(message || this.message, maxlength)
|
|
49
|
+
: undefined;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.MaxLengthValidator = MaxLengthValidator;
|
|
53
|
+
exports.MaxLengthValidator = MaxLengthValidator = __decorate([
|
|
54
|
+
(0, decorators_1.validator)(constants_1.ValidationKeys.MAX_LENGTH),
|
|
55
|
+
__metadata("design:paramtypes", [String])
|
|
56
|
+
], MaxLengthValidator);
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4TGVuZ3RoVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLDJDQUF3QztBQUN4QywyQ0FBcUU7QUFDckUsNkNBQXlDO0FBRXpDOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLHFCQUFTO0lBQy9DLFlBQVksVUFBa0Isa0NBQXNCLENBQUMsVUFBVTtRQUM3RCxLQUFLLENBQUMsMEJBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxTQUFTLENBQ2QsS0FBcUIsRUFDckIsU0FBaUIsRUFDakIsT0FBZ0I7UUFFaEIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLE9BQU87UUFDaEMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVM7WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7QUE1QlksZ0RBQWtCOzZCQUFsQixrQkFBa0I7SUFEOUIsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsVUFBVSxDQUFDOztHQUN4QixrQkFBa0IsQ0E0QjlCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9NYXhMZW5ndGhWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvcnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMsIERFRkFVTFRfRVJST1JfTUVTU0FHRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNYXhpbXVtIExlbmd0aCBWYWxpZGF0b3JcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0ZXMgc3RyaW5ncyBhbmQgQXJyYXlzIG9uIHRoZWlyIG1heGltdW0gbGVuZ3RoXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNNQVhfTEVOR1RIfVxuICpcbiAqIEBjbGFzcyBNaW5MZW5ndGhWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSClcbmV4cG9ydCBjbGFzcyBNYXhMZW5ndGhWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLk1BWF9MRU5HVEgpIHtcbiAgICBzdXBlcihWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RILCBtZXNzYWdlLCBTdHJpbmcubmFtZSwgQXJyYXkubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXhsZW5ndGhcbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKlxuICAgKiBAcmV0dXJuIEVycm9yc1xuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcgfCBhbnlbXSxcbiAgICBtYXhsZW5ndGg6IG51bWJlcixcbiAgICBtZXNzYWdlPzogc3RyaW5nLFxuICApOiBFcnJvcnMge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IG1heGxlbmd0aFxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2UobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIG1heGxlbmd0aClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1,62 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MaxValidator = void 0;
|
|
13
|
+
const Validator_1 = require("./Validator/index.cjs");
|
|
14
|
+
const constants_1 = require("./constants/index.cjs");
|
|
15
|
+
const decorators_1 = require("./decorators/index.cjs");
|
|
16
|
+
/**
|
|
17
|
+
* @summary Max Validator
|
|
18
|
+
*
|
|
19
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
|
|
20
|
+
*
|
|
21
|
+
* @class MaxValidator
|
|
22
|
+
* @extends Validator
|
|
23
|
+
*
|
|
24
|
+
* @category Validators
|
|
25
|
+
*/
|
|
26
|
+
let MaxValidator = class MaxValidator extends Validator_1.Validator {
|
|
27
|
+
constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.MAX) {
|
|
28
|
+
super(constants_1.ValidationKeys.MAX, message, "number", "Date", "string");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @summary Validates a Model
|
|
32
|
+
*
|
|
33
|
+
* @param {string} value
|
|
34
|
+
* @param {number | Date | string} max
|
|
35
|
+
* @param {string} [message]
|
|
36
|
+
*
|
|
37
|
+
* @return Errors
|
|
38
|
+
*
|
|
39
|
+
* @override
|
|
40
|
+
*
|
|
41
|
+
* @see Validator#hasErrors
|
|
42
|
+
*/
|
|
43
|
+
hasErrors(value, max, message) {
|
|
44
|
+
if (value === undefined)
|
|
45
|
+
return;
|
|
46
|
+
if (value instanceof Date && !(max instanceof Date)) {
|
|
47
|
+
max = new Date(max);
|
|
48
|
+
if (isNaN(max.getDate()))
|
|
49
|
+
throw new Error(`Invalid Max param defined`);
|
|
50
|
+
}
|
|
51
|
+
return value > max
|
|
52
|
+
? this.getMessage(message || this.message, max)
|
|
53
|
+
: undefined;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.MaxValidator = MaxValidator;
|
|
57
|
+
exports.MaxValidator = MaxValidator = __decorate([
|
|
58
|
+
(0, decorators_1.validator)(constants_1.ValidationKeys.MAX),
|
|
59
|
+
__metadata("design:paramtypes", [String])
|
|
60
|
+
], MaxValidator);
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4VmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QztBQUN4QywyQ0FBcUU7QUFFckUsNkNBQXlDO0FBRXpDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxxQkFBUztJQUN6QyxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLEdBQUc7UUFDdEQsS0FBSyxDQUFDLDBCQUFjLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxTQUFTLENBQ2QsS0FBNkIsRUFDN0IsR0FBMkIsRUFDM0IsT0FBZ0I7UUFFaEIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLE9BQU87UUFFaEMsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsT0FBTyxLQUFLLEdBQUcsR0FBRztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQWxDWSxvQ0FBWTt1QkFBWixZQUFZO0lBRHhCLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLEdBQUcsQ0FBQzs7R0FDakIsWUFBWSxDQWtDeEIiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL01heFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMsIERFRkFVTFRfRVJST1JfTUVTU0FHRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEVycm9ycyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1heCBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI01BWH1cbiAqXG4gKiBAY2xhc3MgTWF4VmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLk1BWClcbmV4cG9ydCBjbGFzcyBNYXhWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLk1BWCkge1xuICAgIHN1cGVyKFZhbGlkYXRpb25LZXlzLk1BWCwgbWVzc2FnZSwgXCJudW1iZXJcIiwgXCJEYXRlXCIsIFwic3RyaW5nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIE1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge251bWJlciB8IERhdGUgfCBzdHJpbmd9IG1heFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqXG4gICAqIEByZXR1cm4gRXJyb3JzXG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IG51bWJlciB8IERhdGUgfCBzdHJpbmcsXG4gICAgbWF4OiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLFxuICAgIG1lc3NhZ2U/OiBzdHJpbmcsXG4gICk6IEVycm9ycyB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIShtYXggaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgbWF4ID0gbmV3IERhdGUobWF4KTtcbiAgICAgIGlmIChpc05hTihtYXguZ2V0RGF0ZSgpKSkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIE1heCBwYXJhbSBkZWZpbmVkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlID4gbWF4XG4gICAgICA/IHRoaXMuZ2V0TWVzc2FnZShtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgbWF4KVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1,58 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MinLengthValidator = void 0;
|
|
13
|
+
const Validator_1 = require("./Validator/index.cjs");
|
|
14
|
+
const constants_1 = require("./constants/index.cjs");
|
|
15
|
+
const decorators_1 = require("./decorators/index.cjs");
|
|
16
|
+
/**
|
|
17
|
+
* @summary Minimum Length Validator
|
|
18
|
+
* @description Validates strings and Arrays on their minimum length
|
|
19
|
+
*
|
|
20
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN_LENGTH}
|
|
21
|
+
*
|
|
22
|
+
* @class MinLengthValidator
|
|
23
|
+
* @extends Validator
|
|
24
|
+
*
|
|
25
|
+
* @category Validators
|
|
26
|
+
*/
|
|
27
|
+
let MinLengthValidator = class MinLengthValidator extends Validator_1.Validator {
|
|
28
|
+
constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.MIN_LENGTH) {
|
|
29
|
+
super(constants_1.ValidationKeys.MIN_LENGTH, message, String.name, Array.name);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param {string | Array} value
|
|
34
|
+
* @param {number} minlength
|
|
35
|
+
* @param {string} [message]
|
|
36
|
+
*
|
|
37
|
+
* @return Errors
|
|
38
|
+
*
|
|
39
|
+
* @memberOf MinLengthValidator
|
|
40
|
+
* @override
|
|
41
|
+
*
|
|
42
|
+
* @see Validator#hasErrors
|
|
43
|
+
*/
|
|
44
|
+
hasErrors(value, minlength, message) {
|
|
45
|
+
if (value === undefined)
|
|
46
|
+
return;
|
|
47
|
+
return value.length < minlength
|
|
48
|
+
? this.getMessage(message || this.message, minlength)
|
|
49
|
+
: undefined;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.MinLengthValidator = MinLengthValidator;
|
|
53
|
+
exports.MinLengthValidator = MinLengthValidator = __decorate([
|
|
54
|
+
(0, decorators_1.validator)(constants_1.ValidationKeys.MIN_LENGTH),
|
|
55
|
+
__metadata("design:paramtypes", [String])
|
|
56
|
+
], MinLengthValidator);
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluTGVuZ3RoVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QztBQUN4QywyQ0FBcUU7QUFFckUsNkNBQXlDO0FBRXpDOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLHFCQUFTO0lBQy9DLFlBQVksVUFBa0Isa0NBQXNCLENBQUMsVUFBVTtRQUM3RCxLQUFLLENBQUMsMEJBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxTQUFTLENBQ2QsS0FBcUIsRUFDckIsU0FBaUIsRUFDakIsT0FBZ0I7UUFFaEIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLE9BQU87UUFDaEMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVM7WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7QUE1QlksZ0RBQWtCOzZCQUFsQixrQkFBa0I7SUFEOUIsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsVUFBVSxDQUFDOztHQUN4QixrQkFBa0IsQ0E0QjlCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9NaW5MZW5ndGhWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzLCBERUZBVUxUX0VSUk9SX01FU1NBR0VTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBFcnJvcnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNaW5pbXVtIExlbmd0aCBWYWxpZGF0b3JcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0ZXMgc3RyaW5ncyBhbmQgQXJyYXlzIG9uIHRoZWlyIG1pbmltdW0gbGVuZ3RoXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNNSU5fTEVOR1RIfVxuICpcbiAqIEBjbGFzcyBNaW5MZW5ndGhWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSClcbmV4cG9ydCBjbGFzcyBNaW5MZW5ndGhWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLk1JTl9MRU5HVEgpIHtcbiAgICBzdXBlcihWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RILCBtZXNzYWdlLCBTdHJpbmcubmFtZSwgQXJyYXkubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBBcnJheX0gdmFsdWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1pbmxlbmd0aFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqXG4gICAqIEByZXR1cm4gRXJyb3JzXG4gICAqXG4gICAqIEBtZW1iZXJPZiBNaW5MZW5ndGhWYWxpZGF0b3JcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogc3RyaW5nIHwgYW55W10sXG4gICAgbWlubGVuZ3RoOiBudW1iZXIsXG4gICAgbWVzc2FnZT86IHN0cmluZyxcbiAgKTogRXJyb3JzIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPCBtaW5sZW5ndGhcbiAgICAgID8gdGhpcy5nZXRNZXNzYWdlKG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLCBtaW5sZW5ndGgpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|