@sap-cloud-sdk/odata-v4
Version:
SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.
59 lines • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultDeSerializers = void 0;
const internal_1 = require("@sap-cloud-sdk/odata-common/internal");
const util_1 = require("@sap-cloud-sdk/util");
const converters_1 = require("./converters");
/**
* Default (de-)serializers without `null` and `undefined` handling.
*/
const defaultDeSerializersRaw = {
...internal_1.defaultDeSerializersRaw,
'Edm.Date': {
deserialize: converters_1.deserializeDateToMoment,
serialize: converters_1.serializeToDate,
serializeToUri: (value, serialize) => serialize(value)
},
'Edm.DateTimeOffset': {
deserialize: converters_1.deserializeDateTimeOffsetToMoment,
serialize: (value, precision) => (0, converters_1.serializeToDateTimeOffset)(value, precision),
serializeToUri: (value, serialize) => serialize(value)
},
'Edm.Duration': {
deserialize: converters_1.deserializeDurationToMoment,
serialize: converters_1.serializeToDuration,
serializeToUri: (value, serialize) => `duration'${serialize(value)}'`
},
'Edm.TimeOfDay': {
deserialize: converters_1.deserializeToTime,
serialize: converters_1.serializeToTime,
serializeToUri: (value, serialize) => serialize(value)
},
'Edm.Enum': {
deserialize: util_1.identity,
serialize: util_1.identity,
serializeToUri: (value, serialize) => (0, internal_1.convertToUriForEdmString)(serialize(value))
},
/* DeSerializers with v4 specific URI serializer defaults. */
'Edm.Decimal': {
deserialize: internal_1.defaultDeSerializersRaw['Edm.Decimal'].deserialize,
serialize: value => {
const primitiveNumber = typeof value === 'number' ? value : value.toNumber();
if (primitiveNumber <= Number.MAX_SAFE_INTEGER &&
primitiveNumber >= Number.MIN_SAFE_INTEGER) {
return primitiveNumber;
}
return internal_1.defaultDeSerializersRaw['Edm.Decimal'].serialize(value);
},
serializeToUri: (value, serialize) => String(serialize(value))
},
'Edm.Guid': {
...internal_1.defaultDeSerializersRaw['Edm.Guid'],
serializeToUri: (value, serialize) => serialize(value)
}
};
/**
* The default (de-)serializers.
*/
exports.defaultDeSerializers = (0, internal_1.wrapDefaultDeSerializers)(defaultDeSerializersRaw);
//# sourceMappingURL=default-de-serializers.js.map