@sap-cloud-sdk/odata-common 2.0.0-alpha.0 → 2.0.0-beta.1-20220107142408.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/batch-response.d.ts +11 -10
  2. package/dist/batch-response.d.ts.map +1 -1
  3. package/dist/de-serializers/custom-de-serializers.d.ts +15 -1
  4. package/dist/de-serializers/custom-de-serializers.d.ts.map +1 -1
  5. package/dist/de-serializers/custom-de-serializers.js +16 -0
  6. package/dist/de-serializers/custom-de-serializers.js.map +1 -1
  7. package/dist/de-serializers/de-serializers.d.ts +19 -3
  8. package/dist/de-serializers/de-serializers.d.ts.map +1 -1
  9. package/dist/de-serializers/de-serializers.js +31 -0
  10. package/dist/de-serializers/de-serializers.js.map +1 -1
  11. package/dist/de-serializers/default-de-serializers.d.ts +7 -9
  12. package/dist/de-serializers/default-de-serializers.d.ts.map +1 -1
  13. package/dist/de-serializers/default-de-serializers.js +26 -8
  14. package/dist/de-serializers/default-de-serializers.js.map +1 -1
  15. package/dist/de-serializers/uri-value-converter.d.ts +1 -3
  16. package/dist/de-serializers/uri-value-converter.d.ts.map +1 -1
  17. package/dist/de-serializers/uri-value-converter.js +3 -7
  18. package/dist/de-serializers/uri-value-converter.js.map +1 -1
  19. package/dist/entity-base.d.ts +34 -22
  20. package/dist/entity-base.d.ts.map +1 -1
  21. package/dist/entity-base.js +24 -18
  22. package/dist/entity-base.js.map +1 -1
  23. package/dist/entity-builder.d.ts +10 -6
  24. package/dist/entity-builder.d.ts.map +1 -1
  25. package/dist/entity-builder.js +19 -18
  26. package/dist/entity-builder.js.map +1 -1
  27. package/dist/entity-deserializer.d.ts +9 -9
  28. package/dist/entity-deserializer.d.ts.map +1 -1
  29. package/dist/entity-deserializer.js +15 -14
  30. package/dist/entity-deserializer.js.map +1 -1
  31. package/dist/entity-serializer.d.ts +8 -10
  32. package/dist/entity-serializer.d.ts.map +1 -1
  33. package/dist/entity-serializer.js +12 -10
  34. package/dist/entity-serializer.js.map +1 -1
  35. package/dist/expandable.d.ts +2 -1
  36. package/dist/expandable.d.ts.map +1 -1
  37. package/dist/filter/boolean-filter-function.d.ts +1 -1
  38. package/dist/filter/boolean-filter-function.d.ts.map +1 -1
  39. package/dist/filter/boolean-filter-function.js.map +1 -1
  40. package/dist/filter/collection-filter-function.d.ts +1 -2
  41. package/dist/filter/collection-filter-function.d.ts.map +1 -1
  42. package/dist/filter/collection-filter-function.js.map +1 -1
  43. package/dist/filter/filter-function-base.d.ts +5 -5
  44. package/dist/filter/filter-function-base.d.ts.map +1 -1
  45. package/dist/filter/filter-function-base.js.map +1 -1
  46. package/dist/filter/filter-functions.d.ts +27 -11
  47. package/dist/filter/filter-functions.d.ts.map +1 -1
  48. package/dist/filter/filter-functions.js +39 -32
  49. package/dist/filter/filter-functions.js.map +1 -1
  50. package/dist/filter/filter-lambda-expression.d.ts +5 -4
  51. package/dist/filter/filter-lambda-expression.d.ts.map +1 -1
  52. package/dist/filter/filter-lambda-expression.js.map +1 -1
  53. package/dist/filter/filter-link.d.ts +8 -10
  54. package/dist/filter/filter-link.d.ts.map +1 -1
  55. package/dist/filter/filter-link.js.map +1 -1
  56. package/dist/filter/filter-list.d.ts +8 -10
  57. package/dist/filter/filter-list.d.ts.map +1 -1
  58. package/dist/filter/filter-list.js.map +1 -1
  59. package/dist/filter/filter.d.ts +9 -12
  60. package/dist/filter/filter.d.ts.map +1 -1
  61. package/dist/filter/filter.js +3 -6
  62. package/dist/filter/filter.js.map +1 -1
  63. package/dist/filter/filterable.d.ts +8 -7
  64. package/dist/filter/filterable.d.ts.map +1 -1
  65. package/dist/filter/filterable.js.map +1 -1
  66. package/dist/filter/orderable-filter-function.d.ts +5 -6
  67. package/dist/filter/orderable-filter-function.d.ts.map +1 -1
  68. package/dist/filter/orderable-filter-function.js.map +1 -1
  69. package/dist/filter/unary-filter.d.ts +3 -3
  70. package/dist/filter/unary-filter.d.ts.map +1 -1
  71. package/dist/filter/unary-filter.js.map +1 -1
  72. package/dist/internal.d.ts +0 -1
  73. package/dist/internal.d.ts.map +1 -1
  74. package/dist/internal.js +0 -1
  75. package/dist/internal.js.map +1 -1
  76. package/dist/order/order-link.d.ts +2 -2
  77. package/dist/order/order-link.d.ts.map +1 -1
  78. package/dist/order/order-link.js.map +1 -1
  79. package/dist/order/order.d.ts +2 -1
  80. package/dist/order/order.d.ts.map +1 -1
  81. package/dist/order/order.js.map +1 -1
  82. package/dist/order/orderable.d.ts +4 -3
  83. package/dist/order/orderable.d.ts.map +1 -1
  84. package/dist/order/orderable.js.map +1 -1
  85. package/dist/properties-util.d.ts +3 -3
  86. package/dist/properties-util.d.ts.map +1 -1
  87. package/dist/properties-util.js +5 -4
  88. package/dist/properties-util.js.map +1 -1
  89. package/dist/request/odata-count-request-config.d.ts +5 -4
  90. package/dist/request/odata-count-request-config.d.ts.map +1 -1
  91. package/dist/request/odata-count-request-config.js +3 -3
  92. package/dist/request/odata-count-request-config.js.map +1 -1
  93. package/dist/request/odata-create-request-config.d.ts +8 -6
  94. package/dist/request/odata-create-request-config.d.ts.map +1 -1
  95. package/dist/request/odata-create-request-config.js +7 -6
  96. package/dist/request/odata-create-request-config.js.map +1 -1
  97. package/dist/request/odata-delete-request-config.d.ts +8 -7
  98. package/dist/request/odata-delete-request-config.d.ts.map +1 -1
  99. package/dist/request/odata-delete-request-config.js +6 -5
  100. package/dist/request/odata-delete-request-config.js.map +1 -1
  101. package/dist/request/odata-function-import-request-config.d.ts +4 -3
  102. package/dist/request/odata-function-import-request-config.d.ts.map +1 -1
  103. package/dist/request/odata-function-import-request-config.js.map +1 -1
  104. package/dist/request/odata-get-all-request-config.d.ts +10 -8
  105. package/dist/request/odata-get-all-request-config.d.ts.map +1 -1
  106. package/dist/request/odata-get-all-request-config.js +8 -7
  107. package/dist/request/odata-get-all-request-config.js.map +1 -1
  108. package/dist/request/odata-get-by-key-request-config.d.ts +11 -9
  109. package/dist/request/odata-get-by-key-request-config.d.ts.map +1 -1
  110. package/dist/request/odata-get-by-key-request-config.js +7 -6
  111. package/dist/request/odata-get-by-key-request-config.js.map +1 -1
  112. package/dist/request/odata-request-traits.d.ts +8 -7
  113. package/dist/request/odata-request-traits.d.ts.map +1 -1
  114. package/dist/request/odata-request-traits.js.map +1 -1
  115. package/dist/request/odata-update-request-config.d.ts +8 -7
  116. package/dist/request/odata-update-request-config.d.ts.map +1 -1
  117. package/dist/request/odata-update-request-config.js +6 -5
  118. package/dist/request/odata-update-request-config.js.map +1 -1
  119. package/dist/request-builder/batch/batch-change-set.d.ts +8 -4
  120. package/dist/request-builder/batch/batch-change-set.d.ts.map +1 -1
  121. package/dist/request-builder/batch/batch-change-set.js.map +1 -1
  122. package/dist/request-builder/batch/batch-request-builder.d.ts +8 -5
  123. package/dist/request-builder/batch/batch-request-builder.d.ts.map +1 -1
  124. package/dist/request-builder/batch/batch-request-builder.js +16 -2
  125. package/dist/request-builder/batch/batch-request-builder.js.map +1 -1
  126. package/dist/request-builder/batch/batch-request-serializer.d.ts +3 -2
  127. package/dist/request-builder/batch/batch-request-serializer.d.ts.map +1 -1
  128. package/dist/request-builder/batch/batch-request-serializer.js.map +1 -1
  129. package/dist/request-builder/batch/batch-response-deserializer.d.ts +10 -9
  130. package/dist/request-builder/batch/batch-response-deserializer.d.ts.map +1 -1
  131. package/dist/request-builder/batch/batch-response-deserializer.js +16 -14
  132. package/dist/request-builder/batch/batch-response-deserializer.js.map +1 -1
  133. package/dist/request-builder/count-request-builder.d.ts +5 -4
  134. package/dist/request-builder/count-request-builder.d.ts.map +1 -1
  135. package/dist/request-builder/count-request-builder.js +1 -1
  136. package/dist/request-builder/count-request-builder.js.map +1 -1
  137. package/dist/request-builder/create-request-builder-base.d.ts +14 -8
  138. package/dist/request-builder/create-request-builder-base.d.ts.map +1 -1
  139. package/dist/request-builder/create-request-builder-base.js +13 -9
  140. package/dist/request-builder/create-request-builder-base.js.map +1 -1
  141. package/dist/request-builder/delete-request-builder-base.d.ts +9 -8
  142. package/dist/request-builder/delete-request-builder-base.d.ts.map +1 -1
  143. package/dist/request-builder/delete-request-builder-base.js +7 -7
  144. package/dist/request-builder/delete-request-builder-base.js.map +1 -1
  145. package/dist/request-builder/get-all-request-builder-base.d.ts +10 -7
  146. package/dist/request-builder/get-all-request-builder-base.d.ts.map +1 -1
  147. package/dist/request-builder/get-all-request-builder-base.js +6 -4
  148. package/dist/request-builder/get-all-request-builder-base.js.map +1 -1
  149. package/dist/request-builder/get-by-key-request-builder-base.d.ts +11 -9
  150. package/dist/request-builder/get-by-key-request-builder-base.d.ts.map +1 -1
  151. package/dist/request-builder/get-by-key-request-builder-base.js +7 -6
  152. package/dist/request-builder/get-by-key-request-builder-base.js.map +1 -1
  153. package/dist/request-builder/get-request-builder-base.d.ts +10 -8
  154. package/dist/request-builder/get-request-builder-base.d.ts.map +1 -1
  155. package/dist/request-builder/get-request-builder-base.js +3 -4
  156. package/dist/request-builder/get-request-builder-base.js.map +1 -1
  157. package/dist/request-builder/request-builder-base.js +1 -1
  158. package/dist/request-builder/request-builder.d.ts +6 -6
  159. package/dist/request-builder/request-builder.d.ts.map +1 -1
  160. package/dist/request-builder/request-builder.js +2 -2
  161. package/dist/request-builder/request-builder.js.map +1 -1
  162. package/dist/request-builder/update-request-builder-base.d.ts +15 -13
  163. package/dist/request-builder/update-request-builder-base.d.ts.map +1 -1
  164. package/dist/request-builder/update-request-builder-base.js +11 -14
  165. package/dist/request-builder/update-request-builder-base.js.map +1 -1
  166. package/dist/selectable/collection-field.d.ts +4 -1
  167. package/dist/selectable/collection-field.d.ts.map +1 -1
  168. package/dist/selectable/collection-field.js +1 -0
  169. package/dist/selectable/collection-field.js.map +1 -1
  170. package/dist/selectable/complex-type-field.d.ts +8 -7
  171. package/dist/selectable/complex-type-field.d.ts.map +1 -1
  172. package/dist/selectable/complex-type-field.js +6 -9
  173. package/dist/selectable/complex-type-field.js.map +1 -1
  174. package/dist/selectable/complex-type-property-fields.d.ts +1 -1
  175. package/dist/selectable/complex-type-property-fields.d.ts.map +1 -1
  176. package/dist/selectable/constructor-or-field.d.ts +2 -1
  177. package/dist/selectable/constructor-or-field.d.ts.map +1 -1
  178. package/dist/selectable/custom-field.d.ts +18 -16
  179. package/dist/selectable/custom-field.d.ts.map +1 -1
  180. package/dist/selectable/custom-field.js +3 -2
  181. package/dist/selectable/custom-field.js.map +1 -1
  182. package/dist/selectable/edm-type-field.d.ts +14 -17
  183. package/dist/selectable/edm-type-field.d.ts.map +1 -1
  184. package/dist/selectable/edm-type-field.js +7 -3
  185. package/dist/selectable/edm-type-field.js.map +1 -1
  186. package/dist/selectable/enum-field.d.ts +4 -3
  187. package/dist/selectable/enum-field.d.ts.map +1 -1
  188. package/dist/selectable/enum-field.js +1 -1
  189. package/dist/selectable/enum-field.js.map +1 -1
  190. package/dist/selectable/field-builder.d.ts +11 -8
  191. package/dist/selectable/field-builder.d.ts.map +1 -1
  192. package/dist/selectable/field-builder.js +5 -3
  193. package/dist/selectable/field-builder.js.map +1 -1
  194. package/dist/selectable/field.d.ts +2 -4
  195. package/dist/selectable/field.d.ts.map +1 -1
  196. package/dist/selectable/field.js.map +1 -1
  197. package/dist/selectable/link.d.ts +13 -11
  198. package/dist/selectable/link.d.ts.map +1 -1
  199. package/dist/selectable/link.js +6 -6
  200. package/dist/selectable/link.js.map +1 -1
  201. package/dist/selectable/one-to-many-link.d.ts +5 -4
  202. package/dist/selectable/one-to-many-link.d.ts.map +1 -1
  203. package/dist/selectable/one-to-many-link.js.map +1 -1
  204. package/dist/selectable/one-to-one-link.d.ts +4 -3
  205. package/dist/selectable/one-to-one-link.d.ts.map +1 -1
  206. package/dist/selectable/one-to-one-link.js.map +1 -1
  207. package/dist/selectable/orderable-edm-type-field.d.ts +6 -5
  208. package/dist/selectable/orderable-edm-type-field.d.ts.map +1 -1
  209. package/dist/selectable/orderable-edm-type-field.js.map +1 -1
  210. package/dist/selectable/selectable.d.ts +2 -1
  211. package/dist/selectable/selectable.d.ts.map +1 -1
  212. package/dist/selectable/simple-type-fields.d.ts +1 -1
  213. package/dist/selectable/simple-type-fields.d.ts.map +1 -1
  214. package/dist/uri-conversion/get-filter.d.ts +4 -4
  215. package/dist/uri-conversion/get-filter.d.ts.map +1 -1
  216. package/dist/uri-conversion/get-filter.js +30 -32
  217. package/dist/uri-conversion/get-filter.js.map +1 -1
  218. package/dist/uri-conversion/get-keys.d.ts +4 -4
  219. package/dist/uri-conversion/get-keys.d.ts.map +1 -1
  220. package/dist/uri-conversion/get-keys.js +5 -6
  221. package/dist/uri-conversion/get-keys.js.map +1 -1
  222. package/dist/uri-conversion/get-resource-path.d.ts +4 -5
  223. package/dist/uri-conversion/get-resource-path.d.ts.map +1 -1
  224. package/dist/uri-conversion/get-resource-path.js +11 -14
  225. package/dist/uri-conversion/get-resource-path.js.map +1 -1
  226. package/dist/uri-conversion/odata-uri.d.ts +21 -21
  227. package/dist/uri-conversion/odata-uri.d.ts.map +1 -1
  228. package/dist/uri-conversion/odata-uri.js +11 -9
  229. package/dist/uri-conversion/odata-uri.js.map +1 -1
  230. package/package.json +8 -8
  231. package/dist/payload-value-converter.d.ts +0 -42
  232. package/dist/payload-value-converter.d.ts.map +0 -1
  233. package/dist/payload-value-converter.js +0 -139
  234. package/dist/payload-value-converter.js.map +0 -1
@@ -1,13 +1,14 @@
1
- import { Constructable, EntityBase } from './entity-base';
1
+ import { DefaultDeSerializers, DeSerializers } from './de-serializers';
2
+ import { EntityApi, EntityBase } from './entity-base';
2
3
  /**
3
4
  * @internal
4
5
  */
5
- export declare type BatchResponse = ReadResponse | WriteResponses | ErrorResponse;
6
+ export declare type BatchResponse<DeSerializersT extends DeSerializers = DefaultDeSerializers> = ReadResponse<DeSerializersT> | WriteResponses<DeSerializersT> | ErrorResponse;
6
7
  /**
7
8
  * @internal
8
9
  */
9
- export interface WriteResponses {
10
- responses: WriteResponse[];
10
+ export interface WriteResponses<DeSerializersT extends DeSerializers = DefaultDeSerializers> {
11
+ responses: WriteResponse<DeSerializersT>[];
11
12
  isSuccess: () => boolean;
12
13
  }
13
14
  /**
@@ -21,20 +22,20 @@ export interface ErrorResponse {
21
22
  /**
22
23
  * @internal
23
24
  */
24
- export interface ReadResponse {
25
+ export interface ReadResponse<DeSerializersT extends DeSerializers = DefaultDeSerializers> {
25
26
  httpCode: number;
26
27
  body: Record<string, any>;
27
- type: Constructable<EntityBase>;
28
- as: <T extends EntityBase>(constructor: Constructable<T>) => T[];
28
+ type: EntityApi<EntityBase, DeSerializersT>;
29
+ as: <EntityT extends EntityBase>(entityApi: EntityApi<EntityT, DeSerializersT>) => EntityT[];
29
30
  isSuccess: () => boolean;
30
31
  }
31
32
  /**
32
33
  * @internal
33
34
  */
34
- export interface WriteResponse {
35
+ export interface WriteResponse<DeSerializersT extends DeSerializers> {
35
36
  httpCode: number;
36
37
  body?: Record<string, any>;
37
- type?: Constructable<EntityBase>;
38
- as?: <T extends EntityBase>(constructor: Constructable<T>) => T;
38
+ type?: EntityApi<EntityBase, DeSerializersT>;
39
+ as?: <EntityT extends EntityBase>(entityApi: EntityApi<EntityT, DeSerializersT>) => EntityT;
39
40
  }
40
41
  //# sourceMappingURL=batch-response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-response.d.ts","sourceRoot":"","sources":["../src/batch-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D;;GAEG;AACH,oBAAY,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AACD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AACD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,SAAS,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AACD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACjE"}
1
+ {"version":3,"file":"batch-response.d.ts","sourceRoot":"","sources":["../src/batch-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD;;GAEG;AACH,oBAAY,aAAa,CACvB,cAAc,SAAS,aAAa,GAAG,oBAAoB,IAEzD,YAAY,CAAC,cAAc,CAAC,GAC5B,cAAc,CAAC,cAAc,CAAC,GAC9B,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,cAAc,SAAS,aAAa,GAAG,oBAAoB;IAE3D,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;IAC3C,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AACD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AACD;;GAEG;AACH,MAAM,WAAW,YAAY,CAC3B,cAAc,SAAS,aAAa,GAAG,oBAAoB;IAE3D,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC5C,EAAE,EAAE,CAAC,OAAO,SAAS,UAAU,EAC7B,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,KAC1C,OAAO,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,cAAc,SAAS,aAAa;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC7C,EAAE,CAAC,EAAE,CAAC,OAAO,SAAS,UAAU,EAC9B,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,KAC1C,OAAO,CAAC;CACd"}
@@ -1,4 +1,5 @@
1
- import { DeserializedType, DeSerializer } from './de-serializers';
1
+ import BigNumber from 'bignumber.js';
2
+ import { DeserializedType, DeSerializer, DeSerializers } from './de-serializers';
2
3
  import { DefaultDeSerializers } from './default-de-serializers';
3
4
  /**
4
5
  * @internal
@@ -9,4 +10,17 @@ import { DefaultDeSerializers } from './default-de-serializers';
9
10
  * @typeparam EdmT - The EDM type to infer the type for.
10
11
  */
11
12
  export declare type CustomOrDefaultType<CustomDeSerializerT, EdmT, DefaultDeSerializersT extends DefaultDeSerializers> = EdmT extends keyof CustomDeSerializerT ? CustomDeSerializerT[EdmT] extends DeSerializer<infer CustomT> | undefined ? CustomT : DeserializedType<DefaultDeSerializersT, EdmT> : DeserializedType<DefaultDeSerializersT, EdmT>;
13
+ /**
14
+ * @internal
15
+ * 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).
16
+ * The custom (de-)serializers are merged with the default (de-)serializers, while custom (de-)serializers take precedence.
17
+ * @param customDeSerializers - Custom (de-)serialization functions.
18
+ * @returns A full set of (de-)serialization functions, that combines custom and default (de-)serializers.
19
+ */
20
+ 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>(customDeSerializers: Partial<DeSerializers<BinaryT, BooleanT, ByteT, DecimalT, DoubleT, FloatT, Int16T, Int32T, Int64T, GuidT, SByteT, SingleT, StringT, AnyT>>): CustomDeSerializers<typeof customDeSerializers>;
21
+ /**
22
+ * @internal
23
+ * 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).
24
+ */
25
+ export declare type CustomDeSerializers<T> = DeSerializers<CustomOrDefaultType<T, 'Edm.Binary', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Boolean', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Byte', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Decimal', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Double', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Float', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Int16', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Int32', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Int64', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Guid', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.SByte', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Single', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.String', DefaultDeSerializers>, CustomOrDefaultType<T, 'Edm.Any', DefaultDeSerializers>>;
12
26
  //# sourceMappingURL=custom-de-serializers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-de-serializers.d.ts","sourceRoot":"","sources":["../../src/de-serializers/custom-de-serializers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;;;GAOG;AACH,oBAAY,mBAAmB,CAC7B,mBAAmB,EACnB,IAAI,EACJ,qBAAqB,SAAS,oBAAoB,IAChD,IAAI,SAAS,MAAM,mBAAmB,GACtC,mBAAmB,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,GACvE,OAAO,GACP,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAC/C,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"custom-de-serializers.d.ts","sourceRoot":"","sources":["../../src/de-serializers/custom-de-serializers.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;GAOG;AACH,oBAAY,mBAAmB,CAC7B,mBAAmB,EACnB,IAAI,EACJ,qBAAqB,SAAS,oBAAoB,IAChD,IAAI,SAAS,MAAM,mBAAmB,GACtC,mBAAmB,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,GACvE,OAAO,GACP,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAC/C,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAG,MAAM,EAChB,QAAQ,GAAG,OAAO,EAClB,KAAK,GAAG,MAAM,EACd,QAAQ,GAAG,SAAS,EACpB,OAAO,GAAG,MAAM,EAChB,MAAM,GAAG,MAAM,EACf,MAAM,GAAG,MAAM,EACf,MAAM,GAAG,MAAM,EACf,MAAM,GAAG,SAAS,EAClB,KAAK,GAAG,MAAM,EACd,MAAM,GAAG,MAAM,EACf,OAAO,GAAG,MAAM,EAChB,OAAO,GAAG,MAAM,EAChB,IAAI,GAAG,GAAG,EAEV,mBAAmB,EAAE,OAAO,CAC1B,aAAa,CACX,OAAO,EACP,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,CACL,CACF,GACA,mBAAmB,CAAC,OAAO,mBAAmB,CAAC,CAKjD;AAED;;;GAGG;AACH,oBAAY,mBAAmB,CAAC,CAAC,IAAI,aAAa,CAChD,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAC1D,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAC3D,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,CAAC,EACxD,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAC3D,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAC1D,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,CAAC,EACzD,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,CAAC,EACzD,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,CAAC,EACzD,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,CAAC,EACzD,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,CAAC,EACxD,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,CAAC,EACzD,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAC1D,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAC1D,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,oBAAoB,CAAC,CACxD,CAAC"}
@@ -1,3 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeDefaultDeSerializersWith = void 0;
4
+ const default_de_serializers_1 = require("./default-de-serializers");
5
+ /**
6
+ * @internal
7
+ * 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).
8
+ * The custom (de-)serializers are merged with the default (de-)serializers, while custom (de-)serializers take precedence.
9
+ * @param customDeSerializers - Custom (de-)serialization functions.
10
+ * @returns A full set of (de-)serialization functions, that combines custom and default (de-)serializers.
11
+ */
12
+ function mergeDefaultDeSerializersWith(customDeSerializers) {
13
+ return {
14
+ ...default_de_serializers_1.defaultDeSerializers,
15
+ ...(customDeSerializers || {})
16
+ };
17
+ }
18
+ exports.mergeDefaultDeSerializersWith = mergeDefaultDeSerializersWith;
3
19
  //# sourceMappingURL=custom-de-serializers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-de-serializers.js","sourceRoot":"","sources":["../../src/de-serializers/custom-de-serializers.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"custom-de-serializers.js","sourceRoot":"","sources":["../../src/de-serializers/custom-de-serializers.ts"],"names":[],"mappings":";;;AAMA,qEAGkC;AAoBlC;;;;;;GAMG;AACH,SAAgB,6BAA6B,CAgB3C,mBAiBC;IAED,OAAO;QACL,GAAI,6CAA4B;QAChC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;KAC/B,CAAC;AACJ,CAAC;AAvCD,sEAuCC"}
@@ -48,9 +48,25 @@ export interface DeSerializer<DeserializedT> {
48
48
  }
49
49
  /**
50
50
  * @internal
51
- * Infers the deserialized type for an EDM type from the given `DeSerializers` type.
52
- * @typeparam DeSerializersT - Type of the `DeSerializers`.
51
+ * Infers the deserialized type for an EDM type from the given (de-)serializers type.
52
+ * @typeparam DeSerializersT - Type of the (de-)serializers.
53
53
  * @typeparam EdmT - Return type of the deserialize function for the given EDM type.
54
54
  */
55
- export declare type DeserializedType<DeSerializersT extends DeSerializers, EdmT> = EdmT extends keyof DeSerializersT ? DeSerializersT[EdmT] extends DeSerializer<infer DeserializedT> ? DeserializedT : never : never;
55
+ export declare type DeserializedType<DeSerializersT extends DeSerializers, EdmT> = EdmT extends keyof DeSerializersT ? DeSerializersT[EdmT] extends DeSerializer<infer DeserializedT> ? DeserializedT : any : any;
56
+ /**
57
+ * @internal
58
+ * Creates a function to deserialize values (from EDM to their representation in code).
59
+ * @typeparam DeSerializersT - Type of the (de-)serializers.
60
+ * @param deSerializers - (De-)serializers object to use for deserialization of values.
61
+ * @returns A function that deserializes values with the given deserializers.
62
+ */
63
+ export declare function createValueDeserializer<DeSerializersT extends DeSerializers>(deSerializers: DeSerializersT): <EdmT>(value: any, edmType: EdmT) => DeserializedType<DeSerializersT, EdmT>;
64
+ /**
65
+ * @internal
66
+ * Creates a function to serialize values (from their representation in code to EDM).
67
+ * @typeparam DeSerializersT - Type of the (de-)serializers.
68
+ * @param deSerializers - (De-)serializers object to use for deserialization of values.
69
+ * @returns A function that serializes values with the given serializers.
70
+ */
71
+ export declare function createValueSerializer<DeSerializersT extends DeSerializers>(deSerializers: DeSerializersT): <EdmT>(value: any, edmType: EdmT) => any;
56
72
  //# sourceMappingURL=de-serializers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"de-serializers.d.ts","sourceRoot":"","sources":["../../src/de-serializers/de-serializers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa,CAC5B,OAAO,GAAG,GAAG,EACb,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,GAAG,EACX,QAAQ,GAAG,GAAG,EACd,OAAO,GAAG,GAAG,EACb,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,GAAG,EACZ,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,GAAG,EACZ,OAAO,GAAG,GAAG,EACb,OAAO,GAAG,GAAG,EACb,IAAI,GAAG,GAAG;IAEV,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,aAAa,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,aAAa,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,aAAa;IACzC;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC;IAE3C;;;;OAIG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC;IAEzC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CACf,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,KAChD,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,oBAAY,gBAAgB,CAC1B,cAAc,SAAS,aAAa,EACpC,IAAI,IACF,IAAI,SAAS,MAAM,cAAc,GACjC,cAAc,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,aAAa,CAAC,GAC5D,aAAa,GACb,KAAK,GACP,KAAK,CAAC"}
1
+ {"version":3,"file":"de-serializers.d.ts","sourceRoot":"","sources":["../../src/de-serializers/de-serializers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa,CAC5B,OAAO,GAAG,GAAG,EACb,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,GAAG,EAKX,QAAQ,GAAG,GAAG,EACd,OAAO,GAAG,GAAG,EACb,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,GAAG,EACZ,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,GAAG,EACZ,OAAO,GAAG,GAAG,EACb,OAAO,GAAG,GAAG,EACb,IAAI,GAAG,GAAG;IAEV,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,aAAa,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,aAAa,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAE/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,aAAa;IACzC;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,aAAa,CAAC;IAE3C;;;;OAIG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC;IAEzC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CACf,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,KAChD,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,oBAAY,gBAAgB,CAC1B,cAAc,SAAS,aAAa,EACpC,IAAI,IACF,IAAI,SAAS,MAAM,cAAc,GACjC,cAAc,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,aAAa,CAAC,GAC5D,aAAa,GACb,GAAG,GACL,GAAG,CAAC;AAER;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,SAAS,aAAa,EAC1E,aAAa,EAAE,cAAc,GAC5B,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,CAK7E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,SAAS,aAAa,EACxE,aAAa,EAAE,cAAc,GAC5B,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,GAAG,CAK1C"}
@@ -1,3 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createValueSerializer = exports.createValueDeserializer = void 0;
4
+ /**
5
+ * @internal
6
+ * Creates a function to deserialize values (from EDM to their representation in code).
7
+ * @typeparam DeSerializersT - Type of the (de-)serializers.
8
+ * @param deSerializers - (De-)serializers object to use for deserialization of values.
9
+ * @returns A function that deserializes values with the given deserializers.
10
+ */
11
+ function createValueDeserializer(deSerializers) {
12
+ return (value, edmType) => {
13
+ var _a;
14
+ const deserialize = (_a = deSerializers[edmType]) === null || _a === void 0 ? void 0 : _a.deserialize;
15
+ return deserialize ? deserialize(value) : value;
16
+ };
17
+ }
18
+ exports.createValueDeserializer = createValueDeserializer;
19
+ /**
20
+ * @internal
21
+ * Creates a function to serialize values (from their representation in code to EDM).
22
+ * @typeparam DeSerializersT - Type of the (de-)serializers.
23
+ * @param deSerializers - (De-)serializers object to use for deserialization of values.
24
+ * @returns A function that serializes values with the given serializers.
25
+ */
26
+ function createValueSerializer(deSerializers) {
27
+ return (value, edmType) => {
28
+ var _a;
29
+ const serialize = (_a = deSerializers[edmType]) === null || _a === void 0 ? void 0 : _a.serialize;
30
+ return serialize ? serialize(value) : value;
31
+ };
32
+ }
33
+ exports.createValueSerializer = createValueSerializer;
3
34
  //# sourceMappingURL=de-serializers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"de-serializers.js","sourceRoot":"","sources":["../../src/de-serializers/de-serializers.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"de-serializers.js","sourceRoot":"","sources":["../../src/de-serializers/de-serializers.ts"],"names":[],"mappings":";;;AA0FA;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,aAA6B;IAE7B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;;QACxB,MAAM,WAAW,GAAG,MAAA,aAAa,CAAC,OAAc,CAAC,0CAAE,WAAW,CAAC;QAC/D,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAPD,0DAOC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,aAA6B;IAE7B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;;QACxB,MAAM,SAAS,GAAG,MAAA,aAAa,CAAC,OAAc,CAAC,0CAAE,SAAS,CAAC;QAC3D,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAPD,sDAOC"}
@@ -1,5 +1,5 @@
1
1
  import BigNumber from 'bignumber.js';
2
- import { DeSerializer, DeSerializers } from './de-serializers';
2
+ import { DeSerializers } from './de-serializers';
3
3
  /**
4
4
  * @internal
5
5
  * Type of the default (de-)serializers.
@@ -12,16 +12,14 @@ export declare type DefaultDeSerializers = DeSerializers<string, boolean, number
12
12
  export declare const defaultDeSerializersRaw: DefaultDeSerializers;
13
13
  /**
14
14
  * @internal
15
- * Wraps the given default serialization function with a check for null values.
16
- * @param serialize - Serialization function to wrap.
17
- * @returns The wrapped serialization function.
15
+ * Wraps the given default (de-)serialization functions with a check for nullish values.
16
+ * @param deSerializers - (De-)Serializers to wrap.
17
+ * @returns The wrapped (de-)serializers.
18
18
  */
19
- export declare function wrapDefaultSerialization<T>(serialize: DeSerializer<T>['serialize']): DeSerializer<T>['serialize'];
19
+ export declare function wrapDefaultDeSerializers<DeSerializersT extends DeSerializers>(deSerializers: DeSerializersT): DeSerializersT;
20
20
  /**
21
21
  * @internal
22
- * Wraps the given default deserialization function with a check for null values.
23
- * @param deserialize - Deserialization function to wrap.
24
- * @returns The wrapped deserialization function.
22
+ * Default (de-)serializers without `null` and `undefined` handling.
25
23
  */
26
- export declare function wrapDefaultDeserialization<T>(deserialize: DeSerializer<T>['deserialize']): DeSerializer<T>['deserialize'];
24
+ export declare const defaultDeSerializers: DefaultDeSerializers;
27
25
  //# sourceMappingURL=default-de-serializers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-de-serializers.d.ts","sourceRoot":"","sources":["../../src/de-serializers/default-de-serializers.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAU/D;;;GAGG;AACH,oBAAY,oBAAoB,GAAG,aAAa,CAC9C,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,GAAG,CACJ,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,oBAgFrC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GACtC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAU9B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAC1C,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAUhC"}
1
+ {"version":3,"file":"default-de-serializers.d.ts","sourceRoot":"","sources":["../../src/de-serializers/default-de-serializers.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAU/D;;;GAGG;AACH,oBAAY,oBAAoB,GAAG,aAAa,CAC9C,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,GAAG,CACJ,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,oBAgFrC,CAAC;AAwCF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,cAAc,SAAS,aAAa,EAC3E,aAAa,EAAE,cAAc,GAC5B,cAAc,CAYhB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,sBAEhC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wrapDefaultDeserialization = exports.wrapDefaultSerialization = exports.defaultDeSerializersRaw = void 0;
3
+ exports.defaultDeSerializers = exports.wrapDefaultDeSerializers = exports.defaultDeSerializersRaw = void 0;
4
4
  const util_1 = require("@sap-cloud-sdk/util");
5
5
  const payload_value_converter_1 = require("./payload-value-converter");
6
6
  const uri_value_converter_1 = require("./uri-value-converter");
@@ -89,12 +89,11 @@ exports.defaultDeSerializersRaw = {
89
89
  }
90
90
  };
91
91
  /**
92
- * @internal
93
92
  * Wraps the given default serialization function with a check for null values.
94
93
  * @param serialize - Serialization function to wrap.
95
94
  * @returns The wrapped serialization function.
96
95
  */
97
- function wrapDefaultSerialization(serialize) {
96
+ function wrapDefaultSerializer(serialize) {
98
97
  return function (value) {
99
98
  if (value === null) {
100
99
  return 'null';
@@ -105,14 +104,12 @@ function wrapDefaultSerialization(serialize) {
105
104
  return value;
106
105
  };
107
106
  }
108
- exports.wrapDefaultSerialization = wrapDefaultSerialization;
109
107
  /**
110
- * @internal
111
- * Wraps the given default deserialization function with a check for null values.
108
+ * Wraps the given default deserialization function with a check for nullish values.
112
109
  * @param deserialize - Deserialization function to wrap.
113
110
  * @returns The wrapped deserialization function.
114
111
  */
115
- function wrapDefaultDeserialization(deserialize) {
112
+ function wrapDefaultDeserializer(deserialize) {
116
113
  return function (value) {
117
114
  if ((0, util_1.isNullish)(value)) {
118
115
  return value;
@@ -123,5 +120,26 @@ function wrapDefaultDeserialization(deserialize) {
123
120
  return value;
124
121
  };
125
122
  }
126
- exports.wrapDefaultDeserialization = wrapDefaultDeserialization;
123
+ /**
124
+ * @internal
125
+ * Wraps the given default (de-)serialization functions with a check for nullish values.
126
+ * @param deSerializers - (De-)Serializers to wrap.
127
+ * @returns The wrapped (de-)serializers.
128
+ */
129
+ function wrapDefaultDeSerializers(deSerializers) {
130
+ return Object.entries(deSerializers).reduce((entries, [edmType, { deserialize, serialize, serializeToUri }]) => ({
131
+ ...entries,
132
+ [edmType]: {
133
+ deserialize: wrapDefaultDeserializer(deserialize),
134
+ serialize: wrapDefaultSerializer(serialize),
135
+ serializeToUri
136
+ }
137
+ }), {});
138
+ }
139
+ exports.wrapDefaultDeSerializers = wrapDefaultDeSerializers;
140
+ /**
141
+ * @internal
142
+ * Default (de-)serializers without `null` and `undefined` handling.
143
+ */
144
+ exports.defaultDeSerializers = wrapDefaultDeSerializers(exports.defaultDeSerializersRaw);
127
145
  //# sourceMappingURL=default-de-serializers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-de-serializers.js","sourceRoot":"","sources":["../../src/de-serializers/default-de-serializers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-de-serializers.js","sourceRoot":"","sources":["../../src/de-serializers/default-de-serializers.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,7 @@ export declare function convertToUriForEdmString(value: any): string;
11
11
  /**
12
12
  * @internal
13
13
  */
14
- export interface UriConverter {
15
- convertToUriFormat: (value: any, edmType: EdmTypeShared<'any'>) => string;
16
- }
14
+ export declare type UriConverter = (value: any, edmType: EdmTypeShared<'any'>) => string;
17
15
  /**
18
16
  * @internal
19
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"uri-value-converter.d.ts","sourceRoot":"","sources":["../../src/de-serializers/uri-value-converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAK1D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;CAC3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,CAS7E"}
1
+ {"version":3,"file":"uri-value-converter.d.ts","sourceRoot":"","sources":["../../src/de-serializers/uri-value-converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAK1D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,oBAAY,YAAY,GAAG,CACzB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAC1B,MAAM,CAAC;AAEZ;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,CAK7E"}
@@ -23,13 +23,9 @@ exports.convertToUriForEdmString = convertToUriForEdmString;
23
23
  * @internal
24
24
  */
25
25
  function createUriConverter(deSerializers) {
26
- return {
27
- convertToUriFormat: (value, edmType) => {
28
- const { serializeToUri, serialize } = deSerializers[edmType];
29
- return serializeToUri
30
- ? serializeToUri(value, serialize)
31
- : serialize(value);
32
- }
26
+ return (value, edmType) => {
27
+ const { serializeToUri, serialize } = deSerializers[edmType];
28
+ return serializeToUri ? serializeToUri(value, serialize) : serialize(value);
33
29
  };
34
30
  }
35
31
  exports.createUriConverter = createUriConverter;
@@ -1 +1 @@
1
- {"version":3,"file":"uri-value-converter.js","sourceRoot":"","sources":["../../src/de-serializers/uri-value-converter.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAKhC;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAsB;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC;AALD,gCAKC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,KAAU;IACjD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAFD,4DAEC;AASD;;GAEG;AACH,SAAgB,kBAAkB,CAAC,aAA4B;IAC7D,OAAO;QACL,kBAAkB,EAAE,CAAC,KAAU,EAAE,OAA6B,EAAU,EAAE;YACxE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,cAAc;gBACnB,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC;gBAClC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AATD,gDASC"}
1
+ {"version":3,"file":"uri-value-converter.js","sourceRoot":"","sources":["../../src/de-serializers/uri-value-converter.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAKhC;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAsB;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC;AALD,gCAKC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,KAAU;IACjD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAFD,4DAEC;AAUD;;GAEG;AACH,SAAgB,kBAAkB,CAAC,aAA4B;IAC7D,OAAO,CAAC,KAAU,EAAE,OAA6B,EAAU,EAAE;QAC3D,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC,CAAC;AACJ,CAAC;AALD,gDAKC"}
@@ -1,6 +1,7 @@
1
1
  import { EntityBuilder } from './entity-builder';
2
- import type { Field, Link, CustomField } from './selectable';
2
+ import type { CustomField, Field, Link } from './selectable';
3
3
  import type { RequestBuilder } from './request-builder';
4
+ import { DefaultDeSerializers, DeSerializers } from './de-serializers';
4
5
  /**
5
6
  * @internal
6
7
  */
@@ -8,35 +9,43 @@ export declare type ODataVersionOf<T extends EntityBase> = T['_oDataVersion'];
8
9
  /**
9
10
  * @internal
10
11
  */
11
- export interface Constructable<EntityT extends EntityBase, EntityTypeT = unknown> {
12
- _serviceName: string;
12
+ export interface Constructable<EntityT extends EntityBase> {
13
13
  _entityName: string;
14
14
  _defaultServicePath: string;
15
- _allFields: (Field<EntityT, boolean, boolean> | Link<EntityT>)[];
16
- _keyFields: Field<EntityT, boolean, boolean>[];
17
- _keys: {
18
- [keys: string]: Field<EntityT, boolean, boolean>;
19
- };
15
+ _keys: string[];
20
16
  new (...args: any[]): EntityT;
21
- requestBuilder(): RequestBuilder<EntityT>;
22
- builder(): EntityBuilderType<EntityT, EntityTypeT>;
23
- customField(fieldName: string, isNullable?: boolean): CustomField<EntityT, boolean>;
24
17
  }
25
18
  /**
26
19
  * @internal
20
+ * Represents the API of an entity, including its request and entity builders as well as its schema.
21
+ * @typeparam EntityT - Type of the entity.
22
+ * @typeparam DeSerializersT - Type of the (de-)serializers.
23
+ * @typeparam JsonT - Type of the entity without methods.
24
+ */
25
+ export interface EntityApi<EntityT extends EntityBase, DeSerializersT extends DeSerializers = DefaultDeSerializers> {
26
+ deSerializers: DeSerializersT;
27
+ requestBuilder(): RequestBuilder<EntityT, DeSerializersT>;
28
+ entityBuilder(): EntityBuilderType<EntityT, DeSerializersT>;
29
+ entityConstructor: Constructable<EntityT>;
30
+ schema: Record<string, any>;
31
+ customField<NullableT extends boolean>(fieldName: string): CustomField<EntityT, DeSerializersT, NullableT>;
32
+ }
33
+ /**
34
+ * @internal
35
+ * Entity builder type with check for EntityT.
27
36
  */
28
- export declare type EntityBuilderType<EntityT extends EntityBase, EntityTypeT> = {
29
- [property in keyof Required<EntityTypeT>]: (value: EntityTypeT[property]) => EntityBuilderType<EntityT, EntityTypeT>;
30
- } & EntityBuilder<EntityT, EntityTypeT>;
37
+ export declare type EntityBuilderType<EntityT extends EntityBase, DeSerializersT extends DeSerializers> = {
38
+ [property in keyof Required<Omit<EntityT, keyof EntityBase>>]: (value: EntityT[property]) => EntityBuilderType<EntityT, DeSerializersT>;
39
+ } & EntityBuilder<EntityT, DeSerializersT>;
31
40
  /**
32
41
  * Super class for all representations of OData entity types.
33
42
  * @internal
34
43
  */
35
44
  export declare abstract class EntityBase {
45
+ private schema;
36
46
  static _serviceName: string;
37
47
  static _entityName: string;
38
48
  static _defaultServicePath: string;
39
- protected static entityBuilder<EntityT extends EntityBase, EntityTypeT>(entityConstructor: Constructable<EntityT, EntityTypeT>): EntityBuilderType<EntityT, EntityTypeT>;
40
49
  /**
41
50
  * The remote state of the entity.
42
51
  * Remote state refers to the last known state of the entity on the remote system from which it has been retrieved or to which it has been posted.
@@ -58,7 +67,7 @@ export declare abstract class EntityBase {
58
67
  */
59
68
  protected _customFields: Record<string, any>;
60
69
  abstract readonly _oDataVersion: any;
61
- constructor();
70
+ constructor(schema: Record<string, any>);
62
71
  /**
63
72
  * ETag version identifier accessor.
64
73
  * @returns The ETag version identifier of the retrieved entity, returns `undefined` if not retrieved.
@@ -102,7 +111,6 @@ export declare abstract class EntityBase {
102
111
  */
103
112
  setVersionIdentifier(etag: string | undefined): this;
104
113
  /**
105
- * @deprecated Since 1.12.0. Will be hidden in version 2.0.
106
114
  * Initializes or sets the remoteState of the entity.
107
115
  * This function is called on all read, create and update requests.
108
116
  * This function should be called after [[initializeCustomFields]], if custom fields are defined.
@@ -154,20 +162,24 @@ export declare abstract class EntityBase {
154
162
  /**
155
163
  * @internal
156
164
  */
157
- export interface EntityIdentifiable<T extends EntityBase> {
158
- readonly _entityConstructor: Constructable<T>;
165
+ export interface EntityIdentifiable<T extends EntityBase, DeSerializersT extends DeSerializers> {
159
166
  readonly _entity: T;
167
+ readonly _deSerializers: DeSerializersT;
160
168
  }
161
169
  /**
162
170
  * @internal
163
171
  */
164
- export declare function isSelectedProperty<EntityT extends EntityBase>(json: any, field: Field<EntityT> | Link<EntityT>): boolean;
172
+ export declare function isSelectedProperty<EntityT extends EntityBase, DeSerializersT extends DeSerializers>(json: any, field: Field<EntityT> | Link<EntityT, DeSerializersT>): boolean;
173
+ /**
174
+ * @internal
175
+ */
176
+ export declare function isExistentProperty<EntityT extends EntityBase, DeSerializersT extends DeSerializers, LinkedEntityT extends EntityBase>(json: any, link: Link<EntityT, DeSerializersT, LinkedEntityT>): boolean;
165
177
  /**
166
178
  * @internal
167
179
  */
168
- export declare function isExistentProperty<EntityT extends EntityBase, LinkedEntityT extends EntityBase>(json: any, link: Link<EntityT, LinkedEntityT>): boolean;
180
+ export declare function isExpandedProperty<EntityT extends EntityBase, DeSerializersT extends DeSerializers, LinkedEntityT extends EntityBase>(json: any, link: Link<EntityT, DeSerializersT, LinkedEntityT>): boolean;
169
181
  /**
170
182
  * @internal
171
183
  */
172
- export declare function isExpandedProperty<EntityT extends EntityBase, LinkedEntityT extends EntityBase>(json: any, link: Link<EntityT, LinkedEntityT>): boolean;
184
+ export declare function entityBuilder<EntityT extends EntityBase, DeSerializersT extends DeSerializers>(entityApi: EntityApi<EntityT, DeSerializersT>): EntityBuilderType<EntityT, DeSerializersT>;
173
185
  //# sourceMappingURL=entity-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-base.d.ts","sourceRoot":"","sources":["../src/entity-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-base.d.ts","sourceRoot":"","sources":["../src/entity-base.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /* eslint-disable max-classes-per-file */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.isExpandedProperty = exports.isExistentProperty = exports.isSelectedProperty = exports.EntityBase = void 0;
4
+ exports.entityBuilder = exports.isExpandedProperty = exports.isExistentProperty = exports.isSelectedProperty = exports.EntityBase = void 0;
5
5
  const util_1 = require("@sap-cloud-sdk/util");
6
6
  const entity_builder_1 = require("./entity-builder");
7
7
  const properties_util_1 = require("./properties-util");
@@ -10,22 +10,13 @@ const properties_util_1 = require("./properties-util");
10
10
  * @internal
11
11
  */
12
12
  class EntityBase {
13
- constructor() {
13
+ constructor(schema) {
14
+ this.schema = schema;
15
+ (0, properties_util_1.nonEnumerable)(this, 'schema');
14
16
  (0, properties_util_1.nonEnumerable)(this, '_oDataVersion');
15
17
  (0, properties_util_1.nonEnumerable)(this, '_customFields');
16
18
  this._customFields = {};
17
19
  }
18
- static entityBuilder(entityConstructor) {
19
- const builder = new entity_builder_1.EntityBuilder(entityConstructor);
20
- entityConstructor._allFields.forEach(field => {
21
- const fieldName = `${(0, util_1.camelCase)(field._fieldName)}`;
22
- builder[fieldName] = function (value) {
23
- this.entity[fieldName] = value;
24
- return this;
25
- };
26
- });
27
- return builder;
28
- }
29
20
  /**
30
21
  * ETag version identifier accessor.
31
22
  * @returns The ETag version identifier of the retrieved entity, returns `undefined` if not retrieved.
@@ -94,7 +85,6 @@ class EntityBase {
94
85
  return this;
95
86
  }
96
87
  /**
97
- * @deprecated Since 1.12.0. Will be hidden in version 2.0.
98
88
  * Initializes or sets the remoteState of the entity.
99
89
  * This function is called on all read, create and update requests.
100
90
  * This function should be called after [[initializeCustomFields]], if custom fields are defined.
@@ -165,7 +155,7 @@ class EntityBase {
165
155
  : visitedEntities.includes(entity);
166
156
  }
167
157
  getCurrentStateForKey(key, visitedEntities = []) {
168
- if ((0, properties_util_1.isNavigationProperty)(key, this.constructor)) {
158
+ if ((0, properties_util_1.isNavigationProperty)(key, this.schema)) {
169
159
  if ((0, util_1.isNullish)(this[key])) {
170
160
  return this[key];
171
161
  }
@@ -181,8 +171,8 @@ class EntityBase {
181
171
  * @returns Boolean value that describes whether a field name can be defined as custom field
182
172
  */
183
173
  isConflictingCustomField(customFieldName) {
184
- return this.constructor._allFields
185
- .map(f => f._fieldName)
174
+ return Object.values(this.schema)
175
+ .map((f) => f._fieldName)
186
176
  .includes(customFieldName);
187
177
  }
188
178
  /**
@@ -192,9 +182,10 @@ class EntityBase {
192
182
  */
193
183
  asObject(visitedEntities = []) {
194
184
  visitedEntities.push(this);
185
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
195
186
  return Object.keys(this)
196
187
  .filter(key => this.propertyIsEnumerable(key) &&
197
- (!(0, properties_util_1.isNavigationProperty)(key, this.constructor) ||
188
+ (!(0, properties_util_1.isNavigationProperty)(key, this.schema) ||
198
189
  !this.isVisitedEntity(this[key], visitedEntities)))
199
190
  .reduce((accumulatedMap, key) => ({
200
191
  ...accumulatedMap,
@@ -226,4 +217,19 @@ function isExpandedProperty(json, link) {
226
217
  !json[link._fieldName].hasOwnProperty('__deferred'));
227
218
  }
228
219
  exports.isExpandedProperty = isExpandedProperty;
220
+ /**
221
+ * @internal
222
+ */
223
+ function entityBuilder(entityApi) {
224
+ const builder = new entity_builder_1.EntityBuilder(entityApi);
225
+ Object.values(entityApi.schema).forEach(field => {
226
+ const fieldName = `${(0, util_1.camelCase)(field._fieldName)}`;
227
+ builder[fieldName] = function (value) {
228
+ this.entity[fieldName] = value;
229
+ return this;
230
+ };
231
+ });
232
+ return builder;
233
+ }
234
+ exports.entityBuilder = entityBuilder;
229
235
  //# sourceMappingURL=entity-base.js.map