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(); 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 revisions = item.revisions || [];
const isInLatestRelease = !!( const isInLatestRelease =
revisions.length && revisions.length > 0 &&
revisions[revisions.length - 1].release === latestRelease revisions[revisions.length - 1].release === latestRelease;
);
if (revisions.length == 1 && isInLatestRelease) { if (revisions.length == 1 && isInLatestRelease) {
return Flag.New; return Flag.New;
@@ -190,11 +195,11 @@ function postProcessItems(items: Item[]): {
const releases = getUniqueReleases(filteredItems); const releases = getUniqueReleases(filteredItems);
const uniqueTags = getUniqueTags(filteredItems); const uniqueTags = getUniqueTags(filteredItems);
const latestRelease = releases[releases.length - 1]; const processedItems = filteredItems.map((item) => {
const processedItems = filteredItems.map((item) => ({ const processedItem = {
...item, ...item,
position: positioner.getNextPosition(item.quadrant, item.ring), position: positioner.getNextPosition(item.quadrant, item.ring),
flag: getFlag(item, latestRelease), flag: getFlag(item, releases),
// only keep revision which ring or body is different // only keep revision which ring or body is different
revisions: item.revisions revisions: item.revisions
?.filter((revision, index, revisions) => { ?.filter((revision, index, revisions) => {
@@ -207,7 +212,15 @@ function postProcessItems(items: Item[]): {
); );
}) })
.reverse(), .reverse(),
})); };
// unset revisions if there are none
if (!processedItem.revisions?.length) {
delete processedItem.revisions;
}
return processedItem;
});
return { releases, tags: uniqueTags, items: processedItems }; return { releases, tags: uniqueTags, items: processedItems };
} }