in eng/scripts/inventory-dashboard/src/dashboardMetaData.ts [17:57]
export default function addDashboardMetaData(packages: PackageList): PackageList {
// go through packages and add color code and completeness percent to each
for (let key in packages) {
// If Package is an empty Track 2 Package
if (JSON.stringify(packages[key].Track2) === JSON.stringify(TrackSpecificsDefault) || isMissingPackage(packages[key].Track2)) {
// If track 1 package is not empty, this is a missing track 2 replacement
if (JSON.stringify(packages[key].Track1) !== JSON.stringify(TrackSpecificsDefault)) {
// missing track 2 sdk replacement for a track 1, color code 1 = red
packages[key] = { ...packages[key], Track2: { ...packages[key].Track2, ColorCode: 1 } };
} else {
// missing data plane sdk for a language, color code 2 = yellow
packages[key] = { ...packages[key], Track2: { ...packages[key].Track2, ColorCode: 2 } };
}
}
// If package has a Track 2
else {
// If track 1 package also exists and is not deprecated
if (JSON.stringify(packages[key].Track1) !== JSON.stringify(TrackSpecificsDefault) && !packages[key].Track1.Deprecated) {
// track 1 library with a track 2 replacement is not deprecated, color code 1 = red
packages[key] = { ...packages[key], Track1: { ...packages[key].Track1, ColorCode: 1 } };
}
}
// No Track 1
if (JSON.stringify(packages[key].Track1) === StringTrackSpecificsDefault) {
// No track 1 library should be color code 2 for grey
packages[key] = { ...packages[key], Track1: { ...packages[key].Track1, ColorCode: 11 } };
}
// set percent complete, if Both track 1 and 2 have OKAY codes, percent complete should be 1
let percentComplete = 0;
if ([3, 4, 10, 11].includes(packages[key].Track2.ColorCode)) {
percentComplete = 1;
}
// if (packages[key].Track1.ColorCode === 11) percentComplete = packages[key].Track2.ColorCode === 10 ? 1 : 0;
// else if (packages[key].Track2.ColorCode === 10 && packages[key].Track1.ColorCode === 1) percentComplete = 0.5;
// else if (packages[key].Track2.ColorCode === 10) percentComplete = 1;
// if (packages[key].Track2.ColorCode === 10) percentComplete += 0.5;
// if (packages[key].Track1.ColorCode === 10) percentComplete += 0.5;
packages[key] = { ...packages[key], PercentComplete: percentComplete };
}
return packages;
}