The custom Jest test runner was originally written to install the required extensions for the CLI integration tests. This is no longer necessary as of https://github.com/github/vscode-codeql/pull/3232, so we can remove all code that deals with downloading VS Code and installing extensions. The download of VS Code will now be handled by the base `VSCodeTestRunner`.
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { basename, join, relative, resolve } from "path";
|
|
import analyzeTsConfig from "ts-unused-exports";
|
|
import { containsPath, pathsEqual } from "../src/common/files";
|
|
import { exit } from "process";
|
|
|
|
function ignoreFile(file: string): boolean {
|
|
return (
|
|
containsPath("gulpfile.ts", file) ||
|
|
containsPath(".storybook", file) ||
|
|
containsPath(join("src", "stories"), file) ||
|
|
pathsEqual(
|
|
join("test", "vscode-tests", "jest-runner-vscode-codeql-cli.ts"),
|
|
file,
|
|
) ||
|
|
basename(file) === "jest.config.ts" ||
|
|
basename(file) === "index.tsx" ||
|
|
basename(file) === "index.ts"
|
|
);
|
|
}
|
|
|
|
function main() {
|
|
const repositoryRoot = resolve(join(__dirname, ".."));
|
|
|
|
const result = analyzeTsConfig("tsconfig.deadcode.json");
|
|
let foundUnusedExports = false;
|
|
|
|
for (const [filepath, exportNameAndLocations] of Object.entries(result)) {
|
|
const relativeFilepath = relative(repositoryRoot, filepath);
|
|
|
|
if (ignoreFile(relativeFilepath)) {
|
|
continue;
|
|
}
|
|
|
|
foundUnusedExports = true;
|
|
|
|
console.log(relativeFilepath);
|
|
for (const exportNameAndLocation of exportNameAndLocations) {
|
|
console.log(` ${exportNameAndLocation.exportName}`);
|
|
}
|
|
console.log();
|
|
}
|
|
|
|
if (foundUnusedExports) {
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
main();
|