Switch CommandCacheKey back to an enum

The code reads better/simpler as an `enum`.
This commit is contained in:
Mario Campos
2026-06-30 16:06:13 -05:00
parent 0d698171d3
commit da149812f1
5 changed files with 91 additions and 101 deletions

107
lib/entry-points.js generated
View File

@@ -149863,7 +149863,7 @@ var path15 = __toESM(require("path"));
var core10 = __toESM(require_core());
var toolrunner3 = __toESM(require_toolrunner());
// src/cache.ts
// src/cli/output-cache.ts
var fs6 = __toESM(require("fs"));
var path6 = __toESM(require("path"));
@@ -149908,11 +149908,28 @@ function formatDuration(durationMs) {
return `${minutes}m${seconds}s`;
}
// src/cache.ts
// src/cli/output-cache.ts
var COMMAND_CACHE_FILENAME = "codeql-action-command-cache.json";
var CommandCacheKey = {
Version: "version",
ResolveLanguages: "resolveLanguages"
function isVersionInfo(x) {
return isObject(x) && validateSchema(
{
version: string,
features: optional(object),
overlayVersion: optional(number)
},
x
);
}
function isResolveLanguagesOutput(x) {
return isObject(x) && isObject(x.extractors) && Object.values(x.extractors).every(
(extractorList) => isArray(extractorList) && extractorList.every(
(extractor) => isObject(extractor) && isString(extractor.extractor_root)
)
) && (x.aliases === void 0 || isObject(x.aliases) && Object.values(x.aliases).every((alias) => isString(alias)));
}
var commandCacheValidators = {
["version" /* Version */]: isVersionInfo,
["resolve languages" /* ResolveLanguages */]: isResolveLanguagesOutput
};
var inMemoryCache = /* @__PURE__ */ new Map();
var logger = getActionsLogger();
@@ -149948,18 +149965,20 @@ function cacheCommandOutput(key, cmd, output) {
const entry = { cmd, output };
inMemoryCache.set(key, entry);
}
function getCachedCommandOutput(key, cmd, validate) {
function getCachedCommandOutput(key, cmd) {
const memoized = inMemoryCache.get(key);
if (memoized !== void 0) {
return memoized.output;
}
const entry = readCommandCacheFile()[key];
if (!isObject(entry) || !isString(entry.cmd) || cmd !== void 0 && entry.cmd !== cmd || validate !== void 0 && !validate(entry.output)) {
if (!isObject(entry) || !isString(entry.cmd) || cmd !== void 0 && entry.cmd !== cmd || !commandCacheValidators[key](entry.output)) {
logger.warning("Received invalid data from the command-cache file.");
return void 0;
}
cacheCommandOutput(key, entry.cmd, entry.output);
return entry.output;
const cachedEntry = entry;
const output = cachedEntry.output;
cacheCommandOutput(key, cachedEntry.cmd, output);
return output;
}
// src/cli-errors.ts
@@ -153676,23 +153695,6 @@ async function getCombinedTracerConfig(codeql, config) {
}
// src/codeql.ts
function isVersionInfo(x) {
return isObject(x) && validateSchema(
{
version: string,
features: optional(object),
overlayVersion: optional(number)
},
x
);
}
function isResolveLanguagesOutput(x) {
return isObject(x) && isObject(x.extractors) && Object.values(x.extractors).every(
(extractorList) => isArray(extractorList) && extractorList.every(
(extractor) => isObject(extractor) && isString(extractor.extractor_root)
)
) && (x.aliases === void 0 || isObject(x.aliases) && Object.values(x.aliases).every((alias) => isString(alias)));
}
var cachedCodeQL = void 0;
var CODEQL_MINIMUM_VERSION = "2.19.4";
var CODEQL_NEXT_MINIMUM_VERSION = "2.19.4";
@@ -153755,8 +153757,8 @@ async function getCodeQL(cmd) {
}
return cachedCodeQL;
}
async function getCachedOrRun(key, cmd, run9, validate) {
let result = getCachedCommandOutput(key, cmd, validate);
async function getCachedOrRun(key, cmd, run9) {
let result = getCachedCommandOutput(key, cmd);
if (result === void 0) {
result = await run9();
cacheCommandOutput(key, cmd, result);
@@ -153770,12 +153772,11 @@ async function getCodeQLForCmd(cmd, checkVersion) {
},
async getVersion() {
return getCachedOrRun(
CommandCacheKey.Version,
"version" /* Version */,
cmd,
() => runCliJson(cmd, ["version", "--format=json"], {
noStreamStdout: true
}),
isVersionInfo
})
);
},
async printVersion() {
@@ -153931,28 +153932,23 @@ async function getCodeQLForCmd(cmd, checkVersion) {
await runCli(cmd, args);
},
async resolveLanguages() {
return getCachedOrRun(
CommandCacheKey.ResolveLanguages,
cmd,
async () => {
const isFilterToLanguagesWithQueriesSupported = await this.supportsFeature(
"builtinExtractorsSpecifyDefaultQueries" /* BuiltinExtractorsSpecifyDefaultQueries */
);
return runCliJson(cmd, [
"resolve",
"languages",
"--format=betterjson",
"--extractor-options-verbosity=4",
"--extractor-include-aliases",
// TODO: Unconditionally include `--filter-to-languages-with-queries`
// once CODEQL_MINIMUM_VERSION is at least v2.23.0
// — the first version to support this flag.
...isFilterToLanguagesWithQueriesSupported ? ["--filter-to-languages-with-queries"] : [],
...getExtraOptionsFromEnv(["resolve", "languages"])
]);
},
isResolveLanguagesOutput
);
return getCachedOrRun("resolve languages" /* ResolveLanguages */, cmd, async () => {
const isFilterToLanguagesWithQueriesSupported = await this.supportsFeature(
"builtinExtractorsSpecifyDefaultQueries" /* BuiltinExtractorsSpecifyDefaultQueries */
);
return runCliJson(cmd, [
"resolve",
"languages",
"--format=betterjson",
"--extractor-options-verbosity=4",
"--extractor-include-aliases",
// TODO: Unconditionally include `--filter-to-languages-with-queries`
// once CODEQL_MINIMUM_VERSION is at least v2.23.0
// — the first version to support this flag.
...isFilterToLanguagesWithQueriesSupported ? ["--filter-to-languages-with-queries"] : [],
...getExtraOptionsFromEnv(["resolve", "languages"])
]);
});
},
async resolveBuildEnvironment(workingDir, language) {
const codeqlArgs = [
@@ -155213,9 +155209,8 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi
}
const runnerOs = getRequiredEnvParam("RUNNER_OS");
const codeQlCliVersion = getCachedCommandOutput(
CommandCacheKey.Version,
void 0,
isVersionInfo
"version" /* Version */,
void 0
);
const actionRef = process.env["GITHUB_ACTION_REF"] || "";
const testingEnvironment = getTestingEnvironment();