@awhere/api
Version:
The awesome aWhere API for JavaScript.
80 lines • 2.54 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.dataParser = exports.stringParser = void 0;
var regISO = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/;
var regMsAjax = /^\/Date\((d|-|.*)\)[\/|\\]$/;
var regFalse = /^(false|False|FALSE|no|No|NO)$/;
var regTrue = /^(true|True|TRUE|yes|Yes|YES)$/;
var stringParser = function (value, type) {
if (!type || type === 'boolean') {
if (regTrue.test(value)) {
return true;
}
if (regFalse.test(value)) {
return false;
}
}
if (!type || type === 'date') {
if (regISO.test(value)) {
return new Date(value);
}
if (regMsAjax.test(value)) {
var a = regMsAjax.exec(value);
if (a) {
var b = a[1].split(/[-+,.]/);
return new Date(b[0] ? +b[0] : 0 - +b[1]);
}
}
}
return value;
};
exports.stringParser = stringParser;
var jsonParser = function (key, value) {
if (typeof value === 'string') {
return (0, exports.stringParser)(value);
}
return value;
};
var dataParser = function (value, targetType) {
if (typeof value === 'undefined' || value === null) {
return value;
}
switch (targetType) {
case 'string':
return value === null || value === void 0 ? void 0 : value.toString();
case 'boolean':
if (regTrue.test(value) || /^1$/.test(value)) {
return true;
}
if (regFalse.test(value) || /^0$/.test(value)) {
return false;
}
return false;
case 'object':
if (typeof value === 'object') {
value = JSON.stringify(value);
}
return JSON.parse(value, jsonParser);
case 'number':
if (typeof value === 'number') {
return value;
}
else if (typeof value === 'string') {
return Number(value);
}
break;
case 'date':
if (value instanceof Date) {
return value;
}
else if (typeof value === 'number') {
return new Date(value);
}
else if (typeof value === 'string') {
return (0, exports.stringParser)(value, 'date');
}
break;
}
};
exports.dataParser = dataParser;
//# sourceMappingURL=parser.js.map
;