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();
|
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 };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user