Autoformat index.ts

This commit is contained in:
Henry Mercer 2023-04-18 18:59:36 +01:00
parent 1c2f282107
commit 55a2e70992

View file

@ -18,50 +18,50 @@ function getCodeQLCliVersionForRelease(release): string {
// Instead, we use a marker file `cli-version-<version>.txt` to record the CLI version. // Instead, we use a marker file `cli-version-<version>.txt` to record the CLI version.
// This marker file is uploaded as a release asset for all new CodeQL bundles. // This marker file is uploaded as a release asset for all new CodeQL bundles.
const cliVersionsFromMarkerFiles = release.assets const cliVersionsFromMarkerFiles = release.assets
.map((asset) => asset.name.match(/cli-version-(.*)\.txt/)?.[1]) .map((asset) => asset.name.match(/cli-version-(.*)\.txt/)?.[1])
.filter((v) => v) .filter((v) => v)
.map((v) => v as string); .map((v) => v as string);
if (cliVersionsFromMarkerFiles.length > 1) { if (cliVersionsFromMarkerFiles.length > 1) {
throw new Error( throw new Error(
`Release ${release.tag_name} has multiple CLI version marker files.` `Release ${release.tag_name} has multiple CLI version marker files.`
); );
} else if (cliVersionsFromMarkerFiles.length === 0) { } else if (cliVersionsFromMarkerFiles.length === 0) {
throw new Error( throw new Error(
`Failed to find the CodeQL CLI version for release ${release.tag_name}.` `Failed to find the CodeQL CLI version for release ${release.tag_name}.`
); );
} }
return cliVersionsFromMarkerFiles[0]; return cliVersionsFromMarkerFiles[0];
} }
async function getBundleInfoFromRelease(release): Promise<BundleInfo> { async function getBundleInfoFromRelease(release): Promise<BundleInfo> {
return { return {
bundleVersion: release.tag_name, bundleVersion: release.tag_name,
cliVersion: getCodeQLCliVersionForRelease(release) cliVersion: getCodeQLCliVersionForRelease(release)
}; };
} }
async function getNewDefaults(currentDefaults: Defaults): Promise<Defaults> { async function getNewDefaults(currentDefaults: Defaults): Promise<Defaults> {
const release = github.context.payload.release; const release = github.context.payload.release;
console.log('Updating default bundle as a result of the following release: ' + console.log('Updating default bundle as a result of the following release: ' +
`${JSON.stringify(release)}.`) `${JSON.stringify(release)}.`)
const bundleInfo = await getBundleInfoFromRelease(release); const bundleInfo = await getBundleInfoFromRelease(release);
return { return {
bundleVersion: bundleInfo.bundleVersion, bundleVersion: bundleInfo.bundleVersion,
cliVersion: bundleInfo.cliVersion, cliVersion: bundleInfo.cliVersion,
priorBundleVersion: currentDefaults.bundleVersion, priorBundleVersion: currentDefaults.bundleVersion,
priorCliVersion: currentDefaults.cliVersion priorCliVersion: currentDefaults.cliVersion
}; };
} }
async function main() { async function main() {
const previousDefaults: Defaults = JSON.parse(fs.readFileSync('../../../src/defaults.json', 'utf8')); const previousDefaults: Defaults = JSON.parse(fs.readFileSync('../../../src/defaults.json', 'utf8'));
const newDefaults = await getNewDefaults(previousDefaults); const newDefaults = await getNewDefaults(previousDefaults);
// Update the source file in the repository. Calling workflows should subsequently rebuild // Update the source file in the repository. Calling workflows should subsequently rebuild
// the Action to update `lib/defaults.json`. // the Action to update `lib/defaults.json`.
fs.writeFileSync('../../../src/defaults.json', JSON.stringify(newDefaults, null, 2) + "\n"); fs.writeFileSync('../../../src/defaults.json', JSON.stringify(newDefaults, null, 2) + "\n");
} }
// Ideally, we'd await main() here, but that doesn't work well with `ts-node`. // Ideally, we'd await main() here, but that doesn't work well with `ts-node`.
// So instead we rely on the fact that Node won't exit until the event loop is empty. // So instead we rely on the fact that Node won't exit until the event loop is empty.
main(); main();