From c0f36d71dde173c23c894470ffb292098b814c59 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Tue, 4 Aug 2020 13:30:54 -0400 Subject: [PATCH] ensure follows gets loaded on first try --- services/gunDB/contact-api/getters/follows.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/services/gunDB/contact-api/getters/follows.js b/services/gunDB/contact-api/getters/follows.js index 9a802cf7..da7de6e1 100644 --- a/services/gunDB/contact-api/getters/follows.js +++ b/services/gunDB/contact-api/getters/follows.js @@ -21,15 +21,25 @@ exports.currentFollows = async () => { * @type {Record} */ const raw = await Utils.tryAndWait( - // @ts-ignore - (_, user) => new Promise(res => user.get(Key.FOLLOWS).load(res)), + (_, user) => + new Promise(res => + // @ts-expect-error + user.get(Key.FOLLOWS).load(res) + ), v => { if (typeof v !== 'object' || v === null) { return true } // load sometimes returns an empty set on the first try - return size(v) === 0 + if (size(v) === 0) { + return true + } + + // sometimes it returns empty sub objects + return Object.values(v) + .filter(Common.Schema.isObj) + .some(obj => size(obj) === 0) } )