UNPKG

@vulcan-sql/core

Version:
49 lines 1.71 kB
"use strict"; 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