UNPKG

4.27 kBTypeScriptView Raw
1export 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}
35export 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}
48export declare type MapperType = SimpleMapperType | CompositeMapperType | SequenceMapperType | DictionaryMapperType | EnumMapperType;
49export interface SimpleMapperType {
50 name: "Base64Url" | "Boolean" | "ByteArray" | "Date" | "DateTime" | "DateTimeRfc1123" | "Object" | "Stream" | "String" | "TimeSpan" | "UnixTime" | "Uuid" | "Number" | "any";
51}
52export 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}
62export interface SequenceMapperType {
63 name: "Sequence";
64 element: Mapper;
65}
66export interface DictionaryMapperType {
67 name: "Dictionary";
68 value: Mapper;
69}
70export interface EnumMapperType {
71 name: "Enum";
72 allowedValues: any[];
73}
74export 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}
88export declare type Mapper = BaseMapper | CompositeMapper | SequenceMapper | DictionaryMapper | EnumMapper;
89export interface PolymorphicDiscriminator {
90 serializedName: string;
91 clientName: string;
92 [key: string]: string;
93}
94export interface CompositeMapper extends BaseMapper {
95 type: CompositeMapperType;
96}
97export interface SequenceMapper extends BaseMapper {
98 type: SequenceMapperType;
99}
100export interface DictionaryMapper extends BaseMapper {
101 type: DictionaryMapperType;
102 headerCollectionPrefix?: string;
103}
104export interface EnumMapper extends BaseMapper {
105 type: EnumMapperType;
106}
107export interface UrlParameterValue {
108 value: string;
109 skipUrlEncoding: boolean;
110}
111export declare function serializeObject(toSerialize: any): any;
112export 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
\No newline at end of file