UNPKG

objectypes

Version:

A type-safe library to transform and validate objects

21 lines (20 loc) 932 B
"use strict"; 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;