@decaf-ts/decorator-validation 1.10.5 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/decorator-validation.cjs +1 -1
- package/dist/decorator-validation.cjs.map +1 -1
- package/dist/decorator-validation.js +1 -1
- package/dist/decorator-validation.js.map +1 -1
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +2 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/model/Builder.d.ts +84 -0
- package/lib/esm/model/Builder.js +395 -129
- package/lib/esm/model/Builder.js.map +1 -1
- package/lib/esm/model/Model.d.ts +21 -19
- package/lib/esm/model/Model.js +112 -105
- package/lib/esm/model/Model.js.map +1 -1
- package/lib/esm/model/constants.d.ts +8 -8
- package/lib/esm/model/constants.js +8 -9
- package/lib/esm/model/constants.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +2 -12
- package/lib/esm/model/decorators.js +5 -39
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +1 -0
- package/lib/esm/model/index.js.map +1 -1
- package/lib/esm/model/types.d.ts +0 -12
- package/lib/esm/model/utils.d.ts +0 -3
- package/lib/esm/model/utils.js +0 -10
- package/lib/esm/model/utils.js.map +1 -1
- package/lib/esm/model/validation.d.ts +4 -37
- package/lib/esm/model/validation.js +30 -106
- package/lib/esm/model/validation.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +128 -0
- package/lib/esm/overrides/Metadata.js +2 -0
- package/lib/esm/overrides/Metadata.js.map +1 -0
- package/lib/esm/overrides/index.d.ts +3 -0
- package/lib/esm/overrides/index.js +4 -0
- package/lib/esm/overrides/index.js.map +1 -0
- package/lib/esm/overrides/overrides.d.ts +1 -0
- package/lib/esm/overrides/overrides.js +79 -0
- package/lib/esm/overrides/overrides.js.map +1 -0
- package/lib/esm/overrides/types.d.ts +9 -0
- package/lib/esm/overrides/types.js +2 -0
- package/lib/esm/overrides/types.js.map +1 -0
- package/lib/esm/types/validation.d.ts +4 -2
- package/lib/esm/utils/constants.d.ts +4 -18
- package/lib/esm/utils/constants.js +4 -17
- package/lib/esm/utils/constants.js.map +1 -1
- package/lib/esm/utils/dates.d.ts +0 -1
- package/lib/esm/utils/dates.js +0 -1
- package/lib/esm/utils/dates.js.map +1 -1
- package/lib/esm/utils/equality.d.ts +56 -0
- package/lib/esm/utils/equality.js +160 -0
- package/lib/esm/utils/equality.js.map +1 -0
- package/lib/esm/utils/index.d.ts +1 -2
- package/lib/esm/utils/index.js +1 -2
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/registry.d.ts +1 -1
- package/lib/esm/utils/serialization.d.ts +2 -2
- package/lib/esm/utils/serialization.js +10 -2
- package/lib/esm/utils/serialization.js.map +1 -1
- package/lib/esm/utils/types.d.ts +0 -102
- package/lib/esm/validation/Validation.d.ts +2 -3
- package/lib/esm/validation/Validation.js +11 -6
- package/lib/esm/validation/Validation.js.map +1 -1
- package/lib/esm/validation/Validators/BaseValidator.js +7 -3
- package/lib/esm/validation/Validators/BaseValidator.js.map +1 -1
- package/lib/esm/validation/Validators/DiffValidator.js +1 -1
- package/lib/esm/validation/Validators/DiffValidator.js.map +1 -1
- package/lib/esm/validation/Validators/EqualsValidator.js +1 -1
- package/lib/esm/validation/Validators/EqualsValidator.js.map +1 -1
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +1 -1
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +1 -1
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
- package/lib/esm/validation/Validators/ListValidator.js +4 -4
- package/lib/esm/validation/Validators/ListValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MaxLengthValidator.js +3 -2
- package/lib/esm/validation/Validators/MaxLengthValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MaxValidator.js +1 -1
- package/lib/esm/validation/Validators/MaxValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MinLengthValidator.js +3 -2
- package/lib/esm/validation/Validators/MinLengthValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MinValidator.js +1 -1
- package/lib/esm/validation/Validators/MinValidator.js.map +1 -1
- package/lib/esm/validation/Validators/OptionValidator.d.ts +29 -0
- package/lib/esm/validation/Validators/OptionValidator.js +61 -0
- package/lib/esm/validation/Validators/OptionValidator.js.map +1 -0
- package/lib/esm/validation/Validators/TypeValidator.js +2 -2
- package/lib/esm/validation/Validators/TypeValidator.js.map +1 -1
- package/lib/esm/validation/Validators/constants.d.ts +2 -1
- package/lib/esm/validation/Validators/constants.js +3 -2
- package/lib/esm/validation/Validators/constants.js.map +1 -1
- package/lib/esm/validation/Validators/decorators.d.ts +1 -1
- package/lib/esm/validation/Validators/decorators.js +2 -2
- package/lib/esm/validation/Validators/decorators.js.map +1 -1
- package/lib/esm/validation/Validators/index.d.ts +1 -0
- package/lib/esm/validation/Validators/index.js +1 -0
- package/lib/esm/validation/Validators/index.js.map +1 -1
- package/lib/esm/validation/Validators/utils.d.ts +33 -0
- package/lib/esm/validation/Validators/utils.js +62 -0
- package/lib/esm/validation/Validators/utils.js.map +1 -1
- package/lib/esm/validation/decorators.d.ts +28 -17
- package/lib/esm/validation/decorators.js +86 -55
- package/lib/esm/validation/decorators.js.map +1 -1
- package/lib/esm/validation/types.d.ts +15 -5
- package/lib/esm/validation/types.js.map +1 -1
- package/lib/index.cjs +2 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js.map +1 -1
- package/lib/model/Builder.cjs +399 -128
- package/lib/model/Builder.d.ts +84 -0
- package/lib/model/Builder.js.map +1 -1
- package/lib/model/Model.cjs +114 -107
- package/lib/model/Model.d.ts +21 -19
- package/lib/model/Model.js.map +1 -1
- package/lib/model/constants.cjs +8 -9
- package/lib/model/constants.d.ts +8 -8
- package/lib/model/constants.js.map +1 -1
- package/lib/model/decorators.cjs +4 -39
- package/lib/model/decorators.d.ts +2 -12
- package/lib/model/decorators.js.map +1 -1
- package/lib/model/index.cjs +1 -0
- package/lib/model/index.d.ts +1 -0
- package/lib/model/index.js.map +1 -1
- package/lib/model/types.d.ts +0 -12
- package/lib/model/utils.cjs +0 -12
- package/lib/model/utils.d.ts +0 -3
- package/lib/model/utils.js.map +1 -1
- package/lib/model/validation.cjs +30 -108
- package/lib/model/validation.d.ts +4 -37
- package/lib/model/validation.js.map +1 -1
- package/lib/overrides/Metadata.cjs +3 -0
- package/lib/overrides/Metadata.d.ts +128 -0
- package/lib/overrides/Metadata.js.map +1 -0
- package/lib/overrides/index.cjs +20 -0
- package/lib/overrides/index.d.ts +3 -0
- package/lib/overrides/index.js.map +1 -0
- package/lib/overrides/overrides.cjs +81 -0
- package/lib/overrides/overrides.d.ts +1 -0
- package/lib/overrides/overrides.js.map +1 -0
- package/lib/overrides/types.cjs +3 -0
- package/lib/overrides/types.d.ts +9 -0
- package/lib/overrides/types.js.map +1 -0
- package/lib/types/validation.d.ts +4 -2
- package/lib/utils/constants.cjs +5 -18
- package/lib/utils/constants.d.ts +4 -18
- package/lib/utils/constants.js.map +1 -1
- package/lib/utils/dates.cjs +0 -1
- package/lib/utils/dates.d.ts +0 -1
- package/lib/utils/dates.js.map +1 -1
- package/lib/utils/equality.cjs +163 -0
- package/lib/utils/equality.d.ts +56 -0
- package/lib/utils/equality.js.map +1 -0
- package/lib/utils/index.cjs +1 -2
- package/lib/utils/index.d.ts +1 -2
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/registry.d.ts +1 -1
- package/lib/utils/serialization.cjs +10 -2
- package/lib/utils/serialization.d.ts +2 -2
- package/lib/utils/serialization.js.map +1 -1
- package/lib/utils/types.d.ts +0 -102
- package/lib/validation/Validation.cjs +11 -6
- package/lib/validation/Validation.d.ts +2 -3
- package/lib/validation/Validation.js.map +1 -1
- package/lib/validation/Validators/BaseValidator.cjs +7 -3
- package/lib/validation/Validators/BaseValidator.js.map +1 -1
- package/lib/validation/Validators/DiffValidator.cjs +2 -2
- package/lib/validation/Validators/DiffValidator.js.map +1 -1
- package/lib/validation/Validators/EqualsValidator.cjs +2 -2
- package/lib/validation/Validators/EqualsValidator.js.map +1 -1
- package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +2 -2
- package/lib/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
- package/lib/validation/Validators/LessThanOrEqualValidator.cjs +2 -2
- package/lib/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
- package/lib/validation/Validators/ListValidator.cjs +4 -4
- package/lib/validation/Validators/ListValidator.js.map +1 -1
- package/lib/validation/Validators/MaxLengthValidator.cjs +3 -2
- package/lib/validation/Validators/MaxLengthValidator.js.map +1 -1
- package/lib/validation/Validators/MaxValidator.cjs +1 -1
- package/lib/validation/Validators/MaxValidator.js.map +1 -1
- package/lib/validation/Validators/MinLengthValidator.cjs +3 -2
- package/lib/validation/Validators/MinLengthValidator.js.map +1 -1
- package/lib/validation/Validators/MinValidator.cjs +1 -1
- package/lib/validation/Validators/MinValidator.js.map +1 -1
- package/lib/validation/Validators/OptionValidator.cjs +64 -0
- package/lib/validation/Validators/OptionValidator.d.ts +29 -0
- package/lib/validation/Validators/OptionValidator.js.map +1 -0
- package/lib/validation/Validators/TypeValidator.cjs +2 -2
- package/lib/validation/Validators/TypeValidator.js.map +1 -1
- package/lib/validation/Validators/constants.cjs +5 -4
- package/lib/validation/Validators/constants.d.ts +2 -1
- package/lib/validation/Validators/constants.js.map +1 -1
- package/lib/validation/Validators/decorators.cjs +3 -3
- package/lib/validation/Validators/decorators.d.ts +1 -1
- package/lib/validation/Validators/decorators.js.map +1 -1
- package/lib/validation/Validators/index.cjs +1 -0
- package/lib/validation/Validators/index.d.ts +1 -0
- package/lib/validation/Validators/index.js.map +1 -1
- package/lib/validation/Validators/utils.cjs +66 -0
- package/lib/validation/Validators/utils.d.ts +33 -0
- package/lib/validation/Validators/utils.js.map +1 -1
- package/lib/validation/decorators.cjs +102 -69
- package/lib/validation/decorators.d.ts +28 -17
- package/lib/validation/decorators.js.map +1 -1
- package/lib/validation/types.d.ts +15 -5
- package/lib/validation/types.js.map +1 -1
- package/package.json +2 -3
- package/lib/esm/utils/Decoration.d.ts +0 -135
- package/lib/esm/utils/Decoration.js +0 -227
- package/lib/esm/utils/Decoration.js.map +0 -1
- package/lib/esm/utils/decorators.d.ts +0 -38
- package/lib/esm/utils/decorators.js +0 -64
- package/lib/esm/utils/decorators.js.map +0 -1
- package/lib/utils/Decoration.cjs +0 -231
- package/lib/utils/Decoration.d.ts +0 -135
- package/lib/utils/Decoration.js.map +0 -1
- package/lib/utils/decorators.cjs +0 -68
- package/lib/utils/decorators.d.ts +0 -38
- package/lib/utils/decorators.js.map +0 -1
|
@@ -188,4 +188,66 @@ export function isGreaterThan(a, b) {
|
|
|
188
188
|
}
|
|
189
189
|
throw new TypeError(sf(COMPARISON_ERROR_MESSAGES.UNSUPPORTED_TYPES_COMPARISON, getTypeName(a), getTypeName(b)));
|
|
190
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* @description Checks if a value matches a specified type name
|
|
193
|
+
* @summary Utility function to verify if a value's type matches the provided type name
|
|
194
|
+
* @param {unknown} value - The value to check the type of
|
|
195
|
+
* @param {string} acceptedType - The type name to check against
|
|
196
|
+
* @return {boolean} Returns true if the value matches the accepted type, false otherwise
|
|
197
|
+
*/
|
|
198
|
+
export function checkType(value, acceptedType) {
|
|
199
|
+
if (typeof value === acceptedType.toLowerCase())
|
|
200
|
+
return true;
|
|
201
|
+
if (typeof value === "undefined")
|
|
202
|
+
return false;
|
|
203
|
+
if (typeof value !== "object")
|
|
204
|
+
return false;
|
|
205
|
+
return (value.constructor &&
|
|
206
|
+
value.constructor.name.toLowerCase() ===
|
|
207
|
+
acceptedType.toLowerCase());
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* @description Checks if a value matches any of the specified type names
|
|
211
|
+
* @summary Utility function to verify if a value's type matches any of the provided type names
|
|
212
|
+
* @param {unknown} value - The value to check the type of
|
|
213
|
+
* @param {string[]} acceptedTypes - Array of type names to check against
|
|
214
|
+
* @return {boolean} Returns true if the value matches any of the accepted types, false otherwise
|
|
215
|
+
*/
|
|
216
|
+
export function checkTypes(value, acceptedTypes) {
|
|
217
|
+
return !acceptedTypes.every((t) => !checkType(value, t));
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* @description Evaluates if a value matches the specified type metadata
|
|
221
|
+
* @summary Compares a value against type metadata to determine if they match
|
|
222
|
+
* @param {unknown} value - The value to evaluate
|
|
223
|
+
* @param {string | string[] | {name: string}} types - Type metadata to check against, can be a string, array of strings, or an object with a name property
|
|
224
|
+
* @return {boolean} Returns true if the value matches the type metadata, false otherwise
|
|
225
|
+
*/
|
|
226
|
+
export function evaluateDesignTypes(value, types) {
|
|
227
|
+
switch (typeof types) {
|
|
228
|
+
case "string":
|
|
229
|
+
return checkType(value, types);
|
|
230
|
+
case "object":
|
|
231
|
+
if (Array.isArray(types))
|
|
232
|
+
return checkTypes(value, types);
|
|
233
|
+
return true;
|
|
234
|
+
case "function":
|
|
235
|
+
if (types.name && types.name !== "Object")
|
|
236
|
+
return checkType(value, types.name);
|
|
237
|
+
return true;
|
|
238
|
+
default:
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* @description Returns the length of a value
|
|
244
|
+
* @summary Returns the length of a value
|
|
245
|
+
* @param {string | Set<any> | any[] | Map<any, any>} value - The value to evaluate
|
|
246
|
+
* @return {number} Returns the length of a value
|
|
247
|
+
*/
|
|
248
|
+
export function valueLength(value) {
|
|
249
|
+
return value instanceof Set || value instanceof Map
|
|
250
|
+
? value.size
|
|
251
|
+
: value.length;
|
|
252
|
+
}
|
|
191
253
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/validation/Validators/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/validation/Validators/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "reflect-metadata";
|
|
2
1
|
import { ComparisonValidatorOptions, DateValidatorOptions, ListValidatorOptions, ValidatorOptions } from "./types";
|
|
3
|
-
import {
|
|
2
|
+
import { ModelConstructor } from "../model/types";
|
|
3
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
4
4
|
/**
|
|
5
5
|
* @description Combined property decorator factory for metadata and attribute marking
|
|
6
6
|
* @summary Creates a decorator that both marks a property as a model attribute and assigns metadata to it
|
|
@@ -13,7 +13,8 @@ import { Constructor, ModelConstructor } from "../model/types";
|
|
|
13
13
|
* @function validationMetadata
|
|
14
14
|
* @category Property Decorators
|
|
15
15
|
*/
|
|
16
|
-
export declare function validationMetadata<V>(decorator: any, key: string, value: V): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
16
|
+
export declare function validationMetadata<V>(decorator: any, key: string, value: V): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
17
|
+
export declare function innerValidationDecorator(dec: any, key: string, meta: any): (obj: any, prop: any) => void;
|
|
17
18
|
export declare function async(): (model: object) => void;
|
|
18
19
|
/**
|
|
19
20
|
* @description Property decorator that marks a field as required
|
|
@@ -139,23 +140,22 @@ export declare function email(message?: string): (target: any, propertyKey?: any
|
|
|
139
140
|
* @category Property Decorators
|
|
140
141
|
*/
|
|
141
142
|
export declare function url(message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
143
|
+
export type TypeConstructor = Constructor | typeof BigInt;
|
|
142
144
|
export interface TypeMetadata extends ValidatorOptions {
|
|
143
|
-
customTypes: (
|
|
145
|
+
customTypes: (TypeConstructor | (() => TypeConstructor))[] | TypeConstructor | (() => TypeConstructor);
|
|
144
146
|
}
|
|
145
147
|
/**
|
|
146
148
|
* @summary Enforces type verification
|
|
147
149
|
* @description Validators to validate a decorated property must use key {@link ValidationKeys#TYPE}
|
|
148
150
|
*
|
|
149
|
-
* @param {
|
|
150
|
-
* @param {
|
|
151
|
+
* @param {Constructor[] | Constructor} types accepted types
|
|
152
|
+
* @param {Constructor} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#TYPE}
|
|
151
153
|
*
|
|
152
154
|
* @function type
|
|
153
155
|
* @category Property Decorators
|
|
154
156
|
*/
|
|
155
|
-
export declare function type(types: (
|
|
156
|
-
export
|
|
157
|
-
types: string[];
|
|
158
|
-
}
|
|
157
|
+
export declare function type(types: (TypeConstructor | (() => TypeConstructor))[] | TypeConstructor | (() => TypeConstructor), message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
158
|
+
export type DateMetadata = DateValidatorOptions;
|
|
159
159
|
/**
|
|
160
160
|
* @summary Date Handler Decorator
|
|
161
161
|
* @description Validators to validate a decorated property must use key {@link ValidationKeys#DATE}
|
|
@@ -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
|
|
200
|
+
export declare function list(clazz: Constructor | (() => Constructor) | (Constructor | (() => Constructor))[], 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
|
|
@@ -224,7 +224,7 @@ export declare function set(clazz: ModelConstructor<any>, message?: string): (ta
|
|
|
224
224
|
* @function eq
|
|
225
225
|
* @category Property Decorators
|
|
226
226
|
*/
|
|
227
|
-
export declare function eq(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (
|
|
227
|
+
export declare function eq(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (obj: any, prop: any) => void;
|
|
228
228
|
/**
|
|
229
229
|
* @summary Declares that the decorated property must be different from another specified property.
|
|
230
230
|
* @description Applies the {@link ValidationKeys.DIFF} validator to ensure the decorated value is different from the value of the given property.
|
|
@@ -239,7 +239,7 @@ export declare function eq(propertyToCompare: string, options?: Omit<ComparisonV
|
|
|
239
239
|
* @function diff
|
|
240
240
|
* @category Property Decorators
|
|
241
241
|
*/
|
|
242
|
-
export declare function diff(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (
|
|
242
|
+
export declare function diff(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (obj: any, prop: any) => void;
|
|
243
243
|
/**
|
|
244
244
|
* @summary Declares that the decorated property must be less than another specified property.
|
|
245
245
|
* @description Applies the {@link ValidationKeys.LESS_THAN} validator to ensure the decorated value is less than the value of the given property.
|
|
@@ -254,7 +254,7 @@ export declare function diff(propertyToCompare: string, options?: Omit<Compariso
|
|
|
254
254
|
* @function lt
|
|
255
255
|
* @category Property Decorators
|
|
256
256
|
*/
|
|
257
|
-
export declare function lt(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (
|
|
257
|
+
export declare function lt(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (obj: any, prop: any) => void;
|
|
258
258
|
/**
|
|
259
259
|
* @summary Declares that the decorated property must be equal or less than another specified property.
|
|
260
260
|
* @description Applies the {@link ValidationKeys.LESS_THAN_OR_EQUAL} validator to ensure the decorated value is equal or less than the value of the given property.
|
|
@@ -269,7 +269,7 @@ export declare function lt(propertyToCompare: string, options?: Omit<ComparisonV
|
|
|
269
269
|
* @function lte
|
|
270
270
|
* @category Property Decorators
|
|
271
271
|
*/
|
|
272
|
-
export declare function lte(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (
|
|
272
|
+
export declare function lte(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (obj: any, prop: any) => void;
|
|
273
273
|
/**
|
|
274
274
|
* @summary Declares that the decorated property must be greater than another specified property.
|
|
275
275
|
* @description Applies the {@link ValidationKeys.GREATER_THAN} validator to ensure the decorated value is greater than the value of the given property.
|
|
@@ -284,7 +284,7 @@ export declare function lte(propertyToCompare: string, options?: Omit<Comparison
|
|
|
284
284
|
* @function gt
|
|
285
285
|
* @category Property Decorators
|
|
286
286
|
*/
|
|
287
|
-
export declare function gt(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (
|
|
287
|
+
export declare function gt(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (obj: any, prop: any) => void;
|
|
288
288
|
/**
|
|
289
289
|
* @summary Declares that the decorated property must be equal or greater than another specified property.
|
|
290
290
|
* @description Applies the {@link ValidationKeys.GREATER_THAN_OR_EQUAL} validator to ensure the decorated value is equal or greater than the value of the given property.
|
|
@@ -299,4 +299,15 @@ export declare function gt(propertyToCompare: string, options?: Omit<ComparisonV
|
|
|
299
299
|
* @function gte
|
|
300
300
|
* @category Property Decorators
|
|
301
301
|
*/
|
|
302
|
-
export declare function gte(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (
|
|
302
|
+
export declare function gte(propertyToCompare: string, options?: Omit<ComparisonValidatorOptions, "async" | "description">): (obj: any, prop: any) => void;
|
|
303
|
+
/**
|
|
304
|
+
* @summary Defines a list or an object of accepted values for the property
|
|
305
|
+
* @description Validators to validate a decorated property must use key {@link ValidationKeys#ENUM}
|
|
306
|
+
*
|
|
307
|
+
* @param {any[] | Record<any, any>} value
|
|
308
|
+
* @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#ENUM}
|
|
309
|
+
*
|
|
310
|
+
* @function option
|
|
311
|
+
* @category Property Decorators
|
|
312
|
+
*/
|
|
313
|
+
export declare function option(value: any[] | Record<any, any>, message?: string): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import "reflect-metadata";
|
|
2
1
|
import { DEFAULT_ERROR_MESSAGES, DEFAULT_PATTERNS, ValidationKeys, } from "./Validators/constants.js";
|
|
3
2
|
import { sf } from "./../utils/strings.js";
|
|
4
3
|
import { parseDate } from "./../utils/dates.js";
|
|
5
|
-
import { propMetadata } from "./../utils/decorators.js";
|
|
6
4
|
import { Validation } from "./Validation.js";
|
|
7
|
-
import { Decoration } from "
|
|
8
|
-
import { apply } from "@decaf-ts/reflection";
|
|
5
|
+
import { Decoration, apply, propMetadata, } from "@decaf-ts/decoration";
|
|
9
6
|
import { ASYNC_META_KEY } from "./../constants/index.js";
|
|
10
7
|
/**
|
|
11
8
|
* @description Combined property decorator factory for metadata and attribute marking
|
|
@@ -20,9 +17,14 @@ import { ASYNC_META_KEY } from "./../constants/index.js";
|
|
|
20
17
|
* @category Property Decorators
|
|
21
18
|
*/
|
|
22
19
|
export function validationMetadata(decorator, key, value) {
|
|
23
|
-
Validation.registerDecorator(key, decorator);
|
|
24
20
|
return apply(propMetadata(key, value));
|
|
25
21
|
}
|
|
22
|
+
export function innerValidationDecorator(dec, key, meta) {
|
|
23
|
+
Validation.registerDecorator(key, dec);
|
|
24
|
+
return function innerValidationDecorator(obj, prop) {
|
|
25
|
+
return validationMetadata(dec, `${ValidationKeys.REFLECT}.${prop}.${key}`, meta)(obj, prop);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
26
28
|
export function async() {
|
|
27
29
|
return (model) => {
|
|
28
30
|
if (!Object.prototype.hasOwnProperty.call(model, ASYNC_META_KEY))
|
|
@@ -53,7 +55,7 @@ export function async() {
|
|
|
53
55
|
* ```
|
|
54
56
|
*/
|
|
55
57
|
export function required(message = DEFAULT_ERROR_MESSAGES.REQUIRED) {
|
|
56
|
-
const key =
|
|
58
|
+
const key = ValidationKeys.REQUIRED;
|
|
57
59
|
const meta = {
|
|
58
60
|
message: message,
|
|
59
61
|
description: `defines the attribute as required`,
|
|
@@ -61,7 +63,7 @@ export function required(message = DEFAULT_ERROR_MESSAGES.REQUIRED) {
|
|
|
61
63
|
};
|
|
62
64
|
return Decoration.for(key)
|
|
63
65
|
.define({
|
|
64
|
-
decorator:
|
|
66
|
+
decorator: innerValidationDecorator,
|
|
65
67
|
args: [required, key, meta],
|
|
66
68
|
})
|
|
67
69
|
.apply();
|
|
@@ -91,17 +93,16 @@ export function required(message = DEFAULT_ERROR_MESSAGES.REQUIRED) {
|
|
|
91
93
|
* ```
|
|
92
94
|
*/
|
|
93
95
|
export function min(value, message = DEFAULT_ERROR_MESSAGES.MIN) {
|
|
94
|
-
const key =
|
|
96
|
+
const key = ValidationKeys.MIN;
|
|
95
97
|
const meta = {
|
|
96
98
|
[ValidationKeys.MIN]: value,
|
|
97
99
|
message: message,
|
|
98
|
-
types: [Number.name, Date.name],
|
|
99
100
|
description: `defines the max value of the attribute as ${value} (applies to numbers or Dates)`,
|
|
100
101
|
async: false,
|
|
101
102
|
};
|
|
102
103
|
return Decoration.for(key)
|
|
103
104
|
.define({
|
|
104
|
-
decorator:
|
|
105
|
+
decorator: innerValidationDecorator,
|
|
105
106
|
args: [min, key, meta],
|
|
106
107
|
})
|
|
107
108
|
.apply();
|
|
@@ -117,17 +118,16 @@ export function min(value, message = DEFAULT_ERROR_MESSAGES.MIN) {
|
|
|
117
118
|
* @category Property Decorators
|
|
118
119
|
*/
|
|
119
120
|
export function max(value, message = DEFAULT_ERROR_MESSAGES.MAX) {
|
|
120
|
-
const key =
|
|
121
|
+
const key = ValidationKeys.MAX;
|
|
121
122
|
const meta = {
|
|
122
123
|
[ValidationKeys.MAX]: value,
|
|
123
124
|
message: message,
|
|
124
|
-
types: [Number.name, Date.name],
|
|
125
125
|
description: `defines the max value of the attribute as ${value} (applies to numbers or Dates)`,
|
|
126
126
|
async: false,
|
|
127
127
|
};
|
|
128
128
|
return Decoration.for(key)
|
|
129
129
|
.define({
|
|
130
|
-
decorator:
|
|
130
|
+
decorator: innerValidationDecorator,
|
|
131
131
|
args: [max, key, meta],
|
|
132
132
|
})
|
|
133
133
|
.apply();
|
|
@@ -143,17 +143,16 @@ export function max(value, message = DEFAULT_ERROR_MESSAGES.MAX) {
|
|
|
143
143
|
* @category Property Decorators
|
|
144
144
|
*/
|
|
145
145
|
export function step(value, message = DEFAULT_ERROR_MESSAGES.STEP) {
|
|
146
|
-
const key =
|
|
146
|
+
const key = ValidationKeys.STEP;
|
|
147
147
|
const meta = {
|
|
148
148
|
[ValidationKeys.STEP]: value,
|
|
149
149
|
message: message,
|
|
150
|
-
types: [Number.name],
|
|
151
150
|
description: `defines the step of the attribute as ${value}`,
|
|
152
151
|
async: false,
|
|
153
152
|
};
|
|
154
153
|
return Decoration.for(key)
|
|
155
154
|
.define({
|
|
156
|
-
decorator:
|
|
155
|
+
decorator: innerValidationDecorator,
|
|
157
156
|
args: [step, key, meta],
|
|
158
157
|
})
|
|
159
158
|
.apply();
|
|
@@ -169,17 +168,16 @@ export function step(value, message = DEFAULT_ERROR_MESSAGES.STEP) {
|
|
|
169
168
|
* @category Property Decorators
|
|
170
169
|
*/
|
|
171
170
|
export function minlength(value, message = DEFAULT_ERROR_MESSAGES.MIN_LENGTH) {
|
|
172
|
-
const key =
|
|
171
|
+
const key = ValidationKeys.MIN_LENGTH;
|
|
173
172
|
const meta = {
|
|
174
173
|
[ValidationKeys.MIN_LENGTH]: value,
|
|
175
174
|
message: message,
|
|
176
|
-
types: [String.name, Array.name, Set.name],
|
|
177
175
|
description: `defines the min length of the attribute as ${value} (applies to strings or lists)`,
|
|
178
176
|
async: false,
|
|
179
177
|
};
|
|
180
178
|
return Decoration.for(key)
|
|
181
179
|
.define({
|
|
182
|
-
decorator:
|
|
180
|
+
decorator: innerValidationDecorator,
|
|
183
181
|
args: [minlength, key, meta],
|
|
184
182
|
})
|
|
185
183
|
.apply();
|
|
@@ -195,17 +193,16 @@ export function minlength(value, message = DEFAULT_ERROR_MESSAGES.MIN_LENGTH) {
|
|
|
195
193
|
* @category Property Decorators
|
|
196
194
|
*/
|
|
197
195
|
export function maxlength(value, message = DEFAULT_ERROR_MESSAGES.MAX_LENGTH) {
|
|
198
|
-
const key =
|
|
196
|
+
const key = ValidationKeys.MAX_LENGTH;
|
|
199
197
|
const meta = {
|
|
200
198
|
[ValidationKeys.MAX_LENGTH]: value,
|
|
201
199
|
message: message,
|
|
202
|
-
types: [String.name, Array.name, Set.name],
|
|
203
200
|
description: `defines the max length of the attribute as ${value} (applies to strings or lists)`,
|
|
204
201
|
async: false,
|
|
205
202
|
};
|
|
206
203
|
return Decoration.for(key)
|
|
207
204
|
.define({
|
|
208
|
-
decorator:
|
|
205
|
+
decorator: innerValidationDecorator,
|
|
209
206
|
args: [maxlength, key, meta],
|
|
210
207
|
})
|
|
211
208
|
.apply();
|
|
@@ -221,17 +218,16 @@ export function maxlength(value, message = DEFAULT_ERROR_MESSAGES.MAX_LENGTH) {
|
|
|
221
218
|
* @category Property Decorators
|
|
222
219
|
*/
|
|
223
220
|
export function pattern(value, message = DEFAULT_ERROR_MESSAGES.PATTERN) {
|
|
224
|
-
const key =
|
|
221
|
+
const key = ValidationKeys.PATTERN;
|
|
225
222
|
const meta = {
|
|
226
223
|
[ValidationKeys.PATTERN]: typeof value === "string" ? value : value.toString(),
|
|
227
224
|
message: message,
|
|
228
|
-
types: [String.name],
|
|
229
225
|
description: `assigns the ${value === "string" ? value : value.toString()} pattern to the attribute`,
|
|
230
226
|
async: false,
|
|
231
227
|
};
|
|
232
228
|
return Decoration.for(key)
|
|
233
229
|
.define({
|
|
234
|
-
decorator:
|
|
230
|
+
decorator: innerValidationDecorator,
|
|
235
231
|
args: [pattern, key, meta],
|
|
236
232
|
})
|
|
237
233
|
.apply();
|
|
@@ -246,17 +242,16 @@ export function pattern(value, message = DEFAULT_ERROR_MESSAGES.PATTERN) {
|
|
|
246
242
|
* @category Property Decorators
|
|
247
243
|
*/
|
|
248
244
|
export function email(message = DEFAULT_ERROR_MESSAGES.EMAIL) {
|
|
249
|
-
const key =
|
|
245
|
+
const key = ValidationKeys.EMAIL;
|
|
250
246
|
const meta = {
|
|
251
247
|
[ValidationKeys.PATTERN]: DEFAULT_PATTERNS.EMAIL.toString(),
|
|
252
248
|
message: message,
|
|
253
|
-
types: [String.name],
|
|
254
249
|
description: "marks the attribute as an email",
|
|
255
250
|
async: false,
|
|
256
251
|
};
|
|
257
252
|
return Decoration.for(key)
|
|
258
253
|
.define({
|
|
259
|
-
decorator:
|
|
254
|
+
decorator: innerValidationDecorator,
|
|
260
255
|
args: [email, key, meta],
|
|
261
256
|
})
|
|
262
257
|
.apply();
|
|
@@ -271,17 +266,16 @@ export function email(message = DEFAULT_ERROR_MESSAGES.EMAIL) {
|
|
|
271
266
|
* @category Property Decorators
|
|
272
267
|
*/
|
|
273
268
|
export function url(message = DEFAULT_ERROR_MESSAGES.URL) {
|
|
274
|
-
const key =
|
|
269
|
+
const key = ValidationKeys.URL;
|
|
275
270
|
const meta = {
|
|
276
271
|
[ValidationKeys.PATTERN]: DEFAULT_PATTERNS.URL.toString(),
|
|
277
272
|
message: message,
|
|
278
|
-
types: [String.name],
|
|
279
273
|
description: "marks the attribute as an url",
|
|
280
274
|
async: false,
|
|
281
275
|
};
|
|
282
276
|
return Decoration.for(key)
|
|
283
277
|
.define({
|
|
284
|
-
decorator:
|
|
278
|
+
decorator: innerValidationDecorator,
|
|
285
279
|
args: [url, key, meta],
|
|
286
280
|
})
|
|
287
281
|
.apply();
|
|
@@ -290,14 +284,15 @@ export function url(message = DEFAULT_ERROR_MESSAGES.URL) {
|
|
|
290
284
|
* @summary Enforces type verification
|
|
291
285
|
* @description Validators to validate a decorated property must use key {@link ValidationKeys#TYPE}
|
|
292
286
|
*
|
|
293
|
-
* @param {
|
|
294
|
-
* @param {
|
|
287
|
+
* @param {Constructor[] | Constructor} types accepted types
|
|
288
|
+
* @param {Constructor} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#TYPE}
|
|
295
289
|
*
|
|
296
290
|
* @function type
|
|
297
291
|
* @category Property Decorators
|
|
298
292
|
*/
|
|
293
|
+
//TODO
|
|
299
294
|
export function type(types, message = DEFAULT_ERROR_MESSAGES.TYPE) {
|
|
300
|
-
const key =
|
|
295
|
+
const key = ValidationKeys.TYPE;
|
|
301
296
|
const meta = {
|
|
302
297
|
customTypes: types,
|
|
303
298
|
message: message,
|
|
@@ -306,7 +301,7 @@ export function type(types, message = DEFAULT_ERROR_MESSAGES.TYPE) {
|
|
|
306
301
|
};
|
|
307
302
|
return Decoration.for(key)
|
|
308
303
|
.define({
|
|
309
|
-
decorator:
|
|
304
|
+
decorator: innerValidationDecorator,
|
|
310
305
|
args: [type, key, meta],
|
|
311
306
|
})
|
|
312
307
|
.apply();
|
|
@@ -325,19 +320,18 @@ export function type(types, message = DEFAULT_ERROR_MESSAGES.TYPE) {
|
|
|
325
320
|
* @category Property Decorators
|
|
326
321
|
*/
|
|
327
322
|
export function date(format = "dd/MM/yyyy", message = DEFAULT_ERROR_MESSAGES.DATE) {
|
|
328
|
-
const key =
|
|
329
|
-
function
|
|
323
|
+
const key = ValidationKeys.DATE;
|
|
324
|
+
function innerDateDec(format, message) {
|
|
330
325
|
const meta = {
|
|
331
326
|
[ValidationKeys.FORMAT]: format,
|
|
332
327
|
message: message,
|
|
333
|
-
types: [Date.name],
|
|
334
328
|
description: `defines the attribute as a date with the format ${format}`,
|
|
335
329
|
async: false,
|
|
336
330
|
};
|
|
337
331
|
return function dateDec(target, propertyKey) {
|
|
338
332
|
const values = new WeakMap();
|
|
339
333
|
Object.defineProperty(target, propertyKey, {
|
|
340
|
-
configurable:
|
|
334
|
+
configurable: true,
|
|
341
335
|
set(newValue) {
|
|
342
336
|
const descriptor = Object.getOwnPropertyDescriptor(this, propertyKey);
|
|
343
337
|
if (!descriptor || descriptor.configurable)
|
|
@@ -362,12 +356,12 @@ export function date(format = "dd/MM/yyyy", message = DEFAULT_ERROR_MESSAGES.DAT
|
|
|
362
356
|
return values.get(this);
|
|
363
357
|
},
|
|
364
358
|
});
|
|
365
|
-
return
|
|
359
|
+
return innerValidationDecorator(date, key, meta)(target, propertyKey);
|
|
366
360
|
};
|
|
367
361
|
}
|
|
368
362
|
return Decoration.for(key)
|
|
369
363
|
.define({
|
|
370
|
-
decorator:
|
|
364
|
+
decorator: innerDateDec,
|
|
371
365
|
args: [format, message],
|
|
372
366
|
})
|
|
373
367
|
.apply();
|
|
@@ -384,17 +378,16 @@ export function date(format = "dd/MM/yyyy", message = DEFAULT_ERROR_MESSAGES.DAT
|
|
|
384
378
|
* @category Property Decorators
|
|
385
379
|
*/
|
|
386
380
|
export function password(pattern = DEFAULT_PATTERNS.PASSWORD.CHAR8_ONE_OF_EACH, message = DEFAULT_ERROR_MESSAGES.PASSWORD) {
|
|
387
|
-
const key =
|
|
381
|
+
const key = ValidationKeys.PASSWORD;
|
|
388
382
|
const meta = {
|
|
389
383
|
[ValidationKeys.PATTERN]: pattern.toString(),
|
|
390
384
|
message: message,
|
|
391
|
-
types: [String.name],
|
|
392
385
|
description: `attribute as a password`,
|
|
393
386
|
async: false,
|
|
394
387
|
};
|
|
395
388
|
return Decoration.for(key)
|
|
396
389
|
.define({
|
|
397
|
-
decorator:
|
|
390
|
+
decorator: innerValidationDecorator,
|
|
398
391
|
args: [password, key, meta],
|
|
399
392
|
})
|
|
400
393
|
.apply();
|
|
@@ -412,11 +405,9 @@ export function password(pattern = DEFAULT_PATTERNS.PASSWORD.CHAR8_ONE_OF_EACH,
|
|
|
412
405
|
* @category Property Decorators
|
|
413
406
|
*/
|
|
414
407
|
export function list(clazz, collection = "Array", message = DEFAULT_ERROR_MESSAGES.LIST) {
|
|
415
|
-
const key =
|
|
408
|
+
const key = ValidationKeys.LIST;
|
|
416
409
|
const meta = {
|
|
417
|
-
clazz: (Array.isArray(clazz)
|
|
418
|
-
? clazz.map((c) => (c.name ? c.name : c))
|
|
419
|
-
: [clazz.name ? clazz.name : clazz]),
|
|
410
|
+
clazz: (Array.isArray(clazz) ? clazz : [clazz]),
|
|
420
411
|
type: collection,
|
|
421
412
|
message: message,
|
|
422
413
|
async: false,
|
|
@@ -424,7 +415,7 @@ export function list(clazz, collection = "Array", message = DEFAULT_ERROR_MESSAG
|
|
|
424
415
|
};
|
|
425
416
|
return Decoration.for(key)
|
|
426
417
|
.define({
|
|
427
|
-
decorator:
|
|
418
|
+
decorator: innerValidationDecorator,
|
|
428
419
|
args: [list, key, meta],
|
|
429
420
|
})
|
|
430
421
|
.apply();
|
|
@@ -466,7 +457,10 @@ export function eq(propertyToCompare, options
|
|
|
466
457
|
[ValidationKeys.EQUALS]: propertyToCompare,
|
|
467
458
|
description: `defines attribute as equal to ${propertyToCompare}`,
|
|
468
459
|
};
|
|
469
|
-
return
|
|
460
|
+
return innerValidationDecorator(eq, ValidationKeys.EQUALS, {
|
|
461
|
+
...equalsOptions,
|
|
462
|
+
async: false,
|
|
463
|
+
});
|
|
470
464
|
}
|
|
471
465
|
/**
|
|
472
466
|
* @summary Declares that the decorated property must be different from another specified property.
|
|
@@ -489,7 +483,7 @@ export function diff(propertyToCompare, options) {
|
|
|
489
483
|
[ValidationKeys.DIFF]: propertyToCompare,
|
|
490
484
|
description: `defines attribute as different to ${propertyToCompare}`,
|
|
491
485
|
};
|
|
492
|
-
return
|
|
486
|
+
return innerValidationDecorator(diff, ValidationKeys.DIFF, {
|
|
493
487
|
...diffOptions,
|
|
494
488
|
async: false,
|
|
495
489
|
});
|
|
@@ -515,7 +509,10 @@ export function lt(propertyToCompare, options) {
|
|
|
515
509
|
[ValidationKeys.LESS_THAN]: propertyToCompare,
|
|
516
510
|
description: `defines attribute as less than to ${propertyToCompare}`,
|
|
517
511
|
};
|
|
518
|
-
return
|
|
512
|
+
return innerValidationDecorator(lt, ValidationKeys.LESS_THAN, {
|
|
513
|
+
...ltOptions,
|
|
514
|
+
async: false,
|
|
515
|
+
});
|
|
519
516
|
}
|
|
520
517
|
/**
|
|
521
518
|
* @summary Declares that the decorated property must be equal or less than another specified property.
|
|
@@ -538,7 +535,10 @@ export function lte(propertyToCompare, options) {
|
|
|
538
535
|
[ValidationKeys.LESS_THAN_OR_EQUAL]: propertyToCompare,
|
|
539
536
|
description: `defines attribute as less or equal to ${propertyToCompare}`,
|
|
540
537
|
};
|
|
541
|
-
return
|
|
538
|
+
return innerValidationDecorator(lte, ValidationKeys.LESS_THAN_OR_EQUAL, {
|
|
539
|
+
...lteOptions,
|
|
540
|
+
async: false,
|
|
541
|
+
});
|
|
542
542
|
}
|
|
543
543
|
/**
|
|
544
544
|
* @summary Declares that the decorated property must be greater than another specified property.
|
|
@@ -561,7 +561,10 @@ export function gt(propertyToCompare, options) {
|
|
|
561
561
|
[ValidationKeys.GREATER_THAN]: propertyToCompare,
|
|
562
562
|
description: `defines attribute as greater than ${propertyToCompare}`,
|
|
563
563
|
};
|
|
564
|
-
return
|
|
564
|
+
return innerValidationDecorator(gt, ValidationKeys.GREATER_THAN, {
|
|
565
|
+
...gtOptions,
|
|
566
|
+
async: false,
|
|
567
|
+
});
|
|
565
568
|
}
|
|
566
569
|
/**
|
|
567
570
|
* @summary Declares that the decorated property must be equal or greater than another specified property.
|
|
@@ -584,6 +587,34 @@ export function gte(propertyToCompare, options) {
|
|
|
584
587
|
[ValidationKeys.GREATER_THAN_OR_EQUAL]: propertyToCompare,
|
|
585
588
|
description: `defines attribute as greater or equal to ${propertyToCompare}`,
|
|
586
589
|
};
|
|
587
|
-
return
|
|
590
|
+
return innerValidationDecorator(gte, ValidationKeys.GREATER_THAN_OR_EQUAL, {
|
|
591
|
+
...gteOptions,
|
|
592
|
+
async: false,
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
/**
|
|
596
|
+
* @summary Defines a list or an object of accepted values for the property
|
|
597
|
+
* @description Validators to validate a decorated property must use key {@link ValidationKeys#ENUM}
|
|
598
|
+
*
|
|
599
|
+
* @param {any[] | Record<any, any>} value
|
|
600
|
+
* @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#ENUM}
|
|
601
|
+
*
|
|
602
|
+
* @function option
|
|
603
|
+
* @category Property Decorators
|
|
604
|
+
*/
|
|
605
|
+
export function option(value, message = DEFAULT_ERROR_MESSAGES.ENUM) {
|
|
606
|
+
const key = ValidationKeys.ENUM;
|
|
607
|
+
const meta = {
|
|
608
|
+
[ValidationKeys.ENUM]: value,
|
|
609
|
+
message: message,
|
|
610
|
+
description: `defines a list or an object of accepted values for the attribute`,
|
|
611
|
+
async: false,
|
|
612
|
+
};
|
|
613
|
+
return Decoration.for(key)
|
|
614
|
+
.define({
|
|
615
|
+
decorator: innerValidationDecorator,
|
|
616
|
+
args: [option, key, meta],
|
|
617
|
+
})
|
|
618
|
+
.apply();
|
|
588
619
|
}
|
|
589
620
|
//# sourceMappingURL=decorators.js.map
|