From 9c61a2ddf4eb51d1b093e7ca3bd1ffdc29ec0a5f Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Wed, 25 Feb 2026 11:32:32 +0000 Subject: [PATCH] Reorganize properties file --- lib/init-action.js | 40 ++++++++++--------- src/feature-flags/properties.ts | 70 ++++++++++++++++++++------------- 2 files changed, 65 insertions(+), 45 deletions(-) diff --git a/lib/init-action.js b/lib/init-action.js index d78abb1b6..e85eaeb08 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -104283,26 +104283,10 @@ var RepositoryPropertyName = /* @__PURE__ */ ((RepositoryPropertyName2) => { RepositoryPropertyName2["EXTRA_QUERIES"] = "github-codeql-extra-queries"; return RepositoryPropertyName2; })(RepositoryPropertyName || {}); -var KNOWN_REPOSITORY_PROPERTY_NAMES = new Set( - Object.values(RepositoryPropertyName) -); -function isKnownPropertyName(value) { - return KNOWN_REPOSITORY_PROPERTY_NAMES.has(value); -} var repositoryPropertyParsers = { - ["github-codeql-disable-overlay" /* DISABLE_OVERLAY */]: (name, value, logger) => { - if (value !== "true" && value !== "false") { - logger.warning( - `Repository property '${name}' has unexpected value '${value}'. Expected 'true' or 'false'. Defaulting to false.` - ); - } - return value === "true"; - }, - ["github-codeql-extra-queries" /* EXTRA_QUERIES */]: (_name, value) => value + ["github-codeql-disable-overlay" /* DISABLE_OVERLAY */]: parseBooleanRepositoryProperty, + ["github-codeql-extra-queries" /* EXTRA_QUERIES */]: parseStringRepositoryProperty }; -function setProperty2(properties, name, value, logger) { - properties[name] = repositoryPropertyParsers[name](name, value, logger); -} async function loadPropertiesFromApi(gitHubVersion, logger, repositoryNwo) { if (gitHubVersion.type === "GitHub Enterprise Server" /* GHES */) { return {}; @@ -104353,6 +104337,26 @@ async function loadPropertiesFromApi(gitHubVersion, logger, repositoryNwo) { ); } } +function setProperty2(properties, name, value, logger) { + properties[name] = repositoryPropertyParsers[name](name, value, logger); +} +function parseBooleanRepositoryProperty(name, value, logger) { + if (value !== "true" && value !== "false") { + logger.warning( + `Repository property '${name}' has unexpected value '${value}'. Expected 'true' or 'false'. Defaulting to false.` + ); + } + return value === "true"; +} +function parseStringRepositoryProperty(_name, value) { + return value; +} +var KNOWN_REPOSITORY_PROPERTY_NAMES = new Set( + Object.values(RepositoryPropertyName) +); +function isKnownPropertyName(name) { + return KNOWN_REPOSITORY_PROPERTY_NAMES.has(name); +} // src/config/db-config.ts function shouldCombine(inputValue) { diff --git a/src/feature-flags/properties.ts b/src/feature-flags/properties.ts index 9477cbad4..3b55fcb6a 100644 --- a/src/feature-flags/properties.ts +++ b/src/feature-flags/properties.ts @@ -11,19 +11,13 @@ export enum RepositoryPropertyName { EXTRA_QUERIES = "github-codeql-extra-queries", } -const KNOWN_REPOSITORY_PROPERTY_NAMES = new Set( - Object.values(RepositoryPropertyName), -); - -function isKnownPropertyName(value: string): value is RepositoryPropertyName { - return KNOWN_REPOSITORY_PROPERTY_NAMES.has(value); -} - +/** Parsed types of the known repository properties. */ type AllRepositoryProperties = { [RepositoryPropertyName.DISABLE_OVERLAY]: boolean; [RepositoryPropertyName.EXTRA_QUERIES]: string; }; +/** Parsed repository properties. */ export type RepositoryProperties = Partial; /** Parsers that transform repository properties from the API response into typed values. */ @@ -34,27 +28,10 @@ const repositoryPropertyParsers: { logger: Logger, ) => AllRepositoryProperties[K]; } = { - [RepositoryPropertyName.DISABLE_OVERLAY]: (name, value, logger) => { - if (value !== "true" && value !== "false") { - logger.warning( - `Repository property '${name}' has unexpected value '${value}'. Expected 'true' or 'false'. Defaulting to false.`, - ); - } - return value === "true"; - }, - [RepositoryPropertyName.EXTRA_QUERIES]: (_name, value) => value, + [RepositoryPropertyName.DISABLE_OVERLAY]: parseBooleanRepositoryProperty, + [RepositoryPropertyName.EXTRA_QUERIES]: parseStringRepositoryProperty, }; -/** Update the partial set of repository properties with the parsed value of the specified property. */ -function setProperty( - properties: RepositoryProperties, - name: K, - value: string, - logger: Logger, -): void { - properties[name] = repositoryPropertyParsers[name](name, value, logger); -} - /** * A repository property has a name and a value. */ @@ -139,3 +116,42 @@ export async function loadPropertiesFromApi( ); } } + +/** Update the partial set of repository properties with the parsed value of the specified property. */ +function setProperty( + properties: RepositoryProperties, + name: K, + value: string, + logger: Logger, +): void { + properties[name] = repositoryPropertyParsers[name](name, value, logger); +} + +/** Parse a boolean repository property. */ +function parseBooleanRepositoryProperty( + name: string, + value: string, + logger: Logger, +): boolean { + if (value !== "true" && value !== "false") { + logger.warning( + `Repository property '${name}' has unexpected value '${value}'. Expected 'true' or 'false'. Defaulting to false.`, + ); + } + return value === "true"; +} + +/** Parse a string repository property. */ +function parseStringRepositoryProperty(_name: string, value: string): string { + return value; +} + +/** Set of known repository property names, for fast lookups. */ +const KNOWN_REPOSITORY_PROPERTY_NAMES = new Set( + Object.values(RepositoryPropertyName), +); + +/** Returns whether the given value is a known repository property name. */ +function isKnownPropertyName(name: string): name is RepositoryPropertyName { + return KNOWN_REPOSITORY_PROPERTY_NAMES.has(name); +}