@decaf-ts/decorator-validation 1.7.12 → 1.7.14
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 +272 -107
- package/dist/decorator-validation.esm.cjs +272 -108
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/model/Model.js +31 -7
- package/lib/esm/model/decorators.d.ts +2 -12
- package/lib/esm/model/decorators.js +57 -37
- package/lib/esm/model/validation.d.ts +2 -2
- package/lib/esm/model/validation.js +51 -19
- package/lib/esm/utils/Decoration.d.ts +15 -3
- package/lib/esm/utils/Decoration.js +49 -12
- package/lib/esm/utils/decorators.d.ts +1 -1
- package/lib/esm/utils/decorators.js +13 -4
- package/lib/esm/utils/types.d.ts +3 -2
- package/lib/esm/utils/types.js +1 -1
- package/lib/esm/validation/Validators/ListValidator.js +8 -4
- package/lib/esm/validation/Validators/TypeValidator.js +12 -8
- package/lib/esm/validation/decorators.d.ts +4 -4
- package/lib/esm/validation/decorators.js +58 -22
- package/lib/esm/validation/types.d.ts +2 -1
- package/lib/esm/validation/types.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/model/Model.cjs +31 -7
- package/lib/model/decorators.cjs +58 -37
- package/lib/model/decorators.d.ts +2 -12
- package/lib/model/validation.cjs +51 -19
- package/lib/model/validation.d.ts +2 -2
- package/lib/utils/Decoration.cjs +49 -12
- package/lib/utils/Decoration.d.ts +15 -3
- package/lib/utils/decorators.cjs +13 -4
- package/lib/utils/decorators.d.ts +1 -1
- package/lib/utils/types.cjs +1 -1
- package/lib/utils/types.d.ts +3 -2
- package/lib/validation/Validators/ListValidator.cjs +8 -4
- package/lib/validation/Validators/TypeValidator.cjs +12 -8
- package/lib/validation/decorators.cjs +58 -22
- package/lib/validation/decorators.d.ts +4 -4
- package/lib/validation/types.cjs +1 -1
- package/lib/validation/types.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { apply, metadata } from "@decaf-ts/reflection";
|
|
2
2
|
import { ModelKeys } from "./constants.js";
|
|
3
|
+
import { Decoration } from "./Decoration.js";
|
|
3
4
|
/**
|
|
4
5
|
* @description Property decorator factory for model attributes
|
|
5
6
|
* @summary Creates a decorator that marks class properties as model attributes
|
|
@@ -26,17 +27,25 @@ import { ModelKeys } from "./constants.js";
|
|
|
26
27
|
* end
|
|
27
28
|
*/
|
|
28
29
|
export function prop(key = ModelKeys.ATTRIBUTE) {
|
|
29
|
-
return (
|
|
30
|
+
return Decoration.for(key)
|
|
31
|
+
.define(function prop(model, propertyKey) {
|
|
30
32
|
let props;
|
|
31
33
|
if (Object.prototype.hasOwnProperty.call(model, key)) {
|
|
32
34
|
props = model[key];
|
|
33
35
|
}
|
|
34
36
|
else {
|
|
35
|
-
|
|
37
|
+
Object.defineProperty(model, key, {
|
|
38
|
+
enumerable: false,
|
|
39
|
+
configurable: false,
|
|
40
|
+
writable: false,
|
|
41
|
+
value: [],
|
|
42
|
+
});
|
|
43
|
+
props = model[key];
|
|
36
44
|
}
|
|
37
45
|
if (!props.includes(propertyKey))
|
|
38
46
|
props.push(propertyKey);
|
|
39
|
-
}
|
|
47
|
+
})
|
|
48
|
+
.apply();
|
|
40
49
|
}
|
|
41
50
|
/**
|
|
42
51
|
* @description Combined property decorator factory for metadata and attribute marking
|
|
@@ -52,4 +61,4 @@ export function prop(key = ModelKeys.ATTRIBUTE) {
|
|
|
52
61
|
export function propMetadata(key, value) {
|
|
53
62
|
return apply(prop(), metadata(key, value));
|
|
54
63
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBb0I7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSx3QkFBcUI7QUFHMUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUMsTUFBYyxTQUFTLENBQUMsU0FBUztJQUNwRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1NBQ3ZCLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFhLEVBQUUsV0FBaUI7UUFDcEQsSUFBSSxLQUFlLENBQUM7UUFDcEIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckQsS0FBSyxHQUFJLEtBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDaEMsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixRQUFRLEVBQUUsS0FBSztnQkFDZixLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQztZQUNILEtBQUssR0FBSSxLQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQXFCLENBQUM7WUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFxQixDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxFQUFFLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUksR0FBVyxFQUFFLEtBQVE7SUFDbkQsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsUUFBUSxDQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcHBseSwgbWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRGVjb3JhdGlvbiB9IGZyb20gXCIuL0RlY29yYXRpb25cIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFByb3BlcnR5IGRlY29yYXRvciBmYWN0b3J5IGZvciBtb2RlbCBhdHRyaWJ1dGVzXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgbWFya3MgY2xhc3MgcHJvcGVydGllcyBhcyBtb2RlbCBhdHRyaWJ1dGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtrZXk9TW9kZWxLZXlzLkFUVFJJQlVURV0gLSBUaGUgbWV0YWRhdGEga2V5IHVuZGVyIHdoaWNoIHRvIHN0b3JlIHRoZSBwcm9wZXJ0eSBuYW1lXG4gKiBAcmV0dXJuIHtmdW5jdGlvbihvYmplY3QsIGFueT8pOiB2b2lkfSAtIERlY29yYXRvciBmdW5jdGlvbiB0aGF0IHJlZ2lzdGVycyB0aGUgcHJvcGVydHlcbiAqIEBmdW5jdGlvbiBwcm9wXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgIHBhcnRpY2lwYW50IEQgYXMgRGVjb3JhdG9yXG4gKiAgICBwYXJ0aWNpcGFudCBNIGFzIE1vZGVsXG4gKlxuICogICAgRC0+Pk06IENoZWNrIGlmIGtleSBleGlzdHNcbiAqICAgIGFsdCBrZXkgZXhpc3RzXG4gKiAgICAgICAgTS0tPj5EOiBSZXR1cm4gZXhpc3RpbmcgcHJvcHMgYXJyYXlcbiAqICAgIGVsc2Uga2V5IGRvZXNuJ3QgZXhpc3RcbiAqICAgICAgICBELT4+TTogQ3JlYXRlIG5ldyBwcm9wcyBhcnJheVxuICogICAgZW5kXG4gKiAgICBELT4+TTogQ2hlY2sgaWYgcHJvcGVydHkgZXhpc3RzXG4gKiAgICBhbHQgcHJvcGVydHkgbm90IGluIGFycmF5XG4gKiAgICAgICAgRC0+Pk06IEFkZCBwcm9wZXJ0eSB0byBhcnJheVxuICogICAgZW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wKGtleTogc3RyaW5nID0gTW9kZWxLZXlzLkFUVFJJQlVURSkge1xuICByZXR1cm4gRGVjb3JhdGlvbi5mb3Ioa2V5KVxuICAgIC5kZWZpbmUoZnVuY3Rpb24gcHJvcChtb2RlbDogb2JqZWN0LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgICAgbGV0IHByb3BzOiBzdHJpbmdbXTtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kZWwsIGtleSkpIHtcbiAgICAgICAgcHJvcHMgPSAobW9kZWwgYXMgYW55KVtrZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZGVsLCBrZXksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogW10sXG4gICAgICAgIH0pO1xuICAgICAgICBwcm9wcyA9IChtb2RlbCBhcyBhbnkpW2tleV07XG4gICAgICB9XG4gICAgICBpZiAoIXByb3BzLmluY2x1ZGVzKHByb3BlcnR5S2V5IGFzIHN0cmluZykpXG4gICAgICAgIHByb3BzLnB1c2gocHJvcGVydHlLZXkgYXMgc3RyaW5nKTtcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21iaW5lZCBwcm9wZXJ0eSBkZWNvcmF0b3IgZmFjdG9yeSBmb3IgbWV0YWRhdGEgYW5kIGF0dHJpYnV0ZSBtYXJraW5nXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgYm90aCBtYXJrcyBhIHByb3BlcnR5IGFzIGEgbW9kZWwgYXR0cmlidXRlIGFuZCBhc3NpZ25zIG1ldGFkYXRhIHRvIGl0XG4gKlxuICogQHRlbXBsYXRlIFZcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgbWV0YWRhdGEga2V5XG4gKiBAcGFyYW0ge1Z9IHZhbHVlIC0gVGhlIG1ldGFkYXRhIHZhbHVlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9wZXJ0eVxuICogQHJldHVybiB7RnVuY3Rpb259IC0gQ29tYmluZWQgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKiBAZnVuY3Rpb24gcHJvcE1ldGFkYXRhXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcE1ldGFkYXRhPFY+KGtleTogc3RyaW5nLCB2YWx1ZTogVikge1xuICByZXR1cm4gYXBwbHkocHJvcCgpLCBtZXRhZGF0YTxWPihrZXksIHZhbHVlKSk7XG59XG4iXX0=
|
package/lib/esm/utils/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Model } from "../model";
|
|
2
|
+
import { DecoratorData } from "./Decoration";
|
|
2
3
|
/**
|
|
3
4
|
* @description Interface for the final stage of the decoration builder pattern
|
|
4
5
|
* @summary Represents the build stage of the decoration builder, providing the ability to apply
|
|
@@ -36,7 +37,7 @@ export interface DecorationBuilderEnd {
|
|
|
36
37
|
* @param {...(ClassDecorator|PropertyDecorator|MethodDecorator)} decorators - Additional decorators to add
|
|
37
38
|
* @returns {DecorationBuilderBuild} The build stage of the builder pattern
|
|
38
39
|
*/
|
|
39
|
-
extend(...decorators:
|
|
40
|
+
extend(...decorators: DecoratorData[]): DecorationBuilderBuild;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* @description Interface for the middle stage of the decoration builder pattern
|
|
@@ -53,7 +54,7 @@ export interface DecorationBuilderMid extends DecorationBuilderEnd {
|
|
|
53
54
|
* @summary Sets the main decorators for the current context. This is typically
|
|
54
55
|
* called after specifying the key with the 'for' method.
|
|
55
56
|
*/
|
|
56
|
-
define(...decorators:
|
|
57
|
+
define(...decorators: DecoratorData[]): DecorationBuilderEnd & DecorationBuilderBuild;
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
59
60
|
* @description Interface for the starting stage of the decoration builder pattern
|
package/lib/esm/utils/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsXCI7XG5pbXBvcnQgeyBEZWNvcmF0b3JEYXRhIH0gZnJvbSBcIi4vRGVjb3JhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHRoZSBmaW5hbCBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyIHBhdHRlcm5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgdGhlIGJ1aWxkIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIsIHByb3ZpZGluZyB0aGUgYWJpbGl0eSB0byBhcHBseVxuICogdGhlIGNvbmZpZ3VyZWQgZGVjb3JhdG9yIHRvIGEgdGFyZ2V0LiBUaGlzIGlzIHRoZSBmaW5hbCBzdGFnZSBpbiB0aGUgYnVpbGRlciBjaGFpbi5cbiAqXG4gKiBAaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyQnVpbGRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBNb2RlbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyQnVpbGQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW5kIHJldHVybnMgdGhlIGRlY29yYXRvciBmdW5jdGlvblxuICAgKiBAc3VtbWFyeSBGaW5hbGl6ZXMgdGhlIGJ1aWxkZXIgcHJvY2VzcyBhbmQgcmV0dXJucyBhIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIGEgY2xhc3MsXG4gICAqIHByb3BlcnR5LCBvciBtZXRob2QuXG4gICAqXG4gICAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBkZWNvcmF0b3IgZnVuY3Rpb24gdGhhdCBjYW4gYmUgYXBwbGllZCB0byBhIHRhcmdldFxuICAgKi9cbiAgYXBwbHkoKTogKFxuICAgIHRhcmdldDogYW55LFxuICAgIHByb3BlcnR5S2V5PzogYW55LFxuICAgIGRlc2NyaXB0b3I/OiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+XG4gICkgPT4gYW55O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHRoZSBleHRlbnNpb24gc3RhZ2Ugb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciBwYXR0ZXJuXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIHRoZSBleHRlbnNpb24gc3RhZ2Ugb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciwgcHJvdmlkaW5nIHRoZSBhYmlsaXR5IHRvIGFkZFxuICogYWRkaXRpb25hbCBkZWNvcmF0b3JzIHRvIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9uLlxuICpcbiAqIEBpbnRlcmZhY2UgRGVjb3JhdGlvbkJ1aWxkZXJFbmRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBNb2RlbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyRW5kIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBZGRzIGFkZGl0aW9uYWwgZGVjb3JhdG9ycyB0byB0aGUgZXhpc3RpbmcgY29uZmlndXJhdGlvblxuICAgKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBjdXJyZW50IGRlY29yYXRvciBjb25maWd1cmF0aW9uIHdpdGggYWRkaXRpb25hbCBkZWNvcmF0b3JzLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgYWRkaW5nIGJlaGF2aW9yIHRvIGV4aXN0aW5nIGRlY29yYXRvcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7Li4uKENsYXNzRGVjb3JhdG9yfFByb3BlcnR5RGVjb3JhdG9yfE1ldGhvZERlY29yYXRvcil9IGRlY29yYXRvcnMgLSBBZGRpdGlvbmFsIGRlY29yYXRvcnMgdG8gYWRkXG4gICAqIEByZXR1cm5zIHtEZWNvcmF0aW9uQnVpbGRlckJ1aWxkfSBUaGUgYnVpbGQgc3RhZ2Ugb2YgdGhlIGJ1aWxkZXIgcGF0dGVyblxuICAgKi9cbiAgZXh0ZW5kKC4uLmRlY29yYXRvcnM6IERlY29yYXRvckRhdGFbXSk6IERlY29yYXRpb25CdWlsZGVyQnVpbGQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIG1pZGRsZSBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyIHBhdHRlcm5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgdGhlIG1pZGRsZSBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyLCBleHRlbmRpbmcgdGhlIGVuZCBzdGFnZVxuICogYW5kIHByb3ZpZGluZyB0aGUgYWJpbGl0eSB0byBkZWZpbmUgdGhlIHByaW1hcnkgZGVjb3JhdG9ycyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQGludGVyZmFjZSBEZWNvcmF0aW9uQnVpbGRlck1pZFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IE1vZGVsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjb3JhdGlvbkJ1aWxkZXJNaWQgZXh0ZW5kcyBEZWNvcmF0aW9uQnVpbGRlckVuZCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgcHJpbWFyeSBkZWNvcmF0b3JzIGZvciB0aGUgY29uZmlndXJhdGlvblxuICAgKiBAc3VtbWFyeSBTZXRzIHRoZSBtYWluIGRlY29yYXRvcnMgZm9yIHRoZSBjdXJyZW50IGNvbnRleHQuIFRoaXMgaXMgdHlwaWNhbGx5XG4gICAqIGNhbGxlZCBhZnRlciBzcGVjaWZ5aW5nIHRoZSBrZXkgd2l0aCB0aGUgJ2ZvcicgbWV0aG9kLlxuICAgKi9cbiAgZGVmaW5lKFxuICAgIC4uLmRlY29yYXRvcnM6IERlY29yYXRvckRhdGFbXVxuICApOiBEZWNvcmF0aW9uQnVpbGRlckVuZCAmIERlY29yYXRpb25CdWlsZGVyQnVpbGQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIHN0YXJ0aW5nIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIgcGF0dGVyblxuICogQHN1bW1hcnkgUmVwcmVzZW50cyB0aGUgaW5pdGlhbCBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyLCBwcm92aWRpbmcgdGhlIGVudHJ5IHBvaW50XG4gKiBmb3IgdGhlIGJ1aWxkZXIgcGF0dGVybiBieSBzcGVjaWZ5aW5nIHRoZSBrZXkgZm9yIHRoZSBkZWNvcmF0b3IuXG4gKlxuICogQGludGVyZmFjZSBEZWNvcmF0aW9uQnVpbGRlclN0YXJ0XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgTW9kZWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNvcmF0aW9uQnVpbGRlclN0YXJ0IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgdGhlIGtleSBmb3IgdGhlIGRlY29yYXRvclxuICAgKiBAc3VtbWFyeSBTZXRzIHRoZSBpZGVudGlmaWVyIGZvciB0aGUgZGVjb3JhdG9yLCB3aGljaCBpcyB1c2VkIHRvIHJlZ2lzdGVyIGFuZCByZXRyaWV2ZVxuICAgKiB0aGUgZGVjb3JhdG9yIGluIHRoZSBkZWNvcmF0aW9uIHJlZ2lzdHJ5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgLSBUaGUgaWRlbnRpZmllciBmb3IgdGhlIGRlY29yYXRvclxuICAgKiBAcmV0dXJuIHtEZWNvcmF0aW9uQnVpbGRlck1pZH0gVGhlIG1pZGRsZSBzdGFnZSBvZiB0aGUgYnVpbGRlciBwYXR0ZXJuXG4gICAqL1xuICBmb3IoaWQ6IHN0cmluZyk6IERlY29yYXRpb25CdWlsZGVyTWlkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wcmVoZW5zaXZlIGludGVyZmFjZSBmb3IgdGhlIGNvbXBsZXRlIGRlY29yYXRpb24gYnVpbGRlciBwYXR0ZXJuXG4gKiBAc3VtbWFyeSBBIHVuaWZpZWQgaW50ZXJmYWNlIHRoYXQgY29tYmluZXMgYWxsIHN0YWdlcyBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyIHBhdHRlcm4sXG4gKiBwcm92aWRpbmcgYSBjb21wbGV0ZSBBUEkgZm9yIGNyZWF0aW5nLCBjb25maWd1cmluZywgYW5kIGFwcGx5aW5nIGRlY29yYXRvcnMuXG4gKiBUaGlzIGludGVyZmFjZSBpcyBpbXBsZW1lbnRlZCBieSB0aGUgRGVjb3JhdGlvbiBjbGFzcy5cbiAqXG4gKiBAaW50ZXJmYWNlIElEZWNvcmF0aW9uQnVpbGRlclxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IE1vZGVsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURlY29yYXRpb25CdWlsZGVyXG4gIGV4dGVuZHMgRGVjb3JhdGlvbkJ1aWxkZXJTdGFydCxcbiAgICBEZWNvcmF0aW9uQnVpbGRlck1pZCxcbiAgICBEZWNvcmF0aW9uQnVpbGRlckVuZCxcbiAgICBEZWNvcmF0aW9uQnVpbGRlckJ1aWxkIHt9XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGUgZGVmaW5pdGlvbiBmb3IgYSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRoZSBmbGF2b3VyIGZvciBhIHRhcmdldFxuICogQHN1bW1hcnkgRGVmaW5lcyBhIGZ1bmN0aW9uIHR5cGUgdGhhdCBkZXRlcm1pbmVzIHRoZSBhcHByb3ByaWF0ZSBmbGF2b3VyIGZvciBhIGdpdmVuIHRhcmdldCBvYmplY3QuXG4gKiBUaGlzIGlzIHVzZWQgYnkgdGhlIERlY29yYXRpb24gY2xhc3MgdG8gcmVzb2x2ZSB3aGljaCBmbGF2b3VyIG9mIGRlY29yYXRvciB0byBhcHBseSBiYXNlZCBvbiB0aGUgdGFyZ2V0LlxuICpcbiAqIEB0eXBlZGVmIHtmdW5jdGlvbihvYmplY3QpOiBzdHJpbmd9IEZsYXZvdXJSZXNvbHZlclxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdCB0byByZXNvbHZlIHRoZSBmbGF2b3VyIGZvclxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgcmVzb2x2ZWQgZmxhdm91ciBpZGVudGlmaWVyXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgTW9kZWxcbiAqL1xuZXhwb3J0IHR5cGUgRmxhdm91clJlc29sdmVyID0gKHRhcmdldDogb2JqZWN0KSA9PiBzdHJpbmc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3Igc2VyaWFsaXppbmcgYW5kIGRlc2VyaWFsaXppbmcgbW9kZWwgb2JqZWN0c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgY29udHJhY3QgZm9yIGNsYXNzZXMgdGhhdCBjYW4gY29udmVydCBtb2RlbCBvYmplY3RzIHRvIGFuZCBmcm9tIHN0cmluZyByZXByZXNlbnRhdGlvbnMuXG4gKiBTZXJpYWxpemVycyBhcmUgdXNlZCB0byBwZXJzaXN0IG1vZGVscyBvciB0cmFuc21pdCB0aGVtIG92ZXIgbmV0d29ya3MuXG4gKlxuICogQGludGVyZmFjZSBTZXJpYWxpemVyXG4gKiBAdGVtcGxhdGUgVCBUeXBlIG9mIG1vZGVsIHRoYXQgY2FuIGJlIHNlcmlhbGl6ZWQsIG11c3QgZXh0ZW5kIE1vZGVsXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgTW9kZWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVyPE0gZXh0ZW5kcyBNb2RlbD4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnZlcnRzIGEgbW9kZWwgb2JqZWN0IHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uXG4gICAqIEBzdW1tYXJ5IFNlcmlhbGl6ZXMgYSBtb2RlbCBpbnN0YW5jZSBpbnRvIGEgc3RyaW5nIGZvcm1hdCB0aGF0IGNhbiBiZSBzdG9yZWQgb3IgdHJhbnNtaXR0ZWQuXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgdGhlIHNlcmlhbGl6YXRpb24gcHJvY2Vzcy5cbiAgICpcbiAgICogQHBhcmFtIHtUfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZSB0byBzZXJpYWxpemVcbiAgICogQHBhcmFtIHsuLi5hbnl9IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyBmb3IgdGhlIHNlcmlhbGl6YXRpb24gcHJvY2Vzc1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbFxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIG1vZGVsIGNhbm5vdCBiZSBzZXJpYWxpemVkXG4gICAqL1xuICBzZXJpYWxpemUobW9kZWw6IE0sIC4uLmFyZ3M6IGFueVtdKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVjb25zdHJ1Y3RzIGEgbW9kZWwgb2JqZWN0IGZyb20gaXRzIHN0cmluZyByZXByZXNlbnRhdGlvblxuICAgKiBAc3VtbWFyeSBEZXNlcmlhbGl6ZXMgYSBzdHJpbmcgYmFjayBpbnRvIGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgdGhlIGRlc2VyaWFsaXphdGlvbiBwcm9jZXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gVGhlIHNlcmlhbGl6ZWQgc3RyaW5nIHRvIGNvbnZlcnQgYmFjayB0byBhIG1vZGVsXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgZm9yIHRoZSBkZXNlcmlhbGl6YXRpb24gcHJvY2Vzc1xuICAgKiBAcmV0dXJuIHtUfSBUaGUgcmVjb25zdHJ1Y3RlZCBtb2RlbCBpbnN0YW5jZVxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHN0cmluZyBjYW5ub3QgYmUgZGVzZXJpYWxpemVkIGludG8gYSB2YWxpZCBtb2RlbFxuICAgKi9cbiAgZGVzZXJpYWxpemUoc3RyOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogTTtcbn1cbiJdfQ==
|
|
@@ -77,9 +77,13 @@ let ListValidator = class ListValidator extends Validator {
|
|
|
77
77
|
hasErrors(value, options) {
|
|
78
78
|
if (!value || (Array.isArray(value) ? !value.length : !value.size))
|
|
79
79
|
return;
|
|
80
|
-
const clazz = Array.isArray(options.clazz)
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
const clazz = (Array.isArray(options.clazz) ? options.clazz : [options.clazz]).map((c) => {
|
|
81
|
+
if (typeof c === "string")
|
|
82
|
+
return c;
|
|
83
|
+
if (!c.name)
|
|
84
|
+
return c().name;
|
|
85
|
+
return c.name;
|
|
86
|
+
});
|
|
83
87
|
let val, isValid = true;
|
|
84
88
|
for (let i = 0; i < (Array.isArray(value) ? value.length : value.size); i++) {
|
|
85
89
|
val = value[i];
|
|
@@ -103,4 +107,4 @@ ListValidator = __decorate([
|
|
|
103
107
|
__metadata("design:paramtypes", [String])
|
|
104
108
|
], ListValidator);
|
|
105
109
|
export { ListValidator };
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTGlzdFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUFvQjtBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLHVCQUFvQjtBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUFxQjtBQUl6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsU0FBK0I7SUFDaEUsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxJQUFJO1FBQ3ZELEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsU0FBUyxDQUNQLEtBQXVCLEVBQ3ZCLE9BQTZCO1FBRTdCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFFM0UsTUFBTSxLQUFLLEdBQUcsQ0FDWixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQy9ELENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUFFLE9BQVEsQ0FBNEIsRUFBRSxDQUFDLElBQUksQ0FBQztZQUN6RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLEdBQVEsRUFDVixPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLEtBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNULENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDdEQsQ0FBQyxFQUFFLEVBQ0gsQ0FBQztZQUNELEdBQUcsR0FBSSxLQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsUUFBUSxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixLQUFLLFFBQVEsQ0FBQztnQkFDZCxLQUFLLFVBQVU7b0JBQ2IsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsb0JBQW9CO29CQUN6RixNQUFNO2dCQUNSO29CQUNFLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDcEUsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPO1lBQ1osQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGLENBQUE7QUF4RFksYUFBYTtJQUR6QixTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzs7R0FDbEIsYUFBYSxDQXdEekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBMaXN0VmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiLi4vLi4vbW9kZWxcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVmFsaWRhdG9yIGZvciBjaGVja2luZyBpZiBlbGVtZW50cyBpbiBhIGxpc3Qgb3Igc2V0IG1hdGNoIGV4cGVjdGVkIHR5cGVzXG4gKiBAc3VtbWFyeSBUaGUgTGlzdFZhbGlkYXRvciB2YWxpZGF0ZXMgdGhhdCBhbGwgZWxlbWVudHMgaW4gYW4gYXJyYXkgb3IgU2V0IG1hdGNoIHRoZSBleHBlY3RlZCB0eXBlcy5cbiAqIEl0IGNoZWNrcyBlYWNoIGVsZW1lbnQgYWdhaW5zdCBhIGxpc3Qgb2YgYWxsb3dlZCBjbGFzcyB0eXBlcyBhbmQgZW5zdXJlcyB0eXBlIGNvbnNpc3RlbmN5LlxuICogVGhpcyB2YWxpZGF0b3IgaXMgdHlwaWNhbGx5IHVzZWQgd2l0aCB0aGUgQGxpc3QgZGVjb3JhdG9yLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gLSBDdXN0b20gZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gdmFsaWRhdGlvbiBmYWlscywgZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTElTVH1cbiAqXG4gKiBAY2xhc3MgTGlzdFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIGxpc3QgdmFsaWRhdG9yIHdpdGggZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBjb25zdCBsaXN0VmFsaWRhdG9yID0gbmV3IExpc3RWYWxpZGF0b3IoKTtcbiAqXG4gKiAvLyBDcmVhdGUgYSBsaXN0IHZhbGlkYXRvciB3aXRoIGN1c3RvbSBlcnJvciBtZXNzYWdlXG4gKiBjb25zdCBjdXN0b21MaXN0VmFsaWRhdG9yID0gbmV3IExpc3RWYWxpZGF0b3IoXCJBbGwgaXRlbXMgbXVzdCBiZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGVcIik7XG4gKlxuICogLy8gVmFsaWRhdGUgYSBsaXN0XG4gKiBjb25zdCBvcHRpb25zID0geyBjbGF6ejogW1wiU3RyaW5nXCIsIFwiTnVtYmVyXCJdIH07XG4gKiBjb25zdCByZXN1bHQgPSBsaXN0VmFsaWRhdG9yLmhhc0Vycm9ycyhbXCJ0ZXN0XCIsIDEyM10sIG9wdGlvbnMpOyAvLyB1bmRlZmluZWQgKHZhbGlkKVxuICogY29uc3QgaW52YWxpZFJlc3VsdCA9IGxpc3RWYWxpZGF0b3IuaGFzRXJyb3JzKFtuZXcgRGF0ZSgpXSwgb3B0aW9ucyk7IC8vIFJldHVybnMgZXJyb3IgbWVzc2FnZSAoaW52YWxpZClcbiAqIGBgYFxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQyBhcyBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgViBhcyBMaXN0VmFsaWRhdG9yXG4gKlxuICogICBDLT4+VjogbmV3IExpc3RWYWxpZGF0b3IobWVzc2FnZSlcbiAqICAgQy0+PlY6IGhhc0Vycm9ycyh2YWx1ZSwgb3B0aW9ucylcbiAqICAgYWx0IHZhbHVlIGlzIGVtcHR5XG4gKiAgICAgVi0tPj5DOiB1bmRlZmluZWQgKHZhbGlkKVxuICogICBlbHNlIHZhbHVlIGhhcyBlbGVtZW50c1xuICogICAgIFYtPj5WOiBDaGVjayBlYWNoIGVsZW1lbnQncyB0eXBlXG4gKiAgICAgYWx0IEFsbCBlbGVtZW50cyBtYXRjaCBhbGxvd2VkIHR5cGVzXG4gKiAgICAgICBWLS0+PkM6IHVuZGVmaW5lZCAodmFsaWQpXG4gKiAgICAgZWxzZSBTb21lIGVsZW1lbnRzIGRvbid0IG1hdGNoXG4gKiAgICAgICBWLS0+PkM6IEVycm9yIG1lc3NhZ2VcbiAqICAgICBlbmRcbiAqICAgZW5kXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5MSVNUKVxuZXhwb3J0IGNsYXNzIExpc3RWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3I8TGlzdFZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5MSVNUKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgQXJyYXkubmFtZSwgU2V0Lm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYWxsIGVsZW1lbnRzIGluIGEgbGlzdCBvciBzZXQgbWF0Y2ggdGhlIGV4cGVjdGVkIHR5cGVzXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyB0aGF0IGVhY2ggZWxlbWVudCBpbiB0aGUgcHJvdmlkZWQgYXJyYXkgb3IgU2V0IG1hdGNoZXMgb25lIG9mIHRoZVxuICAgKiBjbGFzcyB0eXBlcyBzcGVjaWZpZWQgaW4gdGhlIG9wdGlvbnMuIEZvciBvYmplY3QgdHlwZXMsIGl0IGNoZWNrcyB0aGUgY29uc3RydWN0b3IgbmFtZSxcbiAgICogYW5kIGZvciBwcmltaXRpdmUgdHlwZXMsIGl0IGNvbXBhcmVzIGFnYWluc3QgdGhlIGxvd2VyY2FzZSB0eXBlIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55W10gfCBTZXQ8YW55Pn0gdmFsdWUgLSBUaGUgYXJyYXkgb3IgU2V0IHRvIHZhbGlkYXRlXG4gICAqIEBwYXJhbSB7TGlzdFZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgY29udGFpbmluZyB0aGUgYWxsb3dlZCBjbGFzcyB0eXBlc1xuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9IEVycm9yIG1lc3NhZ2UgaWYgdmFsaWRhdGlvbiBmYWlscywgdW5kZWZpbmVkIGlmIHZhbGlkYXRpb24gcGFzc2VzXG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55W10gfCBTZXQ8YW55PixcbiAgICBvcHRpb25zOiBMaXN0VmFsaWRhdG9yT3B0aW9uc1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmFsdWUgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpID8gIXZhbHVlLmxlbmd0aCA6ICF2YWx1ZS5zaXplKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2xhenogPSAoXG4gICAgICBBcnJheS5pc0FycmF5KG9wdGlvbnMuY2xhenopID8gb3B0aW9ucy5jbGF6eiA6IFtvcHRpb25zLmNsYXp6XVxuICAgICkubWFwKChjKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGMgPT09IFwic3RyaW5nXCIpIHJldHVybiBjO1xuICAgICAgaWYgKCFjLm5hbWUpIHJldHVybiAoYyBhcyAoKSA9PiBDb25zdHJ1Y3Rvcjxhbnk+KSgpLm5hbWU7XG4gICAgICByZXR1cm4gYy5uYW1lO1xuICAgIH0pO1xuICAgIGxldCB2YWw6IGFueSxcbiAgICAgIGlzVmFsaWQgPSB0cnVlO1xuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBpIDwgKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUubGVuZ3RoIDogdmFsdWUuc2l6ZSk7XG4gICAgICBpKytcbiAgICApIHtcbiAgICAgIHZhbCA9ICh2YWx1ZSBhcyBhbnkpW2ldO1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsKSB7XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgaXNWYWxpZCA9IGNsYXp6LmluY2x1ZGVzKCgodmFsID8/IHt9KSBhcyBvYmplY3QpLmNvbnN0cnVjdG9yPy5uYW1lKTsgLy8gbnVsbCBpcyBhbiBvYmplY3RcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpc1ZhbGlkID0gY2xhenouc29tZSgoYzogc3RyaW5nKSA9PiB0eXBlb2YgdmFsID09PSBjLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc1ZhbGlkXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgY2xhenopO1xuICB9XG59XG4iXX0=
|
|
@@ -93,13 +93,17 @@ let TypeValidator = class TypeValidator extends Validator {
|
|
|
93
93
|
hasErrors(value, options) {
|
|
94
94
|
if (value === undefined)
|
|
95
95
|
return; // Don't try and enforce type if undefined
|
|
96
|
-
const { types, message } = options;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
96
|
+
const { types, message, customTypes } = options;
|
|
97
|
+
let ts = customTypes || types;
|
|
98
|
+
ts = (Array.isArray(ts) ? ts : [ts]).map((t) => {
|
|
99
|
+
if (typeof t === "string")
|
|
100
|
+
return t;
|
|
101
|
+
if (typeof t === "function" && !t.name)
|
|
102
|
+
t = t();
|
|
103
|
+
return t.name || t;
|
|
104
|
+
});
|
|
105
|
+
if (!Reflection.evaluateDesignTypes(value, ts))
|
|
106
|
+
return this.getMessage(message || this.message, typeof ts === "string" ? ts : Array.isArray(ts) ? ts.join(", ") : ts, typeof value);
|
|
103
107
|
}
|
|
104
108
|
};
|
|
105
109
|
TypeValidator = __decorate([
|
|
@@ -120,4 +124,4 @@ Validation.register({
|
|
|
120
124
|
validationKey: ModelKeys.TYPE,
|
|
121
125
|
save: false,
|
|
122
126
|
});
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvVHlwZVZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUFvQjtBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLHVCQUFvQjtBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUFxQjtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLDJCQUFzQjtBQU0zQyxPQUFPLEVBQUUsU0FBUyxFQUFFLG1DQUE4QjtBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlERztBQUVJLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWMsU0FBUSxTQUErQjtJQUNoRSxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLElBQUk7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLFNBQVMsQ0FDZCxLQUFVLEVBQ1YsT0FBNkI7UUFFN0IsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLE9BQU8sQ0FBQywwQ0FBMEM7UUFFM0UsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRWhELElBQUksRUFBRSxHQUFHLFdBQVcsSUFBSSxLQUFLLENBQUM7UUFDOUIsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLElBQUksT0FBTyxDQUFDLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQUUsQ0FBQyxHQUFJLENBQWtCLEVBQUUsQ0FBQztZQUNsRSxPQUFRLENBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBUyxDQUFDO1lBQ25ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDcEIsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQ3ZCLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3BFLE9BQU8sS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO0NBQ0YsQ0FBQTtBQTFDWSxhQUFhO0lBRHpCLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDOztHQUNsQixhQUFhLENBMEN6Qjs7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNsQixTQUFTLEVBQUUsYUFBaUM7SUFDNUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUFJO0lBQzdCLElBQUksRUFBRSxLQUFLO0NBQ1csQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gXCIuLi9WYWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBUeXBlVmFsaWRhdG9yT3B0aW9ucyxcbiAgVmFsaWRhdG9yRGVmaW5pdGlvbixcbiAgVmFsaWRhdG9yT3B0aW9ucyxcbn0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBNb2RlbEtleXMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFZhbGlkYXRvciBmb3IgY2hlY2tpbmcgaWYgYSB2YWx1ZSBpcyBvZiB0aGUgZXhwZWN0ZWQgdHlwZShzKVxuICogQHN1bW1hcnkgVGhlIFR5cGVWYWxpZGF0b3IgZW5zdXJlcyB0aGF0IGEgdmFsdWUgbWF0Y2hlcyBvbmUgb2YgdGhlIHNwZWNpZmllZCB0eXBlcy5cbiAqIEl0IGNhbiB2YWxpZGF0ZSBhZ2FpbnN0IGEgc2luZ2xlIHR5cGUsIG11bHRpcGxlIHR5cGVzLCBvciBhIHR5cGUgd2l0aCBhIHNwZWNpZmljIG5hbWUuXG4gKiBUaGlzIHZhbGlkYXRvciBpcyB0eXBpY2FsbHkgdXNlZCB3aXRoIHRoZSBAdHlwZSBkZWNvcmF0b3IgYW5kIGlzIGZ1bmRhbWVudGFsIGZvclxuICogZW5zdXJpbmcgdHlwZSBzYWZldHkgaW4gdmFsaWRhdGVkIG1vZGVscy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIC0gQ3VzdG9tIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHZhbGlkYXRpb24gZmFpbHMsIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1RZUEV9XG4gKlxuICogQGNsYXNzIFR5cGVWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgYSB0eXBlIHZhbGlkYXRvciB3aXRoIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogY29uc3QgdHlwZVZhbGlkYXRvciA9IG5ldyBUeXBlVmFsaWRhdG9yKCk7XG4gKlxuICogLy8gQ3JlYXRlIGEgdHlwZSB2YWxpZGF0b3Igd2l0aCBjdXN0b20gZXJyb3IgbWVzc2FnZVxuICogY29uc3QgY3VzdG9tVHlwZVZhbGlkYXRvciA9IG5ldyBUeXBlVmFsaWRhdG9yKFwiVmFsdWUgbXVzdCBiZSBvZiB0eXBlIHswfSwgYnV0IGdvdCB7MX1cIik7XG4gKlxuICogLy8gVmFsaWRhdGUgYWdhaW5zdCBhIHNpbmdsZSB0eXBlXG4gKiBjb25zdCBzdHJpbmdPcHRpb25zID0geyB0eXBlczogXCJzdHJpbmdcIiB9O1xuICogdHlwZVZhbGlkYXRvci5oYXNFcnJvcnMoXCJoZWxsb1wiLCBzdHJpbmdPcHRpb25zKTsgLy8gdW5kZWZpbmVkICh2YWxpZClcbiAqIHR5cGVWYWxpZGF0b3IuaGFzRXJyb3JzKDEyMywgc3RyaW5nT3B0aW9ucyk7IC8vIFJldHVybnMgZXJyb3IgbWVzc2FnZSAoaW52YWxpZClcbiAqXG4gKiAvLyBWYWxpZGF0ZSBhZ2FpbnN0IG11bHRpcGxlIHR5cGVzXG4gKiBjb25zdCBtdWx0aU9wdGlvbnMgPSB7IHR5cGVzOiBbXCJzdHJpbmdcIiwgXCJudW1iZXJcIl0gfTtcbiAqIHR5cGVWYWxpZGF0b3IuaGFzRXJyb3JzKFwiaGVsbG9cIiwgbXVsdGlPcHRpb25zKTsgLy8gdW5kZWZpbmVkICh2YWxpZClcbiAqIHR5cGVWYWxpZGF0b3IuaGFzRXJyb3JzKDEyMywgbXVsdGlPcHRpb25zKTsgLy8gdW5kZWZpbmVkICh2YWxpZClcbiAqIHR5cGVWYWxpZGF0b3IuaGFzRXJyb3JzKHRydWUsIG11bHRpT3B0aW9ucyk7IC8vIFJldHVybnMgZXJyb3IgbWVzc2FnZSAoaW52YWxpZClcbiAqXG4gKiAvLyBWYWxpZGF0ZSBhZ2FpbnN0IGEgY2xhc3MgdHlwZVxuICogY29uc3QgY2xhc3NPcHRpb25zID0geyB0eXBlczogeyBuYW1lOiBcIkRhdGVcIiB9IH07XG4gKiB0eXBlVmFsaWRhdG9yLmhhc0Vycm9ycyhuZXcgRGF0ZSgpLCBjbGFzc09wdGlvbnMpOyAvLyB1bmRlZmluZWQgKHZhbGlkKVxuICogYGBgXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENsaWVudFxuICogICBwYXJ0aWNpcGFudCBWIGFzIFR5cGVWYWxpZGF0b3JcbiAqICAgcGFydGljaXBhbnQgUiBhcyBSZWZsZWN0aW9uXG4gKlxuICogICBDLT4+VjogbmV3IFR5cGVWYWxpZGF0b3IobWVzc2FnZSlcbiAqICAgQy0+PlY6IGhhc0Vycm9ycyh2YWx1ZSwgb3B0aW9ucylcbiAqICAgYWx0IHZhbHVlIGlzIHVuZGVmaW5lZFxuICogICAgIFYtLT4+QzogdW5kZWZpbmVkICh2YWxpZClcbiAqICAgZWxzZSB2YWx1ZSBpcyBkZWZpbmVkXG4gKiAgICAgVi0+PlI6IGV2YWx1YXRlRGVzaWduVHlwZXModmFsdWUsIHR5cGVzKVxuICogICAgIGFsdCB0eXBlIGV2YWx1YXRpb24gcGFzc2VzXG4gKiAgICAgICBWLS0+PkM6IHVuZGVmaW5lZCAodmFsaWQpXG4gKiAgICAgZWxzZSB0eXBlIGV2YWx1YXRpb24gZmFpbHNcbiAqICAgICAgIFYtPj5WOiBGb3JtYXQgZXJyb3IgbWVzc2FnZSB3aXRoIHR5cGUgaW5mb1xuICogICAgICAgVi0tPj5DOiBFcnJvciBtZXNzYWdlXG4gKiAgICAgZW5kXG4gKiAgIGVuZFxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuVFlQRSlcbmV4cG9ydCBjbGFzcyBUeXBlVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPFR5cGVWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBvZiB0aGUgZXhwZWN0ZWQgdHlwZShzKVxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgdGhhdCB0aGUgcHJvdmlkZWQgdmFsdWUgbWF0Y2hlcyBvbmUgb2YgdGhlIHNwZWNpZmllZCB0eXBlcy5cbiAgICogSXQgdXNlcyB0aGUgUmVmbGVjdGlvbiB1dGlsaXR5IHRvIGV2YWx1YXRlIGlmIHRoZSB2YWx1ZSdzIHR5cGUgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgdHlwZXMuXG4gICAqIFRoZSBtZXRob2Qgc2tpcHMgdmFsaWRhdGlvbiBmb3IgdW5kZWZpbmVkIHZhbHVlcyB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0aGUgUmVxdWlyZWRWYWxpZGF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxuICAgKiBAcGFyYW0ge1R5cGVWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIHR5cGVzXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH0gRXJyb3IgbWVzc2FnZSBpZiB2YWxpZGF0aW9uIGZhaWxzLCB1bmRlZmluZWQgaWYgdmFsaWRhdGlvbiBwYXNzZXNcbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IFR5cGVWYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjsgLy8gRG9uJ3QgdHJ5IGFuZCBlbmZvcmNlIHR5cGUgaWYgdW5kZWZpbmVkXG5cbiAgICBjb25zdCB7IHR5cGVzLCBtZXNzYWdlLCBjdXN0b21UeXBlcyB9ID0gb3B0aW9ucztcblxuICAgIGxldCB0cyA9IGN1c3RvbVR5cGVzIHx8IHR5cGVzO1xuICAgIHRzID0gKEFycmF5LmlzQXJyYXkodHMpID8gdHMgOiBbdHNdKS5tYXAoKHQpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdCA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHQ7XG4gICAgICBpZiAodHlwZW9mIHQgPT09IFwiZnVuY3Rpb25cIiAmJiAhdC5uYW1lKSB0ID0gKHQgYXMgKCkgPT4gc3RyaW5nKSgpO1xuICAgICAgcmV0dXJuICh0IGFzIGFueSkubmFtZSB8fCB0O1xuICAgIH0pO1xuXG4gICAgaWYgKCFSZWZsZWN0aW9uLmV2YWx1YXRlRGVzaWduVHlwZXModmFsdWUsIHRzIGFzIGFueSkpXG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKFxuICAgICAgICBtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSxcbiAgICAgICAgdHlwZW9mIHRzID09PSBcInN0cmluZ1wiID8gdHMgOiBBcnJheS5pc0FycmF5KHRzKSA/IHRzLmpvaW4oXCIsIFwiKSA6IHRzLFxuICAgICAgICB0eXBlb2YgdmFsdWVcbiAgICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXIgdGhlIFR5cGVWYWxpZGF0b3Igd2l0aCB0aGUgVmFsaWRhdGlvbiByZWdpc3RyeVxuICogQHN1bW1hcnkgVGhpcyByZWdpc3RyYXRpb24gYXNzb2NpYXRlcyB0aGUgVHlwZVZhbGlkYXRvciB3aXRoIHRoZSBNb2RlbEtleXMuVFlQRSBrZXksXG4gKiBhbGxvd2luZyBpdCB0byBiZSB1c2VkIGZvciB2YWxpZGF0aW5nIGRlc2lnbiB0eXBlcy4gVGhlIHNhdmUgZmxhZyBpcyBzZXQgdG8gZmFsc2VcbiAqIHRvIHByZXZlbnQgdGhlIHZhbGlkYXRvciBmcm9tIGJlaW5nIHNhdmVkIGluIHRoZSBzdGFuZGFyZCB2YWxpZGF0b3IgcmVnaXN0cnkuXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICovXG5WYWxpZGF0aW9uLnJlZ2lzdGVyKHtcbiAgdmFsaWRhdG9yOiBUeXBlVmFsaWRhdG9yIGFzIFZhbGlkYXRvck9wdGlvbnMsXG4gIHZhbGlkYXRpb25LZXk6IE1vZGVsS2V5cy5UWVBFLFxuICBzYXZlOiBmYWxzZSxcbn0gYXMgVmFsaWRhdG9yRGVmaW5pdGlvbik7XG4iXX0=
|
|
@@ -96,7 +96,7 @@ export declare function step(value: number, message?: string): (target: any, pro
|
|
|
96
96
|
* @function minlength
|
|
97
97
|
* @category Property Decorators
|
|
98
98
|
*/
|
|
99
|
-
export declare function minlength(value: number, message?: string): (target:
|
|
99
|
+
export declare function minlength(value: number, message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
100
100
|
/**
|
|
101
101
|
* @summary Defines a maximum length for the property
|
|
102
102
|
* @description Validators to validate a decorated property must use key {@link ValidationKeys#MAX_LENGTH}
|
|
@@ -140,7 +140,7 @@ export declare function email(message?: string): (target: any, propertyKey?: any
|
|
|
140
140
|
*/
|
|
141
141
|
export declare function url(message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
142
142
|
export interface TypeMetadata extends ValidatorOptions {
|
|
143
|
-
customTypes: string[] | string;
|
|
143
|
+
customTypes: (string | (() => string))[] | string | (() => string);
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
146
146
|
* @summary Enforces type verification
|
|
@@ -152,7 +152,7 @@ export interface TypeMetadata extends ValidatorOptions {
|
|
|
152
152
|
* @function type
|
|
153
153
|
* @category Property Decorators
|
|
154
154
|
*/
|
|
155
|
-
export declare function type(types: string[] | string, message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
155
|
+
export declare function type(types: (string | (() => string))[] | string | (() => string), message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
156
156
|
export interface DateMetadata extends DateValidatorOptions {
|
|
157
157
|
types: string[];
|
|
158
158
|
}
|
|
@@ -197,7 +197,7 @@ export interface ListMetadata extends ListValidatorOptions {
|
|
|
197
197
|
*
|
|
198
198
|
* @category Property Decorators
|
|
199
199
|
*/
|
|
200
|
-
export declare function list(clazz: Constructor<any> | Constructor<any>[], collection?: "Array" | "Set", message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
200
|
+
export declare function list(clazz: Constructor<any> | (() => Constructor<any>) | (Constructor<any> | (() => Constructor<any>))[], collection?: "Array" | "Set", message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
201
201
|
/**
|
|
202
202
|
* @summary Set Decorator
|
|
203
203
|
* @description Wrapper for {@link list} with the 'Set' Collection
|