@datocms/rest-client-utils
Version:
Utilities for DatoCMS REST API clients
36 lines • 1.41 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function hasData(thing) {
return typeof thing === 'object' && !!thing && 'data' in thing;
}
export function deserializeJsonEntity(_a) {
var id = _a.id, type = _a.type, attributes = _a.attributes, relationships = _a.relationships, meta = _a.meta;
return __assign(__assign(__assign(__assign(__assign({}, (id ? { id: id } : {})), (type ? { type: type } : {})), (attributes || {})), (relationships
? Object.fromEntries(Object.entries(relationships).map(function (_a) {
var rel = _a[0], value = _a[1];
return [
rel,
value === null || value === void 0 ? void 0 : value.data,
];
}))
: {})), (meta ? { meta: meta } : {}));
}
export function deserializeResponseBody(body) {
if (!hasData(body)) {
throw new Error('Invalid body!');
}
if (Array.isArray(body.data)) {
return body.data.map(deserializeJsonEntity);
}
return deserializeJsonEntity(body.data);
}
//# sourceMappingURL=deserialize.js.map