Merge pull request #1234 from github/edoardo/more-tolerant

TRAP Caching: Be tolerant to not finding the extractor
This commit is contained in:
Edoardo Pirovano 2022-09-05 11:04:57 +01:00 committed by GitHub
commit 8cdb7d8545
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 5 deletions

11
lib/trap-caching.js generated
View file

@ -141,9 +141,16 @@ async function getLanguagesSupportingCaching(codeql, languages, logger) {
return result;
const resolveResult = await codeql.betterResolveLanguages();
outer: for (const lang of languages) {
if (resolveResult.extractors[lang].length !== 1)
const extractorsForLanguage = resolveResult.extractors[lang];
if (extractorsForLanguage === undefined) {
logger.info(`${lang} does not support TRAP caching (couldn't find an extractor)`);
continue;
const extractor = resolveResult.extractors[lang][0];
}
if (extractorsForLanguage.length !== 1) {
logger.info(`${lang} does not support TRAP caching (found multiple extractors)`);
continue;
}
const extractor = extractorsForLanguage[0];
const trapCacheOptions = (_d = (_c = (_b = (_a = extractor.extractor_options) === null || _a === void 0 ? void 0 : _a.trap) === null || _b === void 0 ? void 0 : _b.properties) === null || _c === void 0 ? void 0 : _c.cache) === null || _d === void 0 ? void 0 : _d.properties;
if (trapCacheOptions === undefined) {
logger.info(`${lang} does not support TRAP caching (missing option group)`);

File diff suppressed because one or more lines are too long

View file

@ -162,8 +162,20 @@ export async function getLanguagesSupportingCaching(
return result;
const resolveResult = await codeql.betterResolveLanguages();
outer: for (const lang of languages) {
if (resolveResult.extractors[lang].length !== 1) continue;
const extractor = resolveResult.extractors[lang][0];
const extractorsForLanguage = resolveResult.extractors[lang];
if (extractorsForLanguage === undefined) {
logger.info(
`${lang} does not support TRAP caching (couldn't find an extractor)`
);
continue;
}
if (extractorsForLanguage.length !== 1) {
logger.info(
`${lang} does not support TRAP caching (found multiple extractors)`
);
continue;
}
const extractor = extractorsForLanguage[0];
const trapCacheOptions =
extractor.extractor_options?.trap?.properties?.cache?.properties;
if (trapCacheOptions === undefined) {