From 060f9b7026d83066bcdee932d76106b4abeb50bf Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Fri, 8 Dec 2023 00:43:09 -0700 Subject: [PATCH] feat(builds): add pkg.versions --- _webi/builds-cacher.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/_webi/builds-cacher.js b/_webi/builds-cacher.js index 773444d..f3eecc9 100644 --- a/_webi/builds-cacher.js +++ b/_webi/builds-cacher.js @@ -258,6 +258,7 @@ BuildsCacher.create = function ({ ALL_TERMS, installers, caches }) { // let age = now - seconds; let data = bc._caches[name]; + let versions = data?.versions || []; let now = date.valueOf(); if (data) { process.nextTick(async function () { @@ -267,7 +268,8 @@ BuildsCacher.create = function ({ ALL_TERMS, installers, caches }) { } data = await getLatestBuilds(Releases, cacheDir, name); let updated = date.valueOf(); - Object.assign(data, { name, updated }); + updateVersions(data, versions); + Object.assign(data, { name, updated, versions }); bc._caches[name] = data; }); return data; @@ -292,6 +294,7 @@ BuildsCacher.create = function ({ ALL_TERMS, installers, caches }) { data = await getLatestBuilds(Releases, cacheDir, name); } let updated = date.valueOf(); + updateVersions(data, versions); Object.assign(data, { name, updated }); bc._caches[name] = data; @@ -307,6 +310,19 @@ BuildsCacher.create = function ({ ALL_TERMS, installers, caches }) { return data; }; + // TODO + // - sort version + // - tag channels + // - @beta not install older than stable + function updateVersions(data, versions) { + for (let release of data.releases) { + let hasVersion = versions.includes(release.version); + if (!hasVersion) { + versions.push(release.version); + } + } + } + // Makes sure that packages are updated once an hour, on average bc._staleNames = []; bc._freshenTimeout = null;