UNPKG

@awhere/api

Version:

The awesome aWhere API for JavaScript.

80 lines 2.54 kB
"use strict"; 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