Handle cases where loader returns undefined or array containing undefined

This commit is contained in:
SachaG 2017-04-28 16:39:44 +09:00
parent 73caeb8f40
commit 5f3421ccdd
2 changed files with 3 additions and 1 deletions

View file

@ -5,7 +5,7 @@ const specificResolvers = {
Post: {
async categories(post, args, {currentUser, Users, Categories}) {
if (!post.categories) return [];
const categories = await Categories.loader.loadMany(post.categories);
const categories = _.compact(await Categories.loader.loadMany(post.categories));
return Users.restrictViewableFields(currentUser, Categories, categories);
},
},

View file

@ -218,6 +218,8 @@ Users.helpers({
*/
Users.restrictViewableFields = function (user, collection, docOrDocs) {
if (!docOrDocs) return {};
const restrictDoc = document => _.pick(document, _.keys(Users.getViewableFields(user, collection, document)));
return Array.isArray(docOrDocs) ? docOrDocs.map(restrictDoc) : restrictDoc(docOrDocs);