const getRidOfEdges = (collection) => { // todo: get rid of this, this probably doesn't work too well with immutable objects // todo: don't use edges if they're not necessary if (typeof collection === 'object' && collection && !Array.isArray(collection)) { let newObj = {}; for (const k in collection) { if (Object.prototype.hasOwnProperty.call(collection, k)) { if (k === 'edges') { return collection.edges.map(edge => getRidOfEdges(edge.node)); } else { newObj[k] = getRidOfEdges(collection[k]); if (newObj[k]) { // delete newObj[k]['__typename'] } } } } return newObj; } else { return collection; } }; const EdgesPlugin = { install(Vue) { Vue.prototype.$getRidOfEdges = getRidOfEdges; } }; export default EdgesPlugin;