Skip to content

Commit

Permalink
refactor: simplified lookup buckets
Browse files Browse the repository at this point in the history
  • Loading branch information
rarkins committed Feb 12, 2021
1 parent 2a4875b commit f6b4385
Showing 1 changed file with 13 additions and 21 deletions.
34 changes: 13 additions & 21 deletions lib/workers/repository/process/lookup/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,7 @@ export async function lookupUpdates(
if (vulnerabilityAlert) {
filteredVersions = filteredVersions.slice(0, 1);
}
const buckets: Record<string, LookupUpdate> = {};
const allBucketUpdates: Record<string, [LookupUpdate]> = {};
const buckets: Record<string, [LookupUpdate]> = {};
for (const toVersion of filteredVersions.map((v) => v.version)) {
const update: LookupUpdate = { fromVersion, toVersion } as any;
try {
Expand Down Expand Up @@ -363,30 +362,23 @@ export async function lookupUpdates(

const bucket = getBucket(config, update);
if (buckets[bucket]) {
if (
version.isGreaterThan(update.toVersion, buckets[bucket].toVersion)
) {
buckets[bucket] = update;
}
} else {
buckets[bucket] = update;
}
if (allBucketUpdates[bucket]) {
allBucketUpdates[bucket].push(update);
buckets[bucket].push(update);
} else {
allBucketUpdates[bucket] = [update];
buckets[bucket] = [update];
}
}
for (const [bucket, update] of Object.entries(buckets)) {
update.skippedOverVersions = allBucketUpdates[bucket]
.map((u) => u.toVersion)
.filter((u) => u !== update.toVersion)
.sort((v1, v2) => version.sortVersions(v1, v2));
if (update.skippedOverVersions.length === 0) {
delete update.skippedOverVersions;
for (const updates of Object.values(buckets)) {
const sortedUpdates = updates.sort((u1, u2) =>
version.sortVersions(u1.toVersion, u2.toVersion)
);
const highestUpdate = sortedUpdates.pop();
if (sortedUpdates.length) {
highestUpdate.skippedOverVersions = sortedUpdates.map(
(u) => u.toVersion
);
}
res.updates.push(highestUpdate);
}
res.updates = res.updates.concat(Object.values(buckets));
} else if (!currentValue) {
res.skipReason = SkipReason.UnsupportedValue;
} else {
Expand Down

0 comments on commit f6b4385

Please sign in to comment.