in src/backend/inventory/canary.lambda.ts [332:383]
function doRecordPerLanguage(
perLanguage: Map<DocumentationLanguage, PerLanguageData>,
language: DocumentationLanguage,
status: PerLanguageStatus,
pkgName: string,
pkgMajor: string,
pkgVersion: string,
submodule?: string,
) {
if (!perLanguage.has(language)) {
perLanguage.set(language, {
[Grain.PACKAGE_MAJOR_VERSIONS]: new Map(),
[Grain.PACKAGES]: new Map(),
[Grain.PACKAGE_VERSION_SUBMODULES]: new Map(),
[Grain.PACKAGE_VERSIONS]: new Map(),
});
}
const data = perLanguage.get(language)!;
// If there is a submodule, only update the submodule domain.
const outputDomains: readonly [Map<string, PerLanguageStatus>, string][] =
submodule
? [
[data[Grain.PACKAGE_VERSION_SUBMODULES], `${pkgVersion}.${submodule}`],
]
: [
[data[Grain.PACKAGE_MAJOR_VERSIONS], pkgMajor],
[data[Grain.PACKAGE_VERSIONS], pkgVersion],
[data[Grain.PACKAGES], pkgName],
];
for (const [map, name] of outputDomains) {
switch (status) {
case PerLanguageStatus.MISSING:
// If we already have a status, don't override it with "MISSING".
if (!map.has(name)) {
map.set(name, status);
}
break;
case PerLanguageStatus.SUPPORTED:
// If thr package is "supported", this always "wins"
map.set(name, status);
break;
case PerLanguageStatus.UNSUPPORTED:
case PerLanguageStatus.CORRUPT_ASSEMBLY:
// If we already have a status, only override with if it was "MISSING".
if (!map.has(name) || map.get(name) === PerLanguageStatus.MISSING) {
map.set(name, status);
}
break;
}
}
}