1 | "use strict";
|
2 |
|
3 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
4 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
5 | };
|
6 | Object.defineProperty(exports, "__esModule", { value: true });
|
7 | exports.serializersCommom = exports.serializersCommon = exports.deserializersCommon = exports.fromNumberToEdm = exports.fromEdmToNumber = exports.toGuid = void 0;
|
8 | var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
9 | var util_1 = require("@sap-cloud-sdk/util");
|
10 | var toNumber = function (value) { return Number(value); };
|
11 | var toBigNumber = function (value) { return new bignumber_js_1.default(value); };
|
12 | var 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 | };
|
19 | exports.toGuid = toGuid;
|
20 | var fromBigNumber = function (value) {
|
21 | return value.toString();
|
22 | };
|
23 |
|
24 |
|
25 |
|
26 | function 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 | }
|
45 | exports.fromEdmToNumber = fromEdmToNumber;
|
46 |
|
47 |
|
48 |
|
49 | function 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 | }
|
64 | exports.fromNumberToEdm = fromNumberToEdm;
|
65 | exports.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 | };
|
81 | exports.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 |
|
98 | exports.serializersCommom = exports.serializersCommon;
|
99 |
|
\ | No newline at end of file |