@datocms/rest-client-utils 5.1.2 → 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.
- package/dist/cjs/deserialize.js +45 -3
- package/dist/cjs/deserialize.js.map +1 -1
- package/dist/cjs/rawPageIterator.js +5 -2
- package/dist/cjs/rawPageIterator.js.map +1 -1
- package/dist/cjs/serialize.js +38 -1
- package/dist/cjs/serialize.js.map +1 -1
- package/dist/esm/deserialize.d.ts +4 -1
- package/dist/esm/deserialize.js +42 -2
- package/dist/esm/deserialize.js.map +1 -1
- package/dist/esm/rawPageIterator.d.ts +1 -1
- package/dist/esm/rawPageIterator.js +5 -2
- package/dist/esm/rawPageIterator.js.map +1 -1
- package/dist/esm/serialize.d.ts +2 -0
- package/dist/esm/serialize.js +35 -0
- package/dist/esm/serialize.js.map +1 -1
- package/dist/types/deserialize.d.ts +4 -1
- package/dist/types/rawPageIterator.d.ts +1 -1
- package/dist/types/serialize.d.ts +2 -0
- package/package.json +2 -2
- package/src/deserialize.ts +72 -0
- package/src/rawPageIterator.ts +5 -1
- package/src/serialize.ts +45 -0
package/dist/cjs/deserialize.js
CHANGED
|
@@ -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":";;;
|
|
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
|
-
|
|
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(
|
|
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;
|
|
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"}
|
package/dist/cjs/serialize.js
CHANGED
|
@@ -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 {};
|
package/dist/esm/deserialize.js
CHANGED
|
@@ -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":"
|
|
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
|
-
|
|
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(
|
|
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;
|
|
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"}
|
package/dist/esm/serialize.d.ts
CHANGED
|
@@ -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/dist/esm/serialize.js
CHANGED
|
@@ -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.
|
|
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": "
|
|
41
|
+
"gitHead": "b9b3aee7d6c78acdfef811fa42a84bc42abc36f7",
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/qs": "^6.9.7"
|
|
44
44
|
}
|
package/src/deserialize.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/rawPageIterator.ts
CHANGED
|
@@ -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
|
|
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
|
+
}
|