UNPKG

1.42 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.IsInstance = exports.isInstance = exports.IS_INSTANCE = void 0;
4const ValidateBy_1 = require("../common/ValidateBy");
5exports.IS_INSTANCE = 'isInstance';
6/**
7 * Checks if the value is an instance of the specified object.
8 */
9function isInstance(object, targetTypeConstructor) {
10 return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor);
11}
12exports.isInstance = isInstance;
13/**
14 * Checks if the value is an instance of the specified object.
15 */
16function IsInstance(targetType, validationOptions) {
17 return (0, ValidateBy_1.ValidateBy)({
18 name: exports.IS_INSTANCE,
19 constraints: [targetType],
20 validator: {
21 validate: (value, args) => isInstance(value, args.constraints[0]),
22 defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix, args) => {
23 if (args.constraints[0]) {
24 return eachPrefix + `$property must be an instance of ${args.constraints[0].name}`;
25 }
26 else {
27 return eachPrefix + `${exports.IS_INSTANCE} decorator expects and object as value, but got falsy value.`;
28 }
29 }, validationOptions),
30 },
31 }, validationOptions);
32}
33exports.IsInstance = IsInstance;
34//# sourceMappingURL=IsInstance.js.map
\No newline at end of file