Use lodash get.

This commit is contained in:
Valentin Boettcher 2019-03-11 11:18:18 +01:00
parent 9d29954f09
commit 608bcf63c4

View file

@ -24,6 +24,7 @@ import {
} from 'meteor/vulcan:lib'; } from 'meteor/vulcan:lib';
import Users from 'meteor/vulcan:users'; import Users from 'meteor/vulcan:users';
import isEmpty from 'lodash/isEmpty'; import isEmpty from 'lodash/isEmpty';
import get from 'lodash/get';
const defaultOptions = { create: true, update: true, upsert: true, delete: true }; const defaultOptions = { create: true, update: true, upsert: true, delete: true };
@ -112,10 +113,8 @@ export function getDefaultMutations(options) {
const parameters = collection.getParameters(terms /* apolloClient */); const parameters = collection.getParameters(terms /* apolloClient */);
const { selector, options } = parameters; const { selector, options } = parameters;
let results = query.result; let results = query.result;
const document = mutation.result && mutation.result.data const document = get(mutation, `result.data['${mutationName}'.data]`, {});
&& mutation.result.data[mutationName]
&& mutation.result.data[mutationName].data;
if (belongsToSet(document, selector)) { if (belongsToSet(document, selector)) {
if (!isInSet(results[multiResolverName], document)) { if (!isInSet(results[multiResolverName], document)) {
// make sure document hasn't been already added as this may be called several times // make sure document hasn't been already added as this may be called several times
@ -226,11 +225,8 @@ export function getDefaultMutations(options) {
const parameters = collection.getParameters(terms /* apolloClient */); const parameters = collection.getParameters(terms /* apolloClient */);
const { selector, options } = parameters; const { selector, options } = parameters;
let results = query.result; let results = query.result;
const document = mutation.result && mutation.result.data const document = get(mutation, `result.data['${mutationName}'.data]`, {});
&& mutation.result.data[mutationName]
&& mutation.result.data[mutationName].data;
if (belongsToSet(document, selector)) { if (belongsToSet(document, selector)) {
// edited document belongs to the list // edited document belongs to the list
if (!isInSet(results[multiResolverName], document)) { if (!isInSet(results[multiResolverName], document)) {
@ -363,11 +359,8 @@ export function getDefaultMutations(options) {
if (Meteor.isClient) { if (Meteor.isClient) {
registerWatchedMutation(mutationName, multiQueryName, ({ mutation, query }) => { registerWatchedMutation(mutationName, multiQueryName, ({ mutation, query }) => {
let results = query.result; let results = query.result;
const document = mutation.result && mutation.result.data const document = get(mutation, `result.data['${mutationName}'.data]`, {});
&& mutation.result.data[mutationName]
&& mutation.result.data[mutationName].data;
results[multiResolverName] = removeFromSet(results[multiResolverName], document); results[multiResolverName] = removeFromSet(results[multiResolverName], document);
results[multiResolverName].__typename = `Multi${typeName}Output`; results[multiResolverName].__typename = `Multi${typeName}Output`;
// console.log('// delete') // console.log('// delete')