@kontent-ai/delivery-sdk 16.4.3 → 16.4.5

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 (113) hide show
  1. package/.npmignore +15 -15
  2. package/LICENSE.md +9 -9
  3. package/dist/bundles/kontent-delivery.umd.js +5076 -4619
  4. package/dist/bundles/kontent-delivery.umd.js.map +1 -1
  5. package/dist/bundles/kontent-delivery.umd.min.js +1 -1
  6. package/dist/bundles/kontent-delivery.umd.min.js.map +1 -1
  7. package/dist/bundles/report.json +1 -1
  8. package/dist/bundles/report.min.json +1 -1
  9. package/dist/bundles/stats.json +7015 -5766
  10. package/dist/bundles/stats.min.json +11376 -10250
  11. package/dist/cjs/query/element/element-query.class.js +1 -1
  12. package/dist/cjs/query/element/element-query.class.js.map +1 -1
  13. package/dist/cjs/query/item/single-item-query.class.js +1 -1
  14. package/dist/cjs/query/item/single-item-query.class.js.map +1 -1
  15. package/dist/cjs/query/taxonomy/taxonomy-query.class.js +1 -1
  16. package/dist/cjs/query/taxonomy/taxonomy-query.class.js.map +1 -1
  17. package/dist/cjs/query/type/single-type-query.class.js +1 -1
  18. package/dist/cjs/query/type/single-type-query.class.js.map +1 -1
  19. package/dist/cjs/query/used-in/used-in-query.class.js +1 -1
  20. package/dist/cjs/query/used-in/used-in-query.class.js.map +1 -1
  21. package/dist/cjs/sdk-info.generated.js +1 -1
  22. package/dist/es6/query/element/element-query.class.js +1 -1
  23. package/dist/es6/query/element/element-query.class.js.map +1 -1
  24. package/dist/es6/query/item/single-item-query.class.js +1 -1
  25. package/dist/es6/query/item/single-item-query.class.js.map +1 -1
  26. package/dist/es6/query/taxonomy/taxonomy-query.class.js +1 -1
  27. package/dist/es6/query/taxonomy/taxonomy-query.class.js.map +1 -1
  28. package/dist/es6/query/type/single-type-query.class.js +1 -1
  29. package/dist/es6/query/type/single-type-query.class.js.map +1 -1
  30. package/dist/es6/query/used-in/used-in-query.class.js +1 -1
  31. package/dist/es6/query/used-in/used-in-query.class.js.map +1 -1
  32. package/dist/es6/sdk-info.generated.js +1 -1
  33. package/dist/esnext/query/element/element-query.class.js +1 -1
  34. package/dist/esnext/query/element/element-query.class.js.map +1 -1
  35. package/dist/esnext/query/item/single-item-query.class.js +1 -1
  36. package/dist/esnext/query/item/single-item-query.class.js.map +1 -1
  37. package/dist/esnext/query/taxonomy/taxonomy-query.class.js +1 -1
  38. package/dist/esnext/query/taxonomy/taxonomy-query.class.js.map +1 -1
  39. package/dist/esnext/query/type/single-type-query.class.js +1 -1
  40. package/dist/esnext/query/type/single-type-query.class.js.map +1 -1
  41. package/dist/esnext/query/used-in/used-in-query.class.js +1 -1
  42. package/dist/esnext/query/used-in/used-in-query.class.js.map +1 -1
  43. package/dist/esnext/sdk-info.generated.js +1 -1
  44. package/lib/client/delivery-client.factory.ts +9 -9
  45. package/lib/client/delivery-client.ts +163 -163
  46. package/lib/client/idelivery-client.interface.ts +110 -110
  47. package/lib/client/index.ts +3 -3
  48. package/lib/config/delivery-configs.ts +98 -98
  49. package/lib/config/index.ts +1 -1
  50. package/lib/contracts/contracts.ts +265 -265
  51. package/lib/contracts/index.ts +1 -1
  52. package/lib/elements/element-models.ts +89 -89
  53. package/lib/elements/element-resolver.ts +3 -3
  54. package/lib/elements/element-type.ts +16 -16
  55. package/lib/elements/elements.ts +70 -70
  56. package/lib/elements/index.ts +4 -4
  57. package/lib/images/image-url-transformation-builder.factory.ts +5 -5
  58. package/lib/images/image-url-transformation-builder.ts +181 -181
  59. package/lib/images/image.models.ts +4 -4
  60. package/lib/images/index.ts +3 -3
  61. package/lib/index.ts +12 -12
  62. package/lib/mappers/element.mapper.ts +504 -504
  63. package/lib/mappers/generic-element.mapper.ts +20 -20
  64. package/lib/mappers/index.ts +8 -8
  65. package/lib/mappers/item.mapper.ts +181 -181
  66. package/lib/mappers/language.mapper.ts +24 -24
  67. package/lib/mappers/sync.mapper.ts +32 -32
  68. package/lib/mappers/taxonomy.mapper.ts +77 -77
  69. package/lib/mappers/type.mapper.ts +76 -76
  70. package/lib/mappers/used-in.mapper.ts +20 -20
  71. package/lib/models/common/base-responses.ts +13 -13
  72. package/lib/models/common/common-models.ts +118 -118
  73. package/lib/models/common/filters.ts +280 -280
  74. package/lib/models/common/headers.ts +5 -5
  75. package/lib/models/common/index.ts +7 -7
  76. package/lib/models/common/pagination.class.ts +7 -7
  77. package/lib/models/common/parameters.ts +189 -189
  78. package/lib/models/common/sort-order.ts +1 -1
  79. package/lib/models/content-type-models.ts +42 -42
  80. package/lib/models/element-models.ts +51 -51
  81. package/lib/models/index.ts +9 -9
  82. package/lib/models/item-models.ts +192 -192
  83. package/lib/models/language-models.ts +17 -17
  84. package/lib/models/responses.ts +137 -137
  85. package/lib/models/sync-models.ts +18 -18
  86. package/lib/models/taxonomy-models.ts +25 -25
  87. package/lib/query/common/base-item-listing-query.class.ts +274 -274
  88. package/lib/query/common/base-listing-query.class.ts +95 -95
  89. package/lib/query/common/base-query.class.ts +148 -148
  90. package/lib/query/element/element-query.class.ts +47 -45
  91. package/lib/query/index.ts +13 -13
  92. package/lib/query/item/multiple-items-query.class.ts +183 -183
  93. package/lib/query/item/single-item-query.class.ts +106 -106
  94. package/lib/query/items-feed/items-feed-query.class.ts +191 -191
  95. package/lib/query/language/languages-query.class.ts +91 -91
  96. package/lib/query/sync/initialize-sync-query.class.ts +83 -83
  97. package/lib/query/sync/sync-changes-query.class.ts +56 -56
  98. package/lib/query/taxonomy/taxonomies-query.class.ts +82 -82
  99. package/lib/query/taxonomy/taxonomy-query.class.ts +50 -50
  100. package/lib/query/type/multiple-type-query.class.ts +95 -95
  101. package/lib/query/type/single-type-query.class.ts +45 -45
  102. package/lib/query/used-in/used-in-query.class.ts +128 -126
  103. package/lib/sdk-info.generated.ts +1 -1
  104. package/lib/services/base-delivery-query.service.ts +375 -375
  105. package/lib/services/delivery-query.service.ts +336 -336
  106. package/lib/services/index.ts +2 -2
  107. package/lib/services/mapping.service.ts +223 -223
  108. package/lib/utilities/codename.helper.ts +10 -10
  109. package/lib/utilities/delivery-url.helper.ts +11 -11
  110. package/lib/utilities/enum.helper.ts +38 -38
  111. package/lib/utilities/index.ts +3 -3
  112. package/package.json +96 -96
  113. package/readme.md +531 -531
@@ -1,20 +1,20 @@
1
- import { Contracts } from '../contracts';
2
- import { IGenericElement } from '../models';
3
-
4
- export class GenericElementMapper {
5
- mapElement(response: Contracts.IViewContentTypeElementContract): IGenericElement {
6
- if (!response) {
7
- throw Error(`Invalid response for mapping element`);
8
- }
9
-
10
- const element = response;
11
-
12
- return {
13
- codename: element.codename,
14
- name: element.name,
15
- type: element.type,
16
- options: element.options ? element.options : [],
17
- taxonomyGroup: element.taxonomy_group
18
- };
19
- }
20
- }
1
+ import { Contracts } from '../contracts';
2
+ import { IGenericElement } from '../models';
3
+
4
+ export class GenericElementMapper {
5
+ mapElement(response: Contracts.IViewContentTypeElementContract): IGenericElement {
6
+ if (!response) {
7
+ throw Error(`Invalid response for mapping element`);
8
+ }
9
+
10
+ const element = response;
11
+
12
+ return {
13
+ codename: element.codename,
14
+ name: element.name,
15
+ type: element.type,
16
+ options: element.options ? element.options : [],
17
+ taxonomyGroup: element.taxonomy_group
18
+ };
19
+ }
20
+ }
@@ -1,8 +1,8 @@
1
- export * from './element.mapper';
2
- export * from './item.mapper';
3
- export * from './taxonomy.mapper';
4
- export * from './type.mapper';
5
- export * from './generic-element.mapper';
6
- export * from './language.mapper';
7
- export * from './used-in.mapper';
8
- export * from './sync.mapper';
1
+ export * from './element.mapper';
2
+ export * from './item.mapper';
3
+ export * from './taxonomy.mapper';
4
+ export * from './type.mapper';
5
+ export * from './generic-element.mapper';
6
+ export * from './language.mapper';
7
+ export * from './used-in.mapper';
8
+ export * from './sync.mapper';
@@ -1,181 +1,181 @@
1
- import { codenameHelper } from '../utilities';
2
- import { IDeliveryClientConfig } from '../config';
3
- import { Contracts } from '../contracts';
4
- import {
5
- IContentItem,
6
- IContentItemsContainer,
7
- IContentItemWithRawDataContainer,
8
- IContentItemWithRawElements
9
- } from '../models';
10
- import { ElementMapper } from './element.mapper';
11
-
12
- export interface IMapItemResult<
13
- TContentItem extends IContentItem = IContentItem,
14
- TLinkedItemType extends IContentItem = IContentItem
15
- > {
16
- item: TContentItem;
17
- processedItems: IContentItemsContainer<TLinkedItemType>;
18
- preparedItems: IContentItemWithRawDataContainer;
19
- processingStartedForCodenames: string[];
20
- }
21
-
22
- export interface IMultipleItemsMapResult<
23
- TContentItem extends IContentItem = IContentItem,
24
- TLinkedItemType extends IContentItem = IContentItem
25
- > {
26
- items: TContentItem[];
27
- linkedItems: IContentItemsContainer<TLinkedItemType>;
28
- }
29
-
30
- export interface ISingleItemMapResult<
31
- TContentItem extends IContentItem = IContentItem,
32
- TLinkedItemType extends IContentItem = IContentItem
33
- > {
34
- item: TContentItem;
35
- linkedItems: IContentItemsContainer<TLinkedItemType>;
36
- }
37
-
38
- export class ItemMapper<TContentItemType extends IContentItem> {
39
- private readonly elementMapper: ElementMapper<TContentItemType>;
40
-
41
- constructor(readonly config: IDeliveryClientConfig) {
42
- this.elementMapper = new ElementMapper(config);
43
- }
44
-
45
- /**
46
- * Maps single item to its proper strongly typed model from the given response
47
- * @param response Response used to map the item
48
- * @param queryConfig Query configuration
49
- */
50
- mapSingleItemFromResponse<TContentItem extends TContentItemType = TContentItemType>(
51
- response: Contracts.IViewContentItemContract
52
- ): ISingleItemMapResult<TContentItem, TContentItemType> {
53
- const mapResult = this.mapItems<TContentItem>({
54
- mainItems: [response.item],
55
- linkedItems: Object.values(response.modular_content)
56
- });
57
-
58
- return {
59
- item: mapResult.items[0],
60
- linkedItems: mapResult.linkedItems
61
- };
62
- }
63
-
64
- /**
65
- * Maps multiple items to their strongly typed model from the given response
66
- * @param response Response used to map the item
67
- * @param queryConfig Query configuration
68
- */
69
- mapMultipleItemsFromResponse<TContentItem extends TContentItemType = TContentItemType>(
70
- response: Contracts.IItemsWithModularContentContract
71
- ): IMultipleItemsMapResult<TContentItem, TContentItemType> {
72
- const mapResult = this.mapItems<TContentItem>({
73
- mainItems: response.items,
74
- linkedItems: Object.values(response.modular_content)
75
- });
76
-
77
- return mapResult;
78
- }
79
-
80
- /**
81
- * Maps item contracts to full models
82
- */
83
- mapItems<TContentItem extends TContentItemType = TContentItemType>(data: {
84
- mainItems: Contracts.IContentItemContract[];
85
- linkedItems: Contracts.IContentItemContract[];
86
- }): IMultipleItemsMapResult<TContentItem, TContentItemType> {
87
- const processedItems: IContentItemsContainer<TContentItem> = {};
88
- const preparedItems: IContentItemWithRawDataContainer = {};
89
- const processingStartedForCodenames: string[] = [];
90
- const mappedMainItems: TContentItem[] = [];
91
- const mappedLinkedItems: IContentItemsContainer<TContentItem> = {};
92
- const itemsToResolve: Contracts.IContentItemContract[] = [...data.mainItems, ...data.linkedItems];
93
-
94
- // first prepare reference for all items
95
- for (const item of itemsToResolve) {
96
- preparedItems[codenameHelper.escapeCodenameInCodenameIndexer(item.system.codename)] = {
97
- item: this.createContentItem(item),
98
- rawItem: item
99
- };
100
- }
101
-
102
- // then resolve main items
103
- for (const item of data.mainItems) {
104
- const itemResult = this.mapItem<TContentItem>({
105
- item: preparedItems[codenameHelper.escapeCodenameInCodenameIndexer(item.system.codename)],
106
- processedItems: processedItems,
107
- preparedItems: preparedItems,
108
- processingStartedForCodenames: processingStartedForCodenames
109
- });
110
- mappedMainItems.push(itemResult.item);
111
- }
112
-
113
- // and linked items
114
- for (const item of data.linkedItems) {
115
- const itemResult = this.mapItem<TContentItem>({
116
- item: preparedItems[codenameHelper.escapeCodenameInCodenameIndexer(item.system.codename)],
117
- processedItems: processedItems,
118
- preparedItems: preparedItems,
119
- processingStartedForCodenames: processingStartedForCodenames
120
- });
121
-
122
- mappedLinkedItems[item.system.codename] = itemResult.item;
123
- }
124
-
125
- return {
126
- items: mappedMainItems,
127
- linkedItems: mappedLinkedItems
128
- };
129
- }
130
-
131
- /**
132
- * Maps item contract to full model
133
- */
134
- private mapItem<TContentItem extends TContentItemType = TContentItemType>(data: {
135
- item: IContentItemWithRawElements;
136
- processedItems: IContentItemsContainer<TContentItem>;
137
- processingStartedForCodenames: string[];
138
- preparedItems: IContentItemWithRawDataContainer;
139
- }): IMapItemResult<TContentItem, TContentItemType> {
140
- if (!data.item) {
141
- throw Error(`Could not map item because its undefined`);
142
- }
143
-
144
- const result = this.elementMapper.mapElements<TContentItem>({
145
- dataToMap: data.item,
146
- preparedItems: data.preparedItems,
147
- processingStartedForCodenames: [],
148
- processedItems: data.processedItems
149
- });
150
-
151
- if (!result) {
152
- throw Error(`Mapping of content item '${data.item.item.system.codename}' failed`);
153
- }
154
- return {
155
- item: result.item,
156
- processedItems: result.processedItems,
157
- preparedItems: result.preparedItems,
158
- processingStartedForCodenames: result.processingStartedForCodenames
159
- };
160
- }
161
-
162
- private createContentItem(item: Contracts.IContentItemContract): IContentItem {
163
- const contentItem: IContentItem = {
164
- elements: {},
165
- system: {
166
- codename: item.system.codename,
167
- collection: item.system.collection,
168
- id: item.system.id,
169
- language: item.system.language,
170
- lastModified: item.system.last_modified,
171
- name: item.system.name,
172
- sitemapLocations: item.system.sitemap_locations,
173
- type: item.system.type,
174
- workflowStep: item.system.workflow_step ?? null,
175
- workflow: item.system.workflow ?? null
176
- }
177
- };
178
-
179
- return contentItem;
180
- }
181
- }
1
+ import { codenameHelper } from '../utilities';
2
+ import { IDeliveryClientConfig } from '../config';
3
+ import { Contracts } from '../contracts';
4
+ import {
5
+ IContentItem,
6
+ IContentItemsContainer,
7
+ IContentItemWithRawDataContainer,
8
+ IContentItemWithRawElements
9
+ } from '../models';
10
+ import { ElementMapper } from './element.mapper';
11
+
12
+ export interface IMapItemResult<
13
+ TContentItem extends IContentItem = IContentItem,
14
+ TLinkedItemType extends IContentItem = IContentItem
15
+ > {
16
+ item: TContentItem;
17
+ processedItems: IContentItemsContainer<TLinkedItemType>;
18
+ preparedItems: IContentItemWithRawDataContainer;
19
+ processingStartedForCodenames: string[];
20
+ }
21
+
22
+ export interface IMultipleItemsMapResult<
23
+ TContentItem extends IContentItem = IContentItem,
24
+ TLinkedItemType extends IContentItem = IContentItem
25
+ > {
26
+ items: TContentItem[];
27
+ linkedItems: IContentItemsContainer<TLinkedItemType>;
28
+ }
29
+
30
+ export interface ISingleItemMapResult<
31
+ TContentItem extends IContentItem = IContentItem,
32
+ TLinkedItemType extends IContentItem = IContentItem
33
+ > {
34
+ item: TContentItem;
35
+ linkedItems: IContentItemsContainer<TLinkedItemType>;
36
+ }
37
+
38
+ export class ItemMapper<TContentItemType extends IContentItem> {
39
+ private readonly elementMapper: ElementMapper<TContentItemType>;
40
+
41
+ constructor(readonly config: IDeliveryClientConfig) {
42
+ this.elementMapper = new ElementMapper(config);
43
+ }
44
+
45
+ /**
46
+ * Maps single item to its proper strongly typed model from the given response
47
+ * @param response Response used to map the item
48
+ * @param queryConfig Query configuration
49
+ */
50
+ mapSingleItemFromResponse<TContentItem extends TContentItemType = TContentItemType>(
51
+ response: Contracts.IViewContentItemContract
52
+ ): ISingleItemMapResult<TContentItem, TContentItemType> {
53
+ const mapResult = this.mapItems<TContentItem>({
54
+ mainItems: [response.item],
55
+ linkedItems: Object.values(response.modular_content)
56
+ });
57
+
58
+ return {
59
+ item: mapResult.items[0],
60
+ linkedItems: mapResult.linkedItems
61
+ };
62
+ }
63
+
64
+ /**
65
+ * Maps multiple items to their strongly typed model from the given response
66
+ * @param response Response used to map the item
67
+ * @param queryConfig Query configuration
68
+ */
69
+ mapMultipleItemsFromResponse<TContentItem extends TContentItemType = TContentItemType>(
70
+ response: Contracts.IItemsWithModularContentContract
71
+ ): IMultipleItemsMapResult<TContentItem, TContentItemType> {
72
+ const mapResult = this.mapItems<TContentItem>({
73
+ mainItems: response.items,
74
+ linkedItems: Object.values(response.modular_content)
75
+ });
76
+
77
+ return mapResult;
78
+ }
79
+
80
+ /**
81
+ * Maps item contracts to full models
82
+ */
83
+ mapItems<TContentItem extends TContentItemType = TContentItemType>(data: {
84
+ mainItems: Contracts.IContentItemContract[];
85
+ linkedItems: Contracts.IContentItemContract[];
86
+ }): IMultipleItemsMapResult<TContentItem, TContentItemType> {
87
+ const processedItems: IContentItemsContainer<TContentItem> = {};
88
+ const preparedItems: IContentItemWithRawDataContainer = {};
89
+ const processingStartedForCodenames: string[] = [];
90
+ const mappedMainItems: TContentItem[] = [];
91
+ const mappedLinkedItems: IContentItemsContainer<TContentItem> = {};
92
+ const itemsToResolve: Contracts.IContentItemContract[] = [...data.mainItems, ...data.linkedItems];
93
+
94
+ // first prepare reference for all items
95
+ for (const item of itemsToResolve) {
96
+ preparedItems[codenameHelper.escapeCodenameInCodenameIndexer(item.system.codename)] = {
97
+ item: this.createContentItem(item),
98
+ rawItem: item
99
+ };
100
+ }
101
+
102
+ // then resolve main items
103
+ for (const item of data.mainItems) {
104
+ const itemResult = this.mapItem<TContentItem>({
105
+ item: preparedItems[codenameHelper.escapeCodenameInCodenameIndexer(item.system.codename)],
106
+ processedItems: processedItems,
107
+ preparedItems: preparedItems,
108
+ processingStartedForCodenames: processingStartedForCodenames
109
+ });
110
+ mappedMainItems.push(itemResult.item);
111
+ }
112
+
113
+ // and linked items
114
+ for (const item of data.linkedItems) {
115
+ const itemResult = this.mapItem<TContentItem>({
116
+ item: preparedItems[codenameHelper.escapeCodenameInCodenameIndexer(item.system.codename)],
117
+ processedItems: processedItems,
118
+ preparedItems: preparedItems,
119
+ processingStartedForCodenames: processingStartedForCodenames
120
+ });
121
+
122
+ mappedLinkedItems[item.system.codename] = itemResult.item;
123
+ }
124
+
125
+ return {
126
+ items: mappedMainItems,
127
+ linkedItems: mappedLinkedItems
128
+ };
129
+ }
130
+
131
+ /**
132
+ * Maps item contract to full model
133
+ */
134
+ private mapItem<TContentItem extends TContentItemType = TContentItemType>(data: {
135
+ item: IContentItemWithRawElements;
136
+ processedItems: IContentItemsContainer<TContentItem>;
137
+ processingStartedForCodenames: string[];
138
+ preparedItems: IContentItemWithRawDataContainer;
139
+ }): IMapItemResult<TContentItem, TContentItemType> {
140
+ if (!data.item) {
141
+ throw Error(`Could not map item because its undefined`);
142
+ }
143
+
144
+ const result = this.elementMapper.mapElements<TContentItem>({
145
+ dataToMap: data.item,
146
+ preparedItems: data.preparedItems,
147
+ processingStartedForCodenames: [],
148
+ processedItems: data.processedItems
149
+ });
150
+
151
+ if (!result) {
152
+ throw Error(`Mapping of content item '${data.item.item.system.codename}' failed`);
153
+ }
154
+ return {
155
+ item: result.item,
156
+ processedItems: result.processedItems,
157
+ preparedItems: result.preparedItems,
158
+ processingStartedForCodenames: result.processingStartedForCodenames
159
+ };
160
+ }
161
+
162
+ private createContentItem(item: Contracts.IContentItemContract): IContentItem {
163
+ const contentItem: IContentItem = {
164
+ elements: {},
165
+ system: {
166
+ codename: item.system.codename,
167
+ collection: item.system.collection,
168
+ id: item.system.id,
169
+ language: item.system.language,
170
+ lastModified: item.system.last_modified,
171
+ name: item.system.name,
172
+ sitemapLocations: item.system.sitemap_locations,
173
+ type: item.system.type,
174
+ workflowStep: item.system.workflow_step ?? null,
175
+ workflow: item.system.workflow ?? null
176
+ }
177
+ };
178
+
179
+ return contentItem;
180
+ }
181
+ }
@@ -1,24 +1,24 @@
1
- import { Contracts } from '../contracts';
2
- import { ILanguage } from '../models';
3
-
4
- export class LanguageMapper<TLanguageCodenames extends string> {
5
- mapMultipleLanguages(response: Contracts.IListLanguagesContract): ILanguage<TLanguageCodenames>[] {
6
- return response.languages.map((language) => {
7
- return this.mapLanguage(language);
8
- });
9
- }
10
-
11
- private mapLanguage(language: Contracts.ILanguageContract): ILanguage<TLanguageCodenames> {
12
- if (!language) {
13
- throw Error(`Cannot map language`);
14
- }
15
-
16
- return {
17
- system: {
18
- codename: language.system.codename as TLanguageCodenames,
19
- id: language.system.id,
20
- name: language.system.name
21
- }
22
- };
23
- }
24
- }
1
+ import { Contracts } from '../contracts';
2
+ import { ILanguage } from '../models';
3
+
4
+ export class LanguageMapper<TLanguageCodenames extends string> {
5
+ mapMultipleLanguages(response: Contracts.IListLanguagesContract): ILanguage<TLanguageCodenames>[] {
6
+ return response.languages.map((language) => {
7
+ return this.mapLanguage(language);
8
+ });
9
+ }
10
+
11
+ private mapLanguage(language: Contracts.ILanguageContract): ILanguage<TLanguageCodenames> {
12
+ if (!language) {
13
+ throw Error(`Cannot map language`);
14
+ }
15
+
16
+ return {
17
+ system: {
18
+ codename: language.system.codename as TLanguageCodenames,
19
+ id: language.system.id,
20
+ name: language.system.name
21
+ }
22
+ };
23
+ }
24
+ }
@@ -1,32 +1,32 @@
1
- import { Contracts } from '../contracts';
2
- import { IContentItemDelta } from '../models';
3
-
4
- export class SyncMapper {
5
- mapContentItemDelta(itemDeltaContract: Contracts.IContentItemDeltaContract): IContentItemDelta {
6
- const systemContract = itemDeltaContract.data.system;
7
-
8
- const elements: Contracts.IContentItemElementsContracts = itemDeltaContract.data.elements
9
- ? itemDeltaContract.data.elements
10
- : {};
11
-
12
- return {
13
- changeType: itemDeltaContract.change_type,
14
- timestamp: itemDeltaContract.timestamp,
15
- data: {
16
- elements: elements,
17
- system: {
18
- codename: systemContract.codename,
19
- collection: systemContract.collection,
20
- id: systemContract.id,
21
- language: systemContract.language,
22
- lastModified: systemContract.last_modified,
23
- name: systemContract.name,
24
- sitemapLocations: systemContract.sitemap_locations,
25
- type: systemContract.type,
26
- workflowStep: systemContract.workflow_step ?? null,
27
- workflow: systemContract.workflow ?? null
28
- }
29
- }
30
- };
31
- }
32
- }
1
+ import { Contracts } from '../contracts';
2
+ import { IContentItemDelta } from '../models';
3
+
4
+ export class SyncMapper {
5
+ mapContentItemDelta(itemDeltaContract: Contracts.IContentItemDeltaContract): IContentItemDelta {
6
+ const systemContract = itemDeltaContract.data.system;
7
+
8
+ const elements: Contracts.IContentItemElementsContracts = itemDeltaContract.data.elements
9
+ ? itemDeltaContract.data.elements
10
+ : {};
11
+
12
+ return {
13
+ changeType: itemDeltaContract.change_type,
14
+ timestamp: itemDeltaContract.timestamp,
15
+ data: {
16
+ elements: elements,
17
+ system: {
18
+ codename: systemContract.codename,
19
+ collection: systemContract.collection,
20
+ id: systemContract.id,
21
+ language: systemContract.language,
22
+ lastModified: systemContract.last_modified,
23
+ name: systemContract.name,
24
+ sitemapLocations: systemContract.sitemap_locations,
25
+ type: systemContract.type,
26
+ workflowStep: systemContract.workflow_step ?? null,
27
+ workflow: systemContract.workflow ?? null
28
+ }
29
+ }
30
+ };
31
+ }
32
+ }