indicative-utils
Version:
Reusable utilities for indicative validation library
35 lines (34 loc) • 1.01 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const toDate_1 = require("./toDate");
const toString_1 = require("./toString");
const toBoolean_1 = require("./toBoolean");
const toInt_1 = require("./toInt");
function cast(value, toType, errorMessage) {
if (typeof (value) === toType) {
return value;
}
let castedValue = null;
switch (toType) {
case 'float':
castedValue = toInt_1.toInt(value, true);
break;
case 'string':
castedValue = toString_1.toString(value);
break;
case 'integer':
castedValue = toInt_1.toInt(value);
break;
case 'date':
castedValue = toDate_1.toDate(value);
break;
case 'boolean':
castedValue = toBoolean_1.toBoolean(value);
break;
}
if (castedValue === null && errorMessage) {
throw new Error(errorMessage);
}
return castedValue;
}
exports.cast = cast;
;