export default function addDashboardMetaData()

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