@sap-cloud-sdk/odata-v4
Version:
SAP Cloud SDK for JavaScript common functions of OData client generator and OpenAPI clint generator.
25 lines (24 loc) • 2.87 kB
TypeScript
import type { Time, CustomOrDefaultType as CustomOrDefaultTypeCommon } from '@sap-cloud-sdk/odata-common';
import type BigNumber from 'bignumber.js';
import type moment from 'moment';
import type { DeSerializers } from './de-serializers';
import type { DefaultDeSerializers } from './default-de-serializers';
/**
* Get a complete set of (de-)serializers, that consists of the given partial custom (de-)serializers and default (de-)serializers (aka. default (de-)serializers merged with custom (de-)serializers).
* The custom (de-)serializers are merged with the default (de-)serializers, while custom (de-)serializers take precedence.
* @param customDeSerializers - Custom (de-)serialization functions.
* @returns A full set of (de-)serialization functions, that combines custom and default (de-)serializers.
*/
export declare function mergeDefaultDeSerializersWith<BinaryT = string, BooleanT = boolean, ByteT = number, DecimalT = BigNumber, DoubleT = number, FloatT = number, Int16T = number, Int32T = number, Int64T = BigNumber, GuidT = string, SByteT = number, SingleT = number, StringT = string, AnyT = any, DateT = moment.Moment, DateTimeOffsetT = moment.Moment, DurationT = moment.Duration, TimeOfDayT = Time, EnumT = any>(customDeSerializers: Partial<DeSerializers<BinaryT, BooleanT, ByteT, DecimalT, DoubleT, FloatT, Int16T, Int32T, Int64T, GuidT, SByteT, SingleT, StringT, AnyT, DateT, DateTimeOffsetT, DurationT, TimeOfDayT, EnumT>>): CustomDeSerializers<typeof customDeSerializers>;
/**
* Infers the deserialized type for an EDM type, based on custom (de-)serializers.
* If the custom (de-)serializers specify a type for the given EDM type, this type is inferred.
* Otherwise the given DefaultType is used.
* @template CustomDeSerializerT - Type of the custom (de-)serializers.
* @template EdmT - The EDM type to infer the type for.
*/
export type CustomOrDefaultType<CustomDeSerializerT, EdmT> = CustomOrDefaultTypeCommon<CustomDeSerializerT, EdmT, DefaultDeSerializers>;
/**
* Type of the full set of (de-)serialization functions, that include custom (de-)serializers (aka. default (de-)serializers type merged with custom (de-)serializers type).
*/
export type CustomDeSerializers<T> = DeSerializers<CustomOrDefaultType<T, 'Edm.Binary'>, CustomOrDefaultType<T, 'Edm.Boolean'>, CustomOrDefaultType<T, 'Edm.Byte'>, CustomOrDefaultType<T, 'Edm.Decimal'>, CustomOrDefaultType<T, 'Edm.Double'>, CustomOrDefaultType<T, 'Edm.Float'>, CustomOrDefaultType<T, 'Edm.Int16'>, CustomOrDefaultType<T, 'Edm.Int32'>, CustomOrDefaultType<T, 'Edm.Int64'>, CustomOrDefaultType<T, 'Edm.Guid'>, CustomOrDefaultType<T, 'Edm.SByte'>, CustomOrDefaultType<T, 'Edm.Single'>, CustomOrDefaultType<T, 'Edm.String'>, CustomOrDefaultType<T, 'Edm.Any'>, CustomOrDefaultType<T, 'Edm.DateTime'>, CustomOrDefaultType<T, 'Edm.DateTimeOffset'>, CustomOrDefaultType<T, 'Edm.Time'>>;