From 6c76ff728cfc27bac73ec2189b6c4a338cac73e5 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 13 Feb 2023 19:08:54 +0000 Subject: [PATCH] hotfix: never hard fail when usable data is available --- _webi/transform-releases.js | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/_webi/transform-releases.js b/_webi/transform-releases.js index 69c4dc6..0235660 100644 --- a/_webi/transform-releases.js +++ b/_webi/transform-releases.js @@ -91,6 +91,25 @@ async function getCachedReleases(pkg) { let complete = false; await Promise.race([ Releases.get(pkgdir) + .catch(function (err) { + if ('E_NO_RELEASE' === err.code) { + let all = { _error: 'E_NO_RELEASE', download: '', releases: [] }; + return all; + } + + throw err; + }) + .catch(function (err) { + let hasReleases = cache[pkg].all?.releases?.length > 1; + if (!hasReleases) { + throw err; + } + + console.error(`Error: the BOOGEYMAN got us!`); + console.error(err.stack); + + return cache[pkg].all; + }) .then(function (all) { // Note: it is possible for slightly older data // to replace slightly newer data, but this is better @@ -100,16 +119,6 @@ async function getCachedReleases(pkg) { cache[pkg].updatedAt = Date.now(); cache[pkg].all = all; complete = true; - }) - .catch(function (err) { - if ('E_NO_RELEASE' === err.code) { - cache[pkg].updatedAt = Date.now(); - cache[pkg].all = { download: '', releases: [] }; - complete = true; - return; - } - - throw err; }), sleep(5000).then(function () { if (complete) {