@vulcan-sql/core
Version:
Core package of VulcanSQL
49 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeStringValue = exports.canBeNormalized = void 0;
const lodash_1 = require("lodash");
const errors_1 = require("./errors");
const canBeNormalized = (type) => {
return (['number', 'boolean', 'string', 'date'].indexOf(type.toLowerCase()) !== -1);
};
exports.canBeNormalized = canBeNormalized;
const normalizeStringValue = (value, dataName, dataType) => {
if ((0, lodash_1.isUndefined)(value)) {
return undefined;
}
switch (dataType.toLowerCase()) {
case 'number': {
if (value === '') {
throw new errors_1.UserError(`${dataName} must be number`);
}
const valueNumber = +value;
if (isNaN(valueNumber)) {
throw new errors_1.UserError(`${dataName} must be number`);
}
return valueNumber;
}
case 'boolean': {
if (value === 'true' || value === '1' || value === '') {
return true;
}
else if (value === 'false' || value === '0') {
return false;
}
else {
throw new errors_1.UserError(`${dataName} must be boolean`);
}
}
case 'date': {
const parsedDate = new Date(value);
if (Number.isNaN(parsedDate.getTime())) {
throw new errors_1.UserError(`${dataName} must be date`);
}
return parsedDate;
}
case 'string':
default:
return value;
}
};
exports.normalizeStringValue = normalizeStringValue;
//# sourceMappingURL=normalizedStringValue.js.map