fix: remove empty revisions to fix typescript error and use default flag for first release

related to #430
This commit is contained in:
Mathias Schopmans
2024-03-13 10:24:28 +01:00
parent b6b4709ed5
commit 9381aa9d4d

View File

@@ -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 };
}