objectypes
Version:
A type-safe library to transform and validate objects
32 lines (31 loc) • 770 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.castValue = void 0;
function castValue(expectedType, value) {
if (value === undefined) {
return value;
}
switch (expectedType) {
case 'Number': {
return castNumber(value);
}
case 'Date': {
return castDate(value);
}
default:
return value;
}
}
exports.castValue = castValue;
function castNumber(value) {
if (isNaN(value)) {
throw new Error(`Value '${value}' is not a valid number`);
}
return Number(value);
}
function castDate(value) {
if (!Date.parse(value)) {
throw new Error(`Value '${value}' is not a valid Date`);
}
return new Date(value);
}