UNPKG

3.2 kBJavaScriptView Raw
1"use strict";
2/* eslint-disable valid-jsdoc */
3var __importDefault = (this && this.__importDefault) || function (mod) {
4 return (mod && mod.__esModule) ? mod : { "default": mod };
5};
6Object.defineProperty(exports, "__esModule", { value: true });
7exports.serializersCommom = exports.serializersCommon = exports.deserializersCommon = exports.fromNumberToEdm = exports.fromEdmToNumber = exports.toGuid = void 0;
8var bignumber_js_1 = __importDefault(require("bignumber.js"));
9var util_1 = require("@sap-cloud-sdk/util");
10var toNumber = function (value) { return Number(value); };
11var toBigNumber = function (value) { return new bignumber_js_1.default(value); };
12var toGuid = function (value) {
13 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);
14 if (!guids || !guids.length) {
15 throw new Error("Failed to parse guid from '" + value + "'.");
16 }
17 return guids[0];
18};
19exports.toGuid = toGuid;
20var fromBigNumber = function (value) {
21 return value.toString();
22};
23/**
24 * @hidden
25 */
26function fromEdmToNumber(value) {
27 if (typeof value === 'number') {
28 return value;
29 }
30 if (value.toLowerCase() === 'inf') {
31 return Number.POSITIVE_INFINITY;
32 }
33 if (value.toLowerCase() === '-inf') {
34 return Number.NEGATIVE_INFINITY;
35 }
36 if (value.toLowerCase() === 'nan') {
37 return Number.NaN;
38 }
39 var num = Number(value);
40 if (Number.isNaN(num)) {
41 throw new Error("EDM->TS: Cannot create number from input \"" + value + "\"");
42 }
43 return num;
44}
45exports.fromEdmToNumber = fromEdmToNumber;
46/**
47 * @hidden
48 */
49function fromNumberToEdm(value) {
50 if (value === Number.POSITIVE_INFINITY) {
51 return 'INF';
52 }
53 if (value === Number.NEGATIVE_INFINITY) {
54 return '-INF';
55 }
56 if (Number.isNaN(value)) {
57 return 'NaN';
58 }
59 if (typeof value === 'number') {
60 return value;
61 }
62 throw new Error("TS->EDM: Cannot create number from input \"" + value + "\"");
63}
64exports.fromNumberToEdm = fromNumberToEdm;
65exports.deserializersCommon = {
66 'Edm.Binary': util_1.identity,
67 'Edm.Boolean': util_1.identity,
68 'Edm.Byte': toNumber,
69 'Edm.Decimal': toBigNumber,
70 'Edm.Double': fromEdmToNumber,
71 'Edm.Float': fromEdmToNumber,
72 'Edm.Int16': toNumber,
73 'Edm.Int32': toNumber,
74 'Edm.Int64': toBigNumber,
75 'Edm.Guid': exports.toGuid,
76 'Edm.SByte': toNumber,
77 'Edm.Single': fromEdmToNumber,
78 'Edm.String': util_1.identity,
79 'Edm.Any': util_1.identity
80};
81exports.serializersCommon = {
82 'Edm.Binary': util_1.identity,
83 'Edm.Boolean': util_1.identity,
84 'Edm.Byte': toNumber,
85 'Edm.Decimal': fromBigNumber,
86 'Edm.Double': fromNumberToEdm,
87 'Edm.Float': fromNumberToEdm,
88 'Edm.Int16': toNumber,
89 'Edm.Int32': toNumber,
90 'Edm.Int64': fromBigNumber,
91 'Edm.Guid': util_1.identity,
92 'Edm.SByte': toNumber,
93 'Edm.Single': fromNumberToEdm,
94 'Edm.String': util_1.identity,
95 'Edm.Any': util_1.identity
96};
97/** @deprecated Since v1.27.0. Use [[serializersCommon]] instead. */
98exports.serializersCommom = exports.serializersCommon;
99//# sourceMappingURL=payload-value-converter.js.map
\No newline at end of file