Skip to content
Snippets Groups Projects
Commit f6b43850 authored by Rhys Arkins's avatar Rhys Arkins
Browse files

refactor: simplified lookup buckets

parent 2a4875b2
No related merge requests found
...@@ -302,8 +302,7 @@ export async function lookupUpdates( ...@@ -302,8 +302,7 @@ export async function lookupUpdates(
if (vulnerabilityAlert) { if (vulnerabilityAlert) {
filteredVersions = filteredVersions.slice(0, 1); filteredVersions = filteredVersions.slice(0, 1);
} }
const buckets: Record<string, LookupUpdate> = {}; const buckets: Record<string, [LookupUpdate]> = {};
const allBucketUpdates: Record<string, [LookupUpdate]> = {};
for (const toVersion of filteredVersions.map((v) => v.version)) { for (const toVersion of filteredVersions.map((v) => v.version)) {
const update: LookupUpdate = { fromVersion, toVersion } as any; const update: LookupUpdate = { fromVersion, toVersion } as any;
try { try {
...@@ -363,30 +362,23 @@ export async function lookupUpdates( ...@@ -363,30 +362,23 @@ export async function lookupUpdates(
const bucket = getBucket(config, update); const bucket = getBucket(config, update);
if (buckets[bucket]) { if (buckets[bucket]) {
if ( buckets[bucket].push(update);
version.isGreaterThan(update.toVersion, buckets[bucket].toVersion)
) {
buckets[bucket] = update;
}
} else {
buckets[bucket] = update;
}
if (allBucketUpdates[bucket]) {
allBucketUpdates[bucket].push(update);
} else { } else {
allBucketUpdates[bucket] = [update]; buckets[bucket] = [update];
} }
} }
for (const [bucket, update] of Object.entries(buckets)) { for (const updates of Object.values(buckets)) {
update.skippedOverVersions = allBucketUpdates[bucket] const sortedUpdates = updates.sort((u1, u2) =>
.map((u) => u.toVersion) version.sortVersions(u1.toVersion, u2.toVersion)
.filter((u) => u !== update.toVersion) );
.sort((v1, v2) => version.sortVersions(v1, v2)); const highestUpdate = sortedUpdates.pop();
if (update.skippedOverVersions.length === 0) { if (sortedUpdates.length) {
delete update.skippedOverVersions; highestUpdate.skippedOverVersions = sortedUpdates.map(
(u) => u.toVersion
);
} }
res.updates.push(highestUpdate);
} }
res.updates = res.updates.concat(Object.values(buckets));
} else if (!currentValue) { } else if (!currentValue) {
res.skipReason = SkipReason.UnsupportedValue; res.skipReason = SkipReason.UnsupportedValue;
} else { } else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment