fix: remove empty revisions to fix typescript error and use default flag for first release
related to #430
This commit is contained in:
@@ -141,12 +141,17 @@ function getUniqueTags(items: Item[]): string[] {
|
||||
return Array.from(tags).sort();
|
||||
}
|
||||
|
||||
function getFlag(item: Item, latestRelease: string): Flag {
|
||||
function getFlag(item: Item, allReleases: string[]): Flag {
|
||||
// return default flag if this is the first edition of the radar
|
||||
if (allReleases.length === 1) {
|
||||
return Flag.Default;
|
||||
}
|
||||
|
||||
const latestRelease = allReleases[allReleases.length - 1];
|
||||
const revisions = item.revisions || [];
|
||||
const isInLatestRelease = !!(
|
||||
revisions.length &&
|
||||
revisions[revisions.length - 1].release === latestRelease
|
||||
);
|
||||
const isInLatestRelease =
|
||||
revisions.length > 0 &&
|
||||
revisions[revisions.length - 1].release === latestRelease;
|
||||
|
||||
if (revisions.length == 1 && isInLatestRelease) {
|
||||
return Flag.New;
|
||||
@@ -190,11 +195,11 @@ function postProcessItems(items: Item[]): {
|
||||
|
||||
const releases = getUniqueReleases(filteredItems);
|
||||
const uniqueTags = getUniqueTags(filteredItems);
|
||||
const latestRelease = releases[releases.length - 1];
|
||||
const processedItems = filteredItems.map((item) => ({
|
||||
const processedItems = filteredItems.map((item) => {
|
||||
const processedItem = {
|
||||
...item,
|
||||
position: positioner.getNextPosition(item.quadrant, item.ring),
|
||||
flag: getFlag(item, latestRelease),
|
||||
flag: getFlag(item, releases),
|
||||
// only keep revision which ring or body is different
|
||||
revisions: item.revisions
|
||||
?.filter((revision, index, revisions) => {
|
||||
@@ -207,7 +212,15 @@ function postProcessItems(items: Item[]): {
|
||||
);
|
||||
})
|
||||
.reverse(),
|
||||
}));
|
||||
};
|
||||
|
||||
// unset revisions if there are none
|
||||
if (!processedItem.revisions?.length) {
|
||||
delete processedItem.revisions;
|
||||
}
|
||||
|
||||
return processedItem;
|
||||
});
|
||||
|
||||
return { releases, tags: uniqueTags, items: processedItems };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user