@teemill/gfn-catalog 0.1.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 (51) hide show
  1. package/.openapi-generator/FILES +21 -0
  2. package/.openapi-generator/VERSION +1 -0
  3. package/.openapi-generator-ignore +23 -0
  4. package/README.md +45 -0
  5. package/dist/apis/ProductsApi.d.ts +33 -0
  6. package/dist/apis/ProductsApi.js +160 -0
  7. package/dist/apis/VariantsApi.d.ts +48 -0
  8. package/dist/apis/VariantsApi.js +229 -0
  9. package/dist/apis/index.d.ts +2 -0
  10. package/dist/apis/index.js +20 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.js +21 -0
  13. package/dist/models/ApiError.d.ts +37 -0
  14. package/dist/models/ApiError.js +53 -0
  15. package/dist/models/Attribute.d.ts +50 -0
  16. package/dist/models/Attribute.js +59 -0
  17. package/dist/models/AttributeThumbnail.d.ts +46 -0
  18. package/dist/models/AttributeThumbnail.js +60 -0
  19. package/dist/models/Image.d.ts +67 -0
  20. package/dist/models/Image.js +62 -0
  21. package/dist/models/Product.d.ts +56 -0
  22. package/dist/models/Product.js +60 -0
  23. package/dist/models/ProductsResponse.d.ts +32 -0
  24. package/dist/models/ProductsResponse.js +51 -0
  25. package/dist/models/Variant.d.ts +64 -0
  26. package/dist/models/Variant.js +65 -0
  27. package/dist/models/VariantProduct.d.ts +37 -0
  28. package/dist/models/VariantProduct.js +52 -0
  29. package/dist/models/VariantsResponse.d.ts +32 -0
  30. package/dist/models/VariantsResponse.js +51 -0
  31. package/dist/models/index.d.ts +9 -0
  32. package/dist/models/index.js +27 -0
  33. package/dist/runtime.d.ts +187 -0
  34. package/dist/runtime.js +565 -0
  35. package/package.json +19 -0
  36. package/src/apis/ProductsApi.ts +103 -0
  37. package/src/apis/VariantsApi.ts +176 -0
  38. package/src/apis/index.ts +4 -0
  39. package/src/index.ts +5 -0
  40. package/src/models/ApiError.ts +74 -0
  41. package/src/models/Attribute.ts +98 -0
  42. package/src/models/AttributeThumbnail.ts +85 -0
  43. package/src/models/Image.ts +113 -0
  44. package/src/models/Product.ts +105 -0
  45. package/src/models/ProductsResponse.ts +72 -0
  46. package/src/models/Variant.ts +126 -0
  47. package/src/models/VariantProduct.ts +73 -0
  48. package/src/models/VariantsResponse.ts +72 -0
  49. package/src/models/index.ts +11 -0
  50. package/src/runtime.ts +441 -0
  51. package/tsconfig.json +20 -0
@@ -0,0 +1,176 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * GFN Catalog API
5
+ * Manage Teemill GFN Products For full documentation on functionality and account settings go to [teemill.com](https://teemill.com)
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ * Contact: hello@teemill.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+ import * as runtime from '../runtime';
17
+ import type {
18
+ ApiError,
19
+ Variant,
20
+ VariantsResponse,
21
+ } from '../models/index';
22
+ import {
23
+ ApiErrorFromJSON,
24
+ ApiErrorToJSON,
25
+ VariantFromJSON,
26
+ VariantToJSON,
27
+ VariantsResponseFromJSON,
28
+ VariantsResponseToJSON,
29
+ } from '../models/index';
30
+
31
+ export interface GetVariantRequest {
32
+ project: string;
33
+ variantId: string;
34
+ fields?: string;
35
+ }
36
+
37
+ export interface ListVariantsRequest {
38
+ project: string;
39
+ fields?: string;
40
+ search?: string;
41
+ }
42
+
43
+ /**
44
+ *
45
+ */
46
+ export class VariantsApi extends runtime.BaseAPI {
47
+
48
+ /**
49
+ * Gets a GFN variant by the given id
50
+ * Get a GFN variant
51
+ */
52
+ async getVariantRaw(requestParameters: GetVariantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Variant>> {
53
+ if (requestParameters.project === null || requestParameters.project === undefined) {
54
+ throw new runtime.RequiredError('project','Required parameter requestParameters.project was null or undefined when calling getVariant.');
55
+ }
56
+
57
+ if (requestParameters.variantId === null || requestParameters.variantId === undefined) {
58
+ throw new runtime.RequiredError('variantId','Required parameter requestParameters.variantId was null or undefined when calling getVariant.');
59
+ }
60
+
61
+ const queryParameters: any = {};
62
+
63
+ if (requestParameters.project !== undefined) {
64
+ queryParameters['project'] = requestParameters.project;
65
+ }
66
+
67
+ if (requestParameters.fields !== undefined) {
68
+ queryParameters['fields'] = requestParameters.fields;
69
+ }
70
+
71
+ const headerParameters: runtime.HTTPHeaders = {};
72
+
73
+ if (this.configuration && this.configuration.accessToken) {
74
+ // oauth required
75
+ headerParameters["Authorization"] = await this.configuration.accessToken("session-oauth", []);
76
+ }
77
+
78
+ if (this.configuration && this.configuration.apiKey) {
79
+ headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // api-key authentication
80
+ }
81
+
82
+ const response = await this.request({
83
+ path: `/v1/gfn/catalog/variants/{variantId}`.replace(`{${"variantId"}}`, encodeURIComponent(String(requestParameters.variantId))),
84
+ method: 'GET',
85
+ headers: headerParameters,
86
+ query: queryParameters,
87
+ }, initOverrides);
88
+
89
+ return new runtime.JSONApiResponse(response, (jsonValue) => VariantFromJSON(jsonValue));
90
+ }
91
+
92
+ /**
93
+ * Gets a GFN variant by the given id
94
+ * Get a GFN variant
95
+ */
96
+ async getVariant(
97
+ project: string, variantId: string,
98
+ optionalParameters: runtime.OptionalOnly<GetVariantRequest> = {},
99
+ initOverrides?: RequestInit | runtime.InitOverrideFunction
100
+ ): Promise<Variant> {
101
+ const response = await this.getVariantRaw(
102
+ {
103
+ project: project,variantId: variantId,
104
+ ...optionalParameters,
105
+ },
106
+ initOverrides
107
+ );
108
+
109
+ return await response.value();
110
+ }
111
+
112
+ /**
113
+ * Lists GFN variants
114
+ * List GFN variants
115
+ */
116
+ async listVariantsRaw(requestParameters: ListVariantsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<VariantsResponse>> {
117
+ if (requestParameters.project === null || requestParameters.project === undefined) {
118
+ throw new runtime.RequiredError('project','Required parameter requestParameters.project was null or undefined when calling listVariants.');
119
+ }
120
+
121
+ const queryParameters: any = {};
122
+
123
+ if (requestParameters.project !== undefined) {
124
+ queryParameters['project'] = requestParameters.project;
125
+ }
126
+
127
+ if (requestParameters.fields !== undefined) {
128
+ queryParameters['fields'] = requestParameters.fields;
129
+ }
130
+
131
+ if (requestParameters.search !== undefined) {
132
+ queryParameters['search'] = requestParameters.search;
133
+ }
134
+
135
+ const headerParameters: runtime.HTTPHeaders = {};
136
+
137
+ if (this.configuration && this.configuration.accessToken) {
138
+ // oauth required
139
+ headerParameters["Authorization"] = await this.configuration.accessToken("session-oauth", []);
140
+ }
141
+
142
+ if (this.configuration && this.configuration.apiKey) {
143
+ headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // api-key authentication
144
+ }
145
+
146
+ const response = await this.request({
147
+ path: `/v1/gfn/catalog/variants`,
148
+ method: 'GET',
149
+ headers: headerParameters,
150
+ query: queryParameters,
151
+ }, initOverrides);
152
+
153
+ return new runtime.JSONApiResponse(response, (jsonValue) => VariantsResponseFromJSON(jsonValue));
154
+ }
155
+
156
+ /**
157
+ * Lists GFN variants
158
+ * List GFN variants
159
+ */
160
+ async listVariants(
161
+ project: string,
162
+ optionalParameters: runtime.OptionalOnly<ListVariantsRequest> = {},
163
+ initOverrides?: RequestInit | runtime.InitOverrideFunction
164
+ ): Promise<VariantsResponse> {
165
+ const response = await this.listVariantsRaw(
166
+ {
167
+ project: project,
168
+ ...optionalParameters,
169
+ },
170
+ initOverrides
171
+ );
172
+
173
+ return await response.value();
174
+ }
175
+
176
+ }
@@ -0,0 +1,4 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export * from './ProductsApi';
4
+ export * from './VariantsApi';
package/src/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export * from './runtime';
4
+ export * from './apis/index';
5
+ export * from './models/index';
@@ -0,0 +1,74 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * GFN Catalog API
5
+ * Manage Teemill GFN Products For full documentation on functionality and account settings go to [teemill.com](https://teemill.com)
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ * Contact: hello@teemill.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { exists, mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface ApiError
20
+ */
21
+ export interface ApiError {
22
+ /**
23
+ *
24
+ * @type {string}
25
+ * @memberof ApiError
26
+ */
27
+ code?: string;
28
+ /**
29
+ *
30
+ * @type {string}
31
+ * @memberof ApiError
32
+ */
33
+ message: string;
34
+ }
35
+
36
+ /**
37
+ * Check if a given object implements the ApiError interface.
38
+ */
39
+ export function instanceOfApiError(value: object): boolean {
40
+ let isInstance = true;
41
+ isInstance = isInstance && "message" in value;
42
+
43
+ return isInstance;
44
+ }
45
+
46
+ export function ApiErrorFromJSON(json: any): ApiError {
47
+ return ApiErrorFromJSONTyped(json, false);
48
+ }
49
+
50
+ export function ApiErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApiError {
51
+ if ((json === undefined) || (json === null)) {
52
+ return json;
53
+ }
54
+ return {
55
+
56
+ 'code': !exists(json, 'code') ? undefined : json['code'],
57
+ 'message': json['message'],
58
+ };
59
+ }
60
+
61
+ export function ApiErrorToJSON(value?: ApiError | null): any {
62
+ if (value === undefined) {
63
+ return undefined;
64
+ }
65
+ if (value === null) {
66
+ return null;
67
+ }
68
+ return {
69
+
70
+ 'code': value.code,
71
+ 'message': value.message,
72
+ };
73
+ }
74
+
@@ -0,0 +1,98 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * GFN Catalog API
5
+ * Manage Teemill GFN Products For full documentation on functionality and account settings go to [teemill.com](https://teemill.com)
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ * Contact: hello@teemill.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { exists, mapValues } from '../runtime';
16
+ import type { AttributeThumbnail } from './AttributeThumbnail';
17
+ import {
18
+ AttributeThumbnailFromJSON,
19
+ AttributeThumbnailFromJSONTyped,
20
+ AttributeThumbnailToJSON,
21
+ } from './AttributeThumbnail';
22
+
23
+ /**
24
+ *
25
+ * @export
26
+ * @interface Attribute
27
+ */
28
+ export interface Attribute {
29
+ /**
30
+ * Attribute name
31
+ * @type {string}
32
+ * @memberof Attribute
33
+ */
34
+ name: string;
35
+ /**
36
+ * Attribute value
37
+ * @type {string}
38
+ * @memberof Attribute
39
+ */
40
+ value: string;
41
+ /**
42
+ *
43
+ * @type {AttributeThumbnail}
44
+ * @memberof Attribute
45
+ */
46
+ thumbnail?: AttributeThumbnail;
47
+ /**
48
+ * Attribute tags
49
+ * @type {Array<string>}
50
+ * @memberof Attribute
51
+ */
52
+ tags?: Array<string>;
53
+ }
54
+
55
+ /**
56
+ * Check if a given object implements the Attribute interface.
57
+ */
58
+ export function instanceOfAttribute(value: object): boolean {
59
+ let isInstance = true;
60
+ isInstance = isInstance && "name" in value;
61
+ isInstance = isInstance && "value" in value;
62
+
63
+ return isInstance;
64
+ }
65
+
66
+ export function AttributeFromJSON(json: any): Attribute {
67
+ return AttributeFromJSONTyped(json, false);
68
+ }
69
+
70
+ export function AttributeFromJSONTyped(json: any, ignoreDiscriminator: boolean): Attribute {
71
+ if ((json === undefined) || (json === null)) {
72
+ return json;
73
+ }
74
+ return {
75
+
76
+ 'name': json['name'],
77
+ 'value': json['value'],
78
+ 'thumbnail': !exists(json, 'thumbnail') ? undefined : AttributeThumbnailFromJSON(json['thumbnail']),
79
+ 'tags': !exists(json, 'tags') ? undefined : json['tags'],
80
+ };
81
+ }
82
+
83
+ export function AttributeToJSON(value?: Attribute | null): any {
84
+ if (value === undefined) {
85
+ return undefined;
86
+ }
87
+ if (value === null) {
88
+ return null;
89
+ }
90
+ return {
91
+
92
+ 'name': value.name,
93
+ 'value': value.value,
94
+ 'thumbnail': AttributeThumbnailToJSON(value.thumbnail),
95
+ 'tags': value.tags,
96
+ };
97
+ }
98
+
@@ -0,0 +1,85 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * GFN Catalog API
5
+ * Manage Teemill GFN Products For full documentation on functionality and account settings go to [teemill.com](https://teemill.com)
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ * Contact: hello@teemill.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { exists, mapValues } from '../runtime';
16
+ /**
17
+ * Attribute thumbnail
18
+ * @export
19
+ * @interface AttributeThumbnail
20
+ */
21
+ export interface AttributeThumbnail {
22
+ /**
23
+ *
24
+ * @type {string}
25
+ * @memberof AttributeThumbnail
26
+ */
27
+ type?: AttributeThumbnailTypeEnum;
28
+ /**
29
+ *
30
+ * @type {string}
31
+ * @memberof AttributeThumbnail
32
+ */
33
+ value?: string;
34
+ }
35
+
36
+
37
+ /**
38
+ * @export
39
+ */
40
+ export const AttributeThumbnailTypeEnum = {
41
+ Text: 'text',
42
+ Color: 'color',
43
+ Image: 'image'
44
+ } as const;
45
+ export type AttributeThumbnailTypeEnum = typeof AttributeThumbnailTypeEnum[keyof typeof AttributeThumbnailTypeEnum];
46
+
47
+
48
+ /**
49
+ * Check if a given object implements the AttributeThumbnail interface.
50
+ */
51
+ export function instanceOfAttributeThumbnail(value: object): boolean {
52
+ let isInstance = true;
53
+
54
+ return isInstance;
55
+ }
56
+
57
+ export function AttributeThumbnailFromJSON(json: any): AttributeThumbnail {
58
+ return AttributeThumbnailFromJSONTyped(json, false);
59
+ }
60
+
61
+ export function AttributeThumbnailFromJSONTyped(json: any, ignoreDiscriminator: boolean): AttributeThumbnail {
62
+ if ((json === undefined) || (json === null)) {
63
+ return json;
64
+ }
65
+ return {
66
+
67
+ 'type': !exists(json, 'type') ? undefined : json['type'],
68
+ 'value': !exists(json, 'value') ? undefined : json['value'],
69
+ };
70
+ }
71
+
72
+ export function AttributeThumbnailToJSON(value?: AttributeThumbnail | null): any {
73
+ if (value === undefined) {
74
+ return undefined;
75
+ }
76
+ if (value === null) {
77
+ return null;
78
+ }
79
+ return {
80
+
81
+ 'type': value.type,
82
+ 'value': value.value,
83
+ };
84
+ }
85
+
@@ -0,0 +1,113 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * GFN Catalog API
5
+ * Manage Teemill GFN Products For full documentation on functionality and account settings go to [teemill.com](https://teemill.com)
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ * Contact: hello@teemill.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { exists, mapValues } from '../runtime';
16
+ /**
17
+ * Image description
18
+ * @export
19
+ * @interface Image
20
+ */
21
+ export interface Image {
22
+ /**
23
+ * Unique object identifier
24
+ * @type {string}
25
+ * @memberof Image
26
+ */
27
+ id?: string;
28
+ /**
29
+ *
30
+ * @type {string}
31
+ * @memberof Image
32
+ */
33
+ src?: string;
34
+ /**
35
+ *
36
+ * @type {string}
37
+ * @memberof Image
38
+ */
39
+ alt?: string;
40
+ /**
41
+ * List of variant Ids
42
+ * @type {Array<string>}
43
+ * @memberof Image
44
+ */
45
+ variantIds?: Array<string>;
46
+ /**
47
+ *
48
+ * @type {number}
49
+ * @memberof Image
50
+ */
51
+ sortOrder?: number;
52
+ /**
53
+ *
54
+ * @type {string}
55
+ * @memberof Image
56
+ */
57
+ createdAt?: string;
58
+ /**
59
+ *
60
+ * @type {string}
61
+ * @memberof Image
62
+ */
63
+ updatedAt?: string;
64
+ }
65
+
66
+ /**
67
+ * Check if a given object implements the Image interface.
68
+ */
69
+ export function instanceOfImage(value: object): boolean {
70
+ let isInstance = true;
71
+
72
+ return isInstance;
73
+ }
74
+
75
+ export function ImageFromJSON(json: any): Image {
76
+ return ImageFromJSONTyped(json, false);
77
+ }
78
+
79
+ export function ImageFromJSONTyped(json: any, ignoreDiscriminator: boolean): Image {
80
+ if ((json === undefined) || (json === null)) {
81
+ return json;
82
+ }
83
+ return {
84
+
85
+ 'id': !exists(json, 'id') ? undefined : json['id'],
86
+ 'src': !exists(json, 'src') ? undefined : json['src'],
87
+ 'alt': !exists(json, 'alt') ? undefined : json['alt'],
88
+ 'variantIds': !exists(json, 'variantIds') ? undefined : json['variantIds'],
89
+ 'sortOrder': !exists(json, 'sortOrder') ? undefined : json['sortOrder'],
90
+ 'createdAt': !exists(json, 'createdAt') ? undefined : json['createdAt'],
91
+ 'updatedAt': !exists(json, 'updatedAt') ? undefined : json['updatedAt'],
92
+ };
93
+ }
94
+
95
+ export function ImageToJSON(value?: Image | null): any {
96
+ if (value === undefined) {
97
+ return undefined;
98
+ }
99
+ if (value === null) {
100
+ return null;
101
+ }
102
+ return {
103
+
104
+ 'id': value.id,
105
+ 'src': value.src,
106
+ 'alt': value.alt,
107
+ 'variantIds': value.variantIds,
108
+ 'sortOrder': value.sortOrder,
109
+ 'createdAt': value.createdAt,
110
+ 'updatedAt': value.updatedAt,
111
+ };
112
+ }
113
+
@@ -0,0 +1,105 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * GFN Catalog API
5
+ * Manage Teemill GFN Products For full documentation on functionality and account settings go to [teemill.com](https://teemill.com)
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ * Contact: hello@teemill.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { exists, mapValues } from '../runtime';
16
+ import type { Image } from './Image';
17
+ import {
18
+ ImageFromJSON,
19
+ ImageFromJSONTyped,
20
+ ImageToJSON,
21
+ } from './Image';
22
+
23
+ /**
24
+ *
25
+ * @export
26
+ * @interface Product
27
+ */
28
+ export interface Product {
29
+ /**
30
+ * Unique object identifier
31
+ * @type {string}
32
+ * @memberof Product
33
+ */
34
+ id?: string;
35
+ /**
36
+ * A reference to the resource location
37
+ * @type {string}
38
+ * @memberof Product
39
+ */
40
+ ref?: string;
41
+ /**
42
+ *
43
+ * @type {string}
44
+ * @memberof Product
45
+ */
46
+ title: string;
47
+ /**
48
+ *
49
+ * @type {string}
50
+ * @memberof Product
51
+ */
52
+ sku?: string;
53
+ /**
54
+ * Images
55
+ * @type {Array<Image>}
56
+ * @memberof Product
57
+ */
58
+ images?: Array<Image>;
59
+ }
60
+
61
+ /**
62
+ * Check if a given object implements the Product interface.
63
+ */
64
+ export function instanceOfProduct(value: object): boolean {
65
+ let isInstance = true;
66
+ isInstance = isInstance && "title" in value;
67
+
68
+ return isInstance;
69
+ }
70
+
71
+ export function ProductFromJSON(json: any): Product {
72
+ return ProductFromJSONTyped(json, false);
73
+ }
74
+
75
+ export function ProductFromJSONTyped(json: any, ignoreDiscriminator: boolean): Product {
76
+ if ((json === undefined) || (json === null)) {
77
+ return json;
78
+ }
79
+ return {
80
+
81
+ 'id': !exists(json, 'id') ? undefined : json['id'],
82
+ 'ref': !exists(json, 'ref') ? undefined : json['ref'],
83
+ 'title': json['title'],
84
+ 'sku': !exists(json, 'sku') ? undefined : json['sku'],
85
+ 'images': !exists(json, 'images') ? undefined : ((json['images'] as Array<any>).map(ImageFromJSON)),
86
+ };
87
+ }
88
+
89
+ export function ProductToJSON(value?: Product | null): any {
90
+ if (value === undefined) {
91
+ return undefined;
92
+ }
93
+ if (value === null) {
94
+ return null;
95
+ }
96
+ return {
97
+
98
+ 'id': value.id,
99
+ 'ref': value.ref,
100
+ 'title': value.title,
101
+ 'sku': value.sku,
102
+ 'images': value.images === undefined ? undefined : ((value.images as Array<any>).map(ImageToJSON)),
103
+ };
104
+ }
105
+