From 86c875f7e976fee3df6e13e32be8130ae2f8b9ec Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 9 Jul 2024 13:08:57 -0700 Subject: [PATCH] Helper script for finding unused files --- bin/vs_base_find_used_files.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 bin/vs_base_find_used_files.js diff --git a/bin/vs_base_find_used_files.js b/bin/vs_base_find_used_files.js new file mode 100644 index 00000000..50ffaf4f --- /dev/null +++ b/bin/vs_base_find_used_files.js @@ -0,0 +1,24 @@ +// @ts-check + +const { dirname } = require("path"); +const ts = require("typescript"); + +function findUnusedSymbols( + /** @type string */ tsconfigPath +) { + // Initialize a program using the project's tsconfig.json + const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile); + const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, dirname(tsconfigPath)); + + // Initialize a program with the parsed configuration + const program = ts.createProgram(parsedConfig.fileNames, { + ...parsedConfig.options, + noUnusedLocals: true + }); + const sourceFiles = program.getSourceFiles(); + const usedBaseSourceFiles = sourceFiles.filter(e => e.fileName.includes('src/vs/base/')); + console.log('Source files used in src/vs/base/:', usedBaseSourceFiles.map(e => e.fileName.replace(/^.+\/src\//, 'src/')).sort((a, b) => a.localeCompare(b))); +} + +// Example usage +findUnusedSymbols("./src/browser/tsconfig.json");