serializer.d.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. export declare class Serializer {
  2. readonly modelMappers: {
  3. [key: string]: any;
  4. };
  5. readonly isXML?: boolean | undefined;
  6. constructor(modelMappers?: {
  7. [key: string]: any;
  8. }, isXML?: boolean | undefined);
  9. validateConstraints(mapper: Mapper, value: any, objectName: string): void;
  10. /**
  11. * Serialize the given object based on its metadata defined in the mapper
  12. *
  13. * @param {Mapper} mapper The mapper which defines the metadata of the serializable object
  14. *
  15. * @param {object|string|Array|number|boolean|Date|stream} object A valid Javascript object to be serialized
  16. *
  17. * @param {string} objectName Name of the serialized object
  18. *
  19. * @returns {object|string|Array|number|boolean|Date|stream} A valid serialized Javascript object
  20. */
  21. serialize(mapper: Mapper, object: any, objectName?: string): any;
  22. /**
  23. * Deserialize the given object based on its metadata defined in the mapper
  24. *
  25. * @param {object} mapper The mapper which defines the metadata of the serializable object
  26. *
  27. * @param {object|string|Array|number|boolean|Date|stream} responseBody A valid Javascript entity to be deserialized
  28. *
  29. * @param {string} objectName Name of the deserialized object
  30. *
  31. * @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object
  32. */
  33. deserialize(mapper: Mapper, responseBody: any, objectName: string): any;
  34. }
  35. export interface MapperConstraints {
  36. InclusiveMaximum?: number;
  37. ExclusiveMaximum?: number;
  38. InclusiveMinimum?: number;
  39. ExclusiveMinimum?: number;
  40. MaxLength?: number;
  41. MinLength?: number;
  42. Pattern?: RegExp;
  43. MaxItems?: number;
  44. MinItems?: number;
  45. UniqueItems?: true;
  46. MultipleOf?: number;
  47. }
  48. export declare type MapperType = SimpleMapperType | CompositeMapperType | SequenceMapperType | DictionaryMapperType | EnumMapperType;
  49. export interface SimpleMapperType {
  50. name: "Base64Url" | "Boolean" | "ByteArray" | "Date" | "DateTime" | "DateTimeRfc1123" | "Object" | "Stream" | "String" | "TimeSpan" | "UnixTime" | "Uuid" | "Number" | "any";
  51. }
  52. export interface CompositeMapperType {
  53. name: "Composite";
  54. className?: string;
  55. modelProperties?: {
  56. [propertyName: string]: Mapper;
  57. };
  58. additionalProperties?: Mapper;
  59. uberParent?: string;
  60. polymorphicDiscriminator?: PolymorphicDiscriminator;
  61. }
  62. export interface SequenceMapperType {
  63. name: "Sequence";
  64. element: Mapper;
  65. }
  66. export interface DictionaryMapperType {
  67. name: "Dictionary";
  68. value: Mapper;
  69. }
  70. export interface EnumMapperType {
  71. name: "Enum";
  72. allowedValues: any[];
  73. }
  74. export interface BaseMapper {
  75. xmlName?: string;
  76. xmlIsAttribute?: boolean;
  77. xmlElementName?: string;
  78. xmlIsWrapped?: boolean;
  79. readOnly?: boolean;
  80. isConstant?: boolean;
  81. required?: boolean;
  82. nullable?: boolean;
  83. serializedName?: string;
  84. type: MapperType;
  85. defaultValue?: any;
  86. constraints?: MapperConstraints;
  87. }
  88. export declare type Mapper = BaseMapper | CompositeMapper | SequenceMapper | DictionaryMapper | EnumMapper;
  89. export interface PolymorphicDiscriminator {
  90. serializedName: string;
  91. clientName: string;
  92. [key: string]: string;
  93. }
  94. export interface CompositeMapper extends BaseMapper {
  95. type: CompositeMapperType;
  96. }
  97. export interface SequenceMapper extends BaseMapper {
  98. type: SequenceMapperType;
  99. }
  100. export interface DictionaryMapper extends BaseMapper {
  101. type: DictionaryMapperType;
  102. headerCollectionPrefix?: string;
  103. }
  104. export interface EnumMapper extends BaseMapper {
  105. type: EnumMapperType;
  106. }
  107. export interface UrlParameterValue {
  108. value: string;
  109. skipUrlEncoding: boolean;
  110. }
  111. export declare function serializeObject(toSerialize: any): any;
  112. export declare const MapperType: {
  113. Base64Url: "Base64Url";
  114. Boolean: "Boolean";
  115. ByteArray: "ByteArray";
  116. Date: "Date";
  117. DateTime: "DateTime";
  118. DateTimeRfc1123: "DateTimeRfc1123";
  119. Object: "Object";
  120. Stream: "Stream";
  121. String: "String";
  122. TimeSpan: "TimeSpan";
  123. UnixTime: "UnixTime";
  124. Number: "Number";
  125. Composite: "Composite";
  126. Sequence: "Sequence";
  127. Dictionary: "Dictionary";
  128. Enum: "Enum";
  129. };
  130. //# sourceMappingURL=serializer.d.ts.map