UNPKG

@sap-cloud-sdk/core

Version:
99 lines 3.21 kB
"use strict"; /* eslint-disable valid-jsdoc */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.serializersCommom = exports.serializersCommon = exports.deserializersCommon = exports.fromNumberToEdm = exports.fromEdmToNumber = exports.toGuid = void 0; var bignumber_js_1 = __importDefault(require("bignumber.js")); var util_1 = require("@sap-cloud-sdk/util"); var toNumber = function (value) { return Number(value); }; var toBigNumber = function (value) { return new bignumber_js_1.default(value); }; var toGuid = function (value) { var guids = /[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}/.exec(value); if (!guids || !guids.length) { throw new Error("Failed to parse guid from '".concat(value, "'.")); } return guids[0]; }; exports.toGuid = toGuid; var fromBigNumber = function (value) { return value.toString(); }; /** * @hidden */ function fromEdmToNumber(value) { if (typeof value === 'number') { return value; } if (value.toLowerCase() === 'inf') { return Number.POSITIVE_INFINITY; } if (value.toLowerCase() === '-inf') { return Number.NEGATIVE_INFINITY; } if (value.toLowerCase() === 'nan') { return Number.NaN; } var num = Number(value); if (Number.isNaN(num)) { throw new Error("EDM->TS: Cannot create number from input \"".concat(value, "\"")); } return num; } exports.fromEdmToNumber = fromEdmToNumber; /** * @hidden */ function fromNumberToEdm(value) { if (value === Number.POSITIVE_INFINITY) { return 'INF'; } if (value === Number.NEGATIVE_INFINITY) { return '-INF'; } if (Number.isNaN(value)) { return 'NaN'; } if (typeof value === 'number') { return value; } throw new Error("TS->EDM: Cannot create number from input \"".concat(value, "\"")); } exports.fromNumberToEdm = fromNumberToEdm; exports.deserializersCommon = { 'Edm.Binary': util_1.identity, 'Edm.Boolean': util_1.identity, 'Edm.Byte': toNumber, 'Edm.Decimal': toBigNumber, 'Edm.Double': fromEdmToNumber, 'Edm.Float': fromEdmToNumber, 'Edm.Int16': toNumber, 'Edm.Int32': toNumber, 'Edm.Int64': toBigNumber, 'Edm.Guid': exports.toGuid, 'Edm.SByte': toNumber, 'Edm.Single': fromEdmToNumber, 'Edm.String': util_1.identity, 'Edm.Any': util_1.identity }; exports.serializersCommon = { 'Edm.Binary': util_1.identity, 'Edm.Boolean': util_1.identity, 'Edm.Byte': toNumber, 'Edm.Decimal': fromBigNumber, 'Edm.Double': fromNumberToEdm, 'Edm.Float': fromNumberToEdm, 'Edm.Int16': toNumber, 'Edm.Int32': toNumber, 'Edm.Int64': fromBigNumber, 'Edm.Guid': util_1.identity, 'Edm.SByte': toNumber, 'Edm.Single': fromNumberToEdm, 'Edm.String': util_1.identity, 'Edm.Any': util_1.identity }; /** @deprecated Since v1.27.0. Use [[serializersCommon]] instead. */ exports.serializersCommom = exports.serializersCommon; //# sourceMappingURL=payload-value-converter.js.map