UNPKG

ra-data-graphql-simple

Version:

A GraphQL simple data provider for react-admin

69 lines 2.87 kB
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); }; import { DELETE_MANY, GET_LIST, GET_MANY, GET_MANY_REFERENCE, UPDATE_MANY, } from 'ra-core'; export default (function (_introspectionResults) { return function (raFetchMethod, _resource, _queryType) { return function (response) { var data = response.data; if (raFetchMethod === GET_LIST || raFetchMethod === GET_MANY || raFetchMethod === GET_MANY_REFERENCE) { return { data: response.data.items.map(sanitizeResource), total: response.data.total.count, }; } else if (raFetchMethod === DELETE_MANY || raFetchMethod === UPDATE_MANY) { return { data: sanitizeResource(data.data).ids }; } return { data: sanitizeResource(data.data) }; }; }; }); var sanitizeResource = function (data) { var result = Object.keys(data).reduce(function (acc, key) { var _a, _b, _c, _d, _e; if (key.startsWith('_')) { return acc; } var dataForKey = data[key]; if (dataForKey === null || dataForKey === undefined) { return acc; } if (Array.isArray(dataForKey)) { if (typeof dataForKey[0] === 'object' && dataForKey[0] != null && // If there is no id, it's not a reference but an embedded array dataForKey[0].id != null) { return __assign(__assign({}, acc), (_a = {}, _a[key] = dataForKey.map(sanitizeResource), _a["".concat(key, "Ids")] = dataForKey.map(function (d) { return d.id; }), _a)); } else { return __assign(__assign({}, acc), (_b = {}, _b[key] = dataForKey, _b)); } } if (typeof dataForKey === 'object' && dataForKey != null && // If there is no id, it's not a reference but an embedded object dataForKey.id != null) { return __assign(__assign(__assign({}, acc), (dataForKey && dataForKey.id && (_c = {}, _c["".concat(key, ".id")] = dataForKey.id, _c))), (_d = {}, _d[key] = dataForKey.__typename ? sanitizeResource(dataForKey) : dataForKey, _d)); } return __assign(__assign({}, acc), (_e = {}, _e[key] = dataForKey, _e)); }, {}); return result; }; //# sourceMappingURL=getResponseParser.js.map