@datocms/rest-client-utils 5.1.1 → 5.1.4

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.
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeResponseBody = exports.deserializeJsonEntity = void 0;
3
+ exports.deserializeRawResponseBodyWithItems = exports.deserializeRawItem = exports.deserializeResponseBody = exports.deserializeJsonEntity = void 0;
4
4
  function hasData(thing) {
5
5
  return typeof thing === 'object' && !!thing && 'data' in thing;
6
6
  }
7
- function deserializeJsonEntity({ id, type, attributes, relationships, meta, }) {
8
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (id ? { id } : {})), (type ? { type } : {})), (attributes || {})), (relationships
7
+ function deserializeJsonEntity({ __itemTypeId, id, type, attributes, relationships, meta, }) {
8
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (__itemTypeId ? { __itemTypeId } : {})), (id ? { id } : {})), (type ? { type } : {})), (attributes || {})), (relationships
9
9
  ? Object.fromEntries(Object.entries(relationships).map(([rel, value]) => [
10
10
  rel,
11
11
  value === null || value === void 0 ? void 0 : value.data,
@@ -23,4 +23,46 @@ function deserializeResponseBody(body) {
23
23
  return deserializeJsonEntity(body.data);
24
24
  }
25
25
  exports.deserializeResponseBody = deserializeResponseBody;
26
+ function isItemEntity(entity) {
27
+ return Boolean(entity &&
28
+ typeof entity === 'object' &&
29
+ 'type' in entity &&
30
+ entity.type === 'item');
31
+ }
32
+ function processValue(value) {
33
+ if (Array.isArray(value)) {
34
+ return value.map(processValue);
35
+ }
36
+ if (value && typeof value === 'object') {
37
+ if (isItemEntity(value)) {
38
+ return deserializeRawItem(value);
39
+ }
40
+ const result = {};
41
+ for (const [key, val] of Object.entries(value)) {
42
+ result[key] = processValue(val);
43
+ }
44
+ return result;
45
+ }
46
+ return value;
47
+ }
48
+ function deserializeRawItem(entity) {
49
+ if (!isItemEntity(entity)) {
50
+ return entity;
51
+ }
52
+ const processedAttributes = entity.attributes
53
+ ? processValue(entity.attributes)
54
+ : entity.attributes;
55
+ return Object.assign(Object.assign({}, entity), { attributes: processedAttributes, __itemTypeId: entity.relationships.item_type.data.id });
56
+ }
57
+ exports.deserializeRawItem = deserializeRawItem;
58
+ function deserializeRawResponseBodyWithItems(body) {
59
+ if (!hasData(body)) {
60
+ throw new Error('Invalid body!');
61
+ }
62
+ if (Array.isArray(body.data)) {
63
+ return Object.assign(Object.assign({}, body), { data: body.data.map(deserializeRawItem) });
64
+ }
65
+ return Object.assign(Object.assign({}, body), { data: deserializeRawItem(body.data) });
66
+ }
67
+ exports.deserializeRawResponseBodyWithItems = deserializeRawResponseBodyWithItems;
26
68
  //# sourceMappingURL=deserialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../src/deserialize.ts"],"names":[],"mappings":";;;AAYA,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACjE,CAAC;AAED,SAAgB,qBAAqB,CAAI,EACvC,EAAE,EACF,IAAI,EACJ,UAAU,EACV,aAAa,EACb,IAAI,GACU;IACd,OAAO,0EACF,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAClB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACtB,CAAC,UAAU,IAAI,EAAE,CAAC,GAClB,CAAC,aAAa;QACf,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAClD,GAAG;YACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI;SACZ,CAAC,CACH;QACH,CAAC,CAAC,EAAE,CAAC,GACJ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrB,CAAC;AACT,CAAC;AArBD,sDAqBC;AAED,SAAgB,uBAAuB,CAAI,IAAa;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KAClC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAiB,CAAC;KAC7D;IAED,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAC;AAC1D,CAAC;AAVD,0DAUC"}
1
+ {"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../src/deserialize.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,8 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.warnOnPageQueryParam = exports.rawPageIterator = void 0;
16
16
  const async_scheduler_1 = require("async-scheduler");
17
- function rawPageIterator(pagination, callPerformer, iteratorOptions) {
17
+ const deserialize_1 = require("./deserialize");
18
+ function rawPageIterator(pagination, callPerformer, iteratorOptions, deserializeRawRequestBodyWithItems) {
18
19
  return __asyncGenerator(this, arguments, function* rawPageIterator_1() {
19
20
  const perPage = (iteratorOptions === null || iteratorOptions === void 0 ? void 0 : iteratorOptions.perPage) || pagination.defaultLimit;
20
21
  if (perPage > pagination.maxLimit) {
@@ -37,7 +38,9 @@ function rawPageIterator(pagination, callPerformer, iteratorOptions) {
37
38
  while (promises.length > 0) {
38
39
  const response = yield __await(promises.shift());
39
40
  for (const item of response.data) {
40
- yield yield __await(item);
41
+ yield yield __await(deserializeRawRequestBodyWithItems
42
+ ? (0, deserialize_1.deserializeRawItem)(item)
43
+ : item);
41
44
  }
42
45
  }
43
46
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rawPageIterator.js","sourceRoot":"","sources":["../../src/rawPageIterator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAA4C;AAiB5C,SAAuB,eAAe,CACpC,UAA6B,EAC7B,aAG6B,EAC7B,eAAiC;;QAEjC,MAAM,OAAO,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,KAAI,UAAU,CAAC,YAAY,CAAC;QAEpE,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,iDAAiD,UAAU,CAAC,QAAQ,EAAE,CACvE,CAAC;SACH;QAED,MAAM,WAAW,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,KAAI,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;QAED,MAAM,aAAa,GAAG,cAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC;QAEzE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,oBAAM,IAAI,CAAA,CAAC;SACZ;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,2BAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAA8B,EAAE,CAAC;QAE/C,KAAK,IAAI,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE;YACjE,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,OAAO,CAAuB,GAAG,EAAE,CACzC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAC1C,CACF,CAAC;SACH;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,QAAQ,GAAG,cAAM,QAAQ,CAAC,KAAK,EAAG,CAAA,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAChC,oBAAM,IAAI,CAAA,CAAC;aACZ;SACF;IACH,CAAC;CAAA;AA/CD,0CA+CC;AAED,SAAgB,oBAAoB,CAClC,WAAgD;IAEhD,IAAI,WAAW,IAAI,MAAM,IAAI,WAAW,EAAE;QACxC,OAAO,CAAC,IAAI,CACV,kGAAkG,CACnG,CAAC;KACH;AACH,CAAC;AARD,oDAQC"}
1
+ {"version":3,"file":"rawPageIterator.js","sourceRoot":"","sources":["../../src/rawPageIterator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAA4C;AAC5C,+CAAmD;AAiBnD,SAAuB,eAAe,CACpC,UAA6B,EAC7B,aAG6B,EAC7B,eAAiC,EACjC,kCAA4C;;QAE5C,MAAM,OAAO,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,KAAI,UAAU,CAAC,YAAY,CAAC;QAEpE,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,iDAAiD,UAAU,CAAC,QAAQ,EAAE,CACvE,CAAC;SACH;QAED,MAAM,WAAW,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,KAAI,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;QAED,MAAM,aAAa,GAAG,cAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC;QAEzE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,oBAAM,IAAI,CAAA,CAAC;SACZ;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,2BAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAA8B,EAAE,CAAC;QAE/C,KAAK,IAAI,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE;YACjE,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,OAAO,CAAuB,GAAG,EAAE,CACzC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAC1C,CACF,CAAC;SACH;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,QAAQ,GAAG,cAAM,QAAQ,CAAC,KAAK,EAAG,CAAA,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAChC,oBAAM,kCAAkC;oBACtC,CAAC,CAAC,IAAA,gCAAkB,EAAC,IAAI,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAA,CAAC;aACV;SACF;IACH,CAAC;CAAA;AAlDD,0CAkDC;AAED,SAAgB,oBAAoB,CAClC,WAAgD;IAEhD,IAAI,WAAW,IAAI,MAAM,IAAI,WAAW,EAAE;QACxC,OAAO,CAAC,IAAI,CACV,kGAAkG,CACnG,CAAC;KACH;AACH,CAAC;AARD,oDAQC"}
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.serializeRequestBody = void 0;
14
+ exports.serializeRawRequestBodyWithItems = exports.serializeRawItem = exports.serializeRequestBody = void 0;
15
15
  function isRel(object) {
16
16
  return (typeof object === 'object' && !!object && 'id' in object && 'type' in object);
17
17
  }
@@ -109,4 +109,41 @@ function serializeRequestBody(body, options) {
109
109
  };
110
110
  }
111
111
  exports.serializeRequestBody = serializeRequestBody;
112
+ function processValueForSerialization(value) {
113
+ if (Array.isArray(value)) {
114
+ return value.map(processValueForSerialization);
115
+ }
116
+ if (value && typeof value === 'object') {
117
+ const result = {};
118
+ for (const [key, val] of Object.entries(value)) {
119
+ if (key !== '__itemTypeId') {
120
+ result[key] = processValueForSerialization(val);
121
+ }
122
+ }
123
+ return result;
124
+ }
125
+ return value;
126
+ }
127
+ function serializeRawItem(item) {
128
+ if (!item || typeof item !== 'object') {
129
+ return item;
130
+ }
131
+ const { __itemTypeId } = item, rest = __rest(item, ["__itemTypeId"]);
132
+ const processedItem = {};
133
+ for (const [key, value] of Object.entries(rest)) {
134
+ processedItem[key] = processValueForSerialization(value);
135
+ }
136
+ return processedItem;
137
+ }
138
+ exports.serializeRawItem = serializeRawItem;
139
+ function serializeRawRequestBodyWithItems(body) {
140
+ if (!('data' in body)) {
141
+ throw new Error('Invalid body!');
142
+ }
143
+ if (Array.isArray(body.data)) {
144
+ return Object.assign(Object.assign({}, body), { data: body.data.map(serializeRawItem) });
145
+ }
146
+ return Object.assign(Object.assign({}, body), { data: serializeRawItem(body.data) });
147
+ }
148
+ exports.serializeRawRequestBodyWithItems = serializeRawRequestBodyWithItems;
112
149
  //# sourceMappingURL=serialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/serialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/serialize.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@ type JsonApiEntity = {
4
4
  attributes?: object;
5
5
  relationships?: object;
6
6
  meta?: object;
7
+ __itemTypeId?: string;
7
8
  };
8
- export declare function deserializeJsonEntity<S>({ id, type, attributes, relationships, meta, }: JsonApiEntity): S;
9
+ export declare function deserializeJsonEntity<S>({ __itemTypeId, id, type, attributes, relationships, meta, }: JsonApiEntity): S;
9
10
  export declare function deserializeResponseBody<T>(body: unknown): T;
11
+ export declare function deserializeRawItem<S>(entity: S): S;
12
+ export declare function deserializeRawResponseBodyWithItems<T>(body: unknown): T;
10
13
  export {};
@@ -1,8 +1,8 @@
1
1
  function hasData(thing) {
2
2
  return typeof thing === 'object' && !!thing && 'data' in thing;
3
3
  }
4
- export function deserializeJsonEntity({ id, type, attributes, relationships, meta, }) {
5
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (id ? { id } : {})), (type ? { type } : {})), (attributes || {})), (relationships
4
+ export function deserializeJsonEntity({ __itemTypeId, id, type, attributes, relationships, meta, }) {
5
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (__itemTypeId ? { __itemTypeId } : {})), (id ? { id } : {})), (type ? { type } : {})), (attributes || {})), (relationships
6
6
  ? Object.fromEntries(Object.entries(relationships).map(([rel, value]) => [
7
7
  rel,
8
8
  value === null || value === void 0 ? void 0 : value.data,
@@ -18,4 +18,44 @@ export function deserializeResponseBody(body) {
18
18
  }
19
19
  return deserializeJsonEntity(body.data);
20
20
  }
21
+ function isItemEntity(entity) {
22
+ return Boolean(entity &&
23
+ typeof entity === 'object' &&
24
+ 'type' in entity &&
25
+ entity.type === 'item');
26
+ }
27
+ function processValue(value) {
28
+ if (Array.isArray(value)) {
29
+ return value.map(processValue);
30
+ }
31
+ if (value && typeof value === 'object') {
32
+ if (isItemEntity(value)) {
33
+ return deserializeRawItem(value);
34
+ }
35
+ const result = {};
36
+ for (const [key, val] of Object.entries(value)) {
37
+ result[key] = processValue(val);
38
+ }
39
+ return result;
40
+ }
41
+ return value;
42
+ }
43
+ export function deserializeRawItem(entity) {
44
+ if (!isItemEntity(entity)) {
45
+ return entity;
46
+ }
47
+ const processedAttributes = entity.attributes
48
+ ? processValue(entity.attributes)
49
+ : entity.attributes;
50
+ return Object.assign(Object.assign({}, entity), { attributes: processedAttributes, __itemTypeId: entity.relationships.item_type.data.id });
51
+ }
52
+ export function deserializeRawResponseBodyWithItems(body) {
53
+ if (!hasData(body)) {
54
+ throw new Error('Invalid body!');
55
+ }
56
+ if (Array.isArray(body.data)) {
57
+ return Object.assign(Object.assign({}, body), { data: body.data.map(deserializeRawItem) });
58
+ }
59
+ return Object.assign(Object.assign({}, body), { data: deserializeRawItem(body.data) });
60
+ }
21
61
  //# sourceMappingURL=deserialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../src/deserialize.ts"],"names":[],"mappings":"AAYA,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAI,EACvC,EAAE,EACF,IAAI,EACJ,UAAU,EACV,aAAa,EACb,IAAI,GACU;IACd,OAAO,0EACF,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAClB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACtB,CAAC,UAAU,IAAI,EAAE,CAAC,GAClB,CAAC,aAAa;QACf,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAClD,GAAG;YACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI;SACZ,CAAC,CACH;QACH,CAAC,CAAC,EAAE,CAAC,GACJ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrB,CAAC;AACT,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAI,IAAa;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KAClC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAiB,CAAC;KAC7D;IAED,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../src/deserialize.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,6 @@ type JsonApiPage<T> = {
15
15
  export declare function rawPageIterator<T>(pagination: PaginationOptions, callPerformer: (page: {
16
16
  limit: number;
17
17
  offset: number;
18
- }) => Promise<JsonApiPage<T>>, iteratorOptions?: IteratorOptions): AsyncGenerator<Awaited<T>, void, unknown>;
18
+ }) => Promise<JsonApiPage<T>>, iteratorOptions?: IteratorOptions, deserializeRawRequestBodyWithItems?: boolean): AsyncGenerator<Awaited<T>, void, unknown>;
19
19
  export declare function warnOnPageQueryParam(queryParams: Record<string, unknown> | undefined): void;
20
20
  export {};
@@ -11,7 +11,8 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
11
11
  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
12
12
  };
13
13
  import { Scheduler } from 'async-scheduler';
14
- export function rawPageIterator(pagination, callPerformer, iteratorOptions) {
14
+ import { deserializeRawItem } from './deserialize';
15
+ export function rawPageIterator(pagination, callPerformer, iteratorOptions, deserializeRawRequestBodyWithItems) {
15
16
  return __asyncGenerator(this, arguments, function* rawPageIterator_1() {
16
17
  const perPage = (iteratorOptions === null || iteratorOptions === void 0 ? void 0 : iteratorOptions.perPage) || pagination.defaultLimit;
17
18
  if (perPage > pagination.maxLimit) {
@@ -34,7 +35,9 @@ export function rawPageIterator(pagination, callPerformer, iteratorOptions) {
34
35
  while (promises.length > 0) {
35
36
  const response = yield __await(promises.shift());
36
37
  for (const item of response.data) {
37
- yield yield __await(item);
38
+ yield yield __await(deserializeRawRequestBodyWithItems
39
+ ? deserializeRawItem(item)
40
+ : item);
38
41
  }
39
42
  }
40
43
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rawPageIterator.js","sourceRoot":"","sources":["../../src/rawPageIterator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiB5C,MAAM,UAAiB,eAAe,CACpC,UAA6B,EAC7B,aAG6B,EAC7B,eAAiC;;QAEjC,MAAM,OAAO,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,KAAI,UAAU,CAAC,YAAY,CAAC;QAEpE,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,iDAAiD,UAAU,CAAC,QAAQ,EAAE,CACvE,CAAC;SACH;QAED,MAAM,WAAW,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,KAAI,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;QAED,MAAM,aAAa,GAAG,cAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC;QAEzE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,oBAAM,IAAI,CAAA,CAAC;SACZ;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAA8B,EAAE,CAAC;QAE/C,KAAK,IAAI,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE;YACjE,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,OAAO,CAAuB,GAAG,EAAE,CACzC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAC1C,CACF,CAAC;SACH;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,QAAQ,GAAG,cAAM,QAAQ,CAAC,KAAK,EAAG,CAAA,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAChC,oBAAM,IAAI,CAAA,CAAC;aACZ;SACF;IACH,CAAC;CAAA;AAED,MAAM,UAAU,oBAAoB,CAClC,WAAgD;IAEhD,IAAI,WAAW,IAAI,MAAM,IAAI,WAAW,EAAE;QACxC,OAAO,CAAC,IAAI,CACV,kGAAkG,CACnG,CAAC;KACH;AACH,CAAC"}
1
+ {"version":3,"file":"rawPageIterator.js","sourceRoot":"","sources":["../../src/rawPageIterator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAiBnD,MAAM,UAAiB,eAAe,CACpC,UAA6B,EAC7B,aAG6B,EAC7B,eAAiC,EACjC,kCAA4C;;QAE5C,MAAM,OAAO,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,KAAI,UAAU,CAAC,YAAY,CAAC;QAEpE,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,iDAAiD,UAAU,CAAC,QAAQ,EAAE,CACvE,CAAC;SACH;QAED,MAAM,WAAW,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,KAAI,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;QAED,MAAM,aAAa,GAAG,cAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC;QAEzE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE;YACrC,oBAAM,IAAI,CAAA,CAAC;SACZ;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAA8B,EAAE,CAAC;QAE/C,KAAK,IAAI,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE;YACjE,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,OAAO,CAAuB,GAAG,EAAE,CACzC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAC1C,CACF,CAAC;SACH;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,QAAQ,GAAG,cAAM,QAAQ,CAAC,KAAK,EAAG,CAAA,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAChC,oBAAM,kCAAkC;oBACtC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAA,CAAC;aACV;SACF;IACH,CAAC;CAAA;AAED,MAAM,UAAU,oBAAoB,CAClC,WAAgD;IAEhD,IAAI,WAAW,IAAI,MAAM,IAAI,WAAW,EAAE;QACxC,OAAO,CAAC,IAAI,CACV,kGAAkG,CACnG,CAAC;KACH;AACH,CAAC"}
@@ -21,4 +21,6 @@ export type Rel = {
21
21
  export declare function serializeRequestBody<T extends {
22
22
  data: unknown;
23
23
  } | null>(body: unknown, options: Options): T;
24
+ export declare function serializeRawItem<S>(item: any): S;
25
+ export declare function serializeRawRequestBodyWithItems(body: any): any;
24
26
  export {};
@@ -105,4 +105,39 @@ export function serializeRequestBody(body, options) {
105
105
  data: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (id || options.id ? { id: id || options.id } : {})), { type: options.type }), (Object.keys(attributes).length > 0 ? { attributes } : {})), (Object.keys(relationships).length > 0 ? { relationships } : {})), (meta ? { meta } : {})),
106
106
  };
107
107
  }
108
+ function processValueForSerialization(value) {
109
+ if (Array.isArray(value)) {
110
+ return value.map(processValueForSerialization);
111
+ }
112
+ if (value && typeof value === 'object') {
113
+ const result = {};
114
+ for (const [key, val] of Object.entries(value)) {
115
+ if (key !== '__itemTypeId') {
116
+ result[key] = processValueForSerialization(val);
117
+ }
118
+ }
119
+ return result;
120
+ }
121
+ return value;
122
+ }
123
+ export function serializeRawItem(item) {
124
+ if (!item || typeof item !== 'object') {
125
+ return item;
126
+ }
127
+ const { __itemTypeId } = item, rest = __rest(item, ["__itemTypeId"]);
128
+ const processedItem = {};
129
+ for (const [key, value] of Object.entries(rest)) {
130
+ processedItem[key] = processValueForSerialization(value);
131
+ }
132
+ return processedItem;
133
+ }
134
+ export function serializeRawRequestBodyWithItems(body) {
135
+ if (!('data' in body)) {
136
+ throw new Error('Invalid body!');
137
+ }
138
+ if (Array.isArray(body.data)) {
139
+ return Object.assign(Object.assign({}, body), { data: body.data.map(serializeRawItem) });
140
+ }
141
+ return Object.assign(Object.assign({}, body), { data: serializeRawItem(body.data) });
142
+ }
108
143
  //# sourceMappingURL=serialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/serialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/serialize.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@ type JsonApiEntity = {
4
4
  attributes?: object;
5
5
  relationships?: object;
6
6
  meta?: object;
7
+ __itemTypeId?: string;
7
8
  };
8
- export declare function deserializeJsonEntity<S>({ id, type, attributes, relationships, meta, }: JsonApiEntity): S;
9
+ export declare function deserializeJsonEntity<S>({ __itemTypeId, id, type, attributes, relationships, meta, }: JsonApiEntity): S;
9
10
  export declare function deserializeResponseBody<T>(body: unknown): T;
11
+ export declare function deserializeRawItem<S>(entity: S): S;
12
+ export declare function deserializeRawResponseBodyWithItems<T>(body: unknown): T;
10
13
  export {};
@@ -15,6 +15,6 @@ type JsonApiPage<T> = {
15
15
  export declare function rawPageIterator<T>(pagination: PaginationOptions, callPerformer: (page: {
16
16
  limit: number;
17
17
  offset: number;
18
- }) => Promise<JsonApiPage<T>>, iteratorOptions?: IteratorOptions): AsyncGenerator<Awaited<T>, void, unknown>;
18
+ }) => Promise<JsonApiPage<T>>, iteratorOptions?: IteratorOptions, deserializeRawRequestBodyWithItems?: boolean): AsyncGenerator<Awaited<T>, void, unknown>;
19
19
  export declare function warnOnPageQueryParam(queryParams: Record<string, unknown> | undefined): void;
20
20
  export {};
@@ -21,4 +21,6 @@ export type Rel = {
21
21
  export declare function serializeRequestBody<T extends {
22
22
  data: unknown;
23
23
  } | null>(body: unknown, options: Options): T;
24
+ export declare function serializeRawItem<S>(item: any): S;
25
+ export declare function serializeRawRequestBodyWithItems(body: any): any;
24
26
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datocms/rest-client-utils",
3
- "version": "5.1.1",
3
+ "version": "5.1.4",
4
4
  "description": "Utilities for DatoCMS REST API clients",
5
5
  "keywords": [
6
6
  "datocms",
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "async-scheduler": "^1.4.4"
40
40
  },
41
- "gitHead": "9683432160a36b785e866b447e2baaecf11f00ab",
41
+ "gitHead": "b9b3aee7d6c78acdfef811fa42a84bc42abc36f7",
42
42
  "devDependencies": {
43
43
  "@types/qs": "^6.9.7"
44
44
  }
@@ -4,6 +4,7 @@ type JsonApiEntity = {
4
4
  attributes?: object;
5
5
  relationships?: object;
6
6
  meta?: object;
7
+ __itemTypeId?: string;
7
8
  };
8
9
 
9
10
  type ResponseWithData = {
@@ -15,6 +16,7 @@ function hasData(thing: unknown): thing is ResponseWithData {
15
16
  }
16
17
 
17
18
  export function deserializeJsonEntity<S>({
19
+ __itemTypeId,
18
20
  id,
19
21
  type,
20
22
  attributes,
@@ -22,6 +24,7 @@ export function deserializeJsonEntity<S>({
22
24
  meta,
23
25
  }: JsonApiEntity): S {
24
26
  return {
27
+ ...(__itemTypeId ? { __itemTypeId } : {}),
25
28
  ...(id ? { id } : {}),
26
29
  ...(type ? { type } : {}),
27
30
  ...(attributes || {}),
@@ -48,3 +51,72 @@ export function deserializeResponseBody<T>(body: unknown): T {
48
51
 
49
52
  return deserializeJsonEntity(body.data) as unknown as T;
50
53
  }
54
+
55
+ type ItemJsonEntity = {
56
+ id?: string;
57
+ type: 'item';
58
+ attributes?: object;
59
+ relationships: {
60
+ item_type: {
61
+ data: { id: string; type: 'item_type' };
62
+ };
63
+ };
64
+ meta?: object;
65
+ };
66
+
67
+ function isItemEntity(entity: unknown): entity is ItemJsonEntity {
68
+ return Boolean(
69
+ entity &&
70
+ typeof entity === 'object' &&
71
+ 'type' in entity &&
72
+ entity.type === 'item',
73
+ );
74
+ }
75
+
76
+ function processValue(value: unknown): unknown {
77
+ if (Array.isArray(value)) {
78
+ return value.map(processValue);
79
+ }
80
+
81
+ if (value && typeof value === 'object') {
82
+ if (isItemEntity(value)) {
83
+ return deserializeRawItem(value);
84
+ }
85
+
86
+ const result: Record<string, unknown> = {};
87
+ for (const [key, val] of Object.entries(value)) {
88
+ result[key] = processValue(val);
89
+ }
90
+ return result;
91
+ }
92
+
93
+ return value;
94
+ }
95
+
96
+ export function deserializeRawItem<S>(entity: S): S {
97
+ if (!isItemEntity(entity)) {
98
+ return entity;
99
+ }
100
+
101
+ const processedAttributes = entity.attributes
102
+ ? processValue(entity.attributes)
103
+ : entity.attributes;
104
+
105
+ return {
106
+ ...entity,
107
+ attributes: processedAttributes,
108
+ __itemTypeId: entity.relationships.item_type.data.id,
109
+ } as S;
110
+ }
111
+
112
+ export function deserializeRawResponseBodyWithItems<T>(body: unknown): T {
113
+ if (!hasData(body)) {
114
+ throw new Error('Invalid body!');
115
+ }
116
+
117
+ if (Array.isArray(body.data)) {
118
+ return { ...body, data: body.data.map(deserializeRawItem) } as unknown as T;
119
+ }
120
+
121
+ return { ...body, data: deserializeRawItem(body.data) } as unknown as T;
122
+ }
@@ -1,4 +1,5 @@
1
1
  import { Scheduler } from 'async-scheduler';
2
+ import { deserializeRawItem } from './deserialize';
2
3
 
3
4
  export type IteratorOptions = {
4
5
  perPage?: number;
@@ -22,6 +23,7 @@ export async function* rawPageIterator<T>(
22
23
  offset: number;
23
24
  }) => Promise<JsonApiPage<T>>,
24
25
  iteratorOptions?: IteratorOptions,
26
+ deserializeRawRequestBodyWithItems?: boolean,
25
27
  ) {
26
28
  const perPage = iteratorOptions?.perPage || pagination.defaultLimit;
27
29
 
@@ -59,7 +61,9 @@ export async function* rawPageIterator<T>(
59
61
  while (promises.length > 0) {
60
62
  const response = await promises.shift()!;
61
63
  for (const item of response.data) {
62
- yield item;
64
+ yield deserializeRawRequestBodyWithItems
65
+ ? deserializeRawItem(item)
66
+ : item;
63
67
  }
64
68
  }
65
69
  }
package/src/serialize.ts CHANGED
@@ -129,3 +129,48 @@ export function serializeRequestBody<T extends { data: unknown } | null>(
129
129
  },
130
130
  } as unknown as T;
131
131
  }
132
+
133
+ function processValueForSerialization(value: unknown): unknown {
134
+ if (Array.isArray(value)) {
135
+ return value.map(processValueForSerialization);
136
+ }
137
+
138
+ if (value && typeof value === 'object') {
139
+ const result: Record<string, unknown> = {};
140
+ for (const [key, val] of Object.entries(value)) {
141
+ if (key !== '__itemTypeId') {
142
+ result[key] = processValueForSerialization(val);
143
+ }
144
+ }
145
+ return result;
146
+ }
147
+
148
+ return value;
149
+ }
150
+
151
+ export function serializeRawItem<S>(item: any): S {
152
+ if (!item || typeof item !== 'object') {
153
+ return item;
154
+ }
155
+
156
+ const { __itemTypeId, ...rest } = item;
157
+
158
+ const processedItem: Record<string, unknown> = {};
159
+ for (const [key, value] of Object.entries(rest)) {
160
+ processedItem[key] = processValueForSerialization(value);
161
+ }
162
+
163
+ return processedItem as S;
164
+ }
165
+
166
+ export function serializeRawRequestBodyWithItems(body: any) {
167
+ if (!('data' in body)) {
168
+ throw new Error('Invalid body!');
169
+ }
170
+
171
+ if (Array.isArray(body.data)) {
172
+ return { ...body, data: body.data.map(serializeRawItem) };
173
+ }
174
+
175
+ return { ...body, data: serializeRawItem(body.data) };
176
+ }