objectypes
Version:
A type-safe library to transform and validate objects
21 lines (20 loc) • 932 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processValueType = void 0;
const cast_value_1 = require("./cast-value");
function processValueType(propertyMetadata, value) {
const { name, target, propertyKey, defaultValue } = propertyMetadata;
const valueWithDefaultValue = value !== null && value !== void 0 ? value : defaultValue;
const objPropName = name !== null && name !== void 0 ? name : propertyKey;
const expectedType = Reflect.getMetadata('design:type', target, propertyKey).name;
try {
const castedValue = (0, cast_value_1.castValue)(expectedType, valueWithDefaultValue);
return castedValue;
}
catch (err) {
throw new Error(
// eslint-disable-next-line max-len
`Property ${objPropName} type is not assignable to ${expectedType}. Found ${valueWithDefaultValue}`);
}
}
exports.processValueType = processValueType;