in eng/scripts/inventory-dashboard/src/addEmptyDataPoints.ts [25:74]
export default async function addEmptyDataPoints(packages: PackageList, apiSpecsDirPath: string): Promise<PackageList> {
// Add missing sdks when sdks for other languages are found
const additionalPackages: PackageList = {};
for (let key in packages) {
// Skip if packages doesn't have a track 2 version
if (JSON.stringify(packages[key].Track2) === JSON.stringify(TrackSpecificsDefault)) {
continue;
}
// Skip is package is a core package
if (packages[key].Service === "Core") continue;
// Don't create missing empty packages if package is from a non-tier 1 language.
if (!Tier1Languages.includes(packages[key].Language) || packages[key].Language === "Go") continue;
// Don't create missing empty packages if package is still in beta
if (packages[key].Track2.ColorCode === 3) continue;
// Don't create missing empty packages if track 2 object is just for a package reference
if (packages[key].Track2.ColorCode === 4) continue;
// Don't create missing empty packages if package is a RLC JS package. ex: @azure-rest/...
if (packages[key].Track2.Package.startsWith('@azure-rest/')) continue;
// Loop through languages adding empty packages
for (let language of Tier1Languages) {
const { Service, SDK, Plane, ServiceId } = packages[key];
const testKey = ((Service || " - ") +
(SDK || " -- ") +
(Plane || " --- ") +
(language || " ---- ")).toLowerCase();
// Add empty package if ones doesn't already exist for selected language
//log.atn(`Result of Key: ${testKey} - check on packages: ${JSON.stringify(packages[testKey])}`);
if (packages[testKey] === undefined && additionalPackages[testKey] === undefined) {
additionalPackages[testKey] = {
Service,
ServiceId,
SDK,
Plane,
Language: language,
Track1: TrackSpecificsDefault,
Track2: { ...TrackSpecificsDefault, Package: `Missing: Created from existing package: ${packages[key].Track2.Package}` },
PercentComplete: undefined,
LatestRelease: ""
};
log.info(`Adding Empty Package from Existing Library.\n\tEmpty Package: ${JSON.stringify(additionalPackages[testKey])}\n\tExisting Package: ${JSON.stringify(packages[key])}`);
}
}
}
// add new empty packages to package list and return
packages = { ...packages, ...additionalPackages };
// add empty packages to package list if service API exists
packages = { ...packages, ...(await getServicesFromSpecRepo(packages, apiSpecsDirPath)) };
return packages;
}