diff --git a/internal/codeguard/checks/support/typescript_semantic_runner_core.js b/internal/codeguard/checks/support/typescript_semantic_runner_core.js index 4d18c21..866c8aa 100644 --- a/internal/codeguard/checks/support/typescript_semantic_runner_core.js +++ b/internal/codeguard/checks/support/typescript_semantic_runner_core.js @@ -60,7 +60,7 @@ function loadProgram() { configPath, ); return ts.createProgram({ - rootNames: configuredRootNames(parsed.fileNames, rootNames), + rootNames: rootNames || parsed.fileNames.filter((name) => isWithinTarget(path.resolve(name))), options: parsed.options, }); } @@ -71,15 +71,6 @@ function loadProgram() { }); } -function configuredRootNames(configuredFiles, corpusFiles) { - const withinTarget = configuredFiles.filter((name) => isWithinTarget(path.resolve(name))); - if (!Array.isArray(corpusFiles)) { - return withinTarget; - } - const corpus = new Set(corpusFiles.map((name) => path.resolve(name))); - return withinTarget.filter((name) => corpus.has(path.resolve(name))); -} - function findConfigPath() { return ts.findConfigFile(targetPath, ts.sys.fileExists, "tsconfig.json") || ts.findConfigFile(targetPath, ts.sys.fileExists, "jsconfig.json"); diff --git a/internal/codeguard/checks/support/typescript_semantic_test.go b/internal/codeguard/checks/support/typescript_semantic_test.go index 78527a8..824e95d 100644 --- a/internal/codeguard/checks/support/typescript_semantic_test.go +++ b/internal/codeguard/checks/support/typescript_semantic_test.go @@ -44,7 +44,7 @@ func TestTypeScriptRuntimeDiscoveryHonorsExplicitRuntime(t *testing.T) { } } -func TestTypeScriptSemanticRunnerIntersectsCorpusWithConfiguredFiles(t *testing.T) { +func TestTypeScriptSemanticRunnerUsesCorpusDespiteConfiguredFiles(t *testing.T) { if _, err := exec.LookPath("node"); err != nil { t.Skip("node is required for the embedded semantic runner test") } @@ -73,8 +73,7 @@ module.exports = { TargetPath: root, SourceFiles: []string{ filepath.Join(root, "src/app.ts"), - filepath.Join(root, "vendor/excluded.ts"), - filepath.Join(root, "node_modules/pkg/index.ts"), + filepath.Join(root, "src/tsconfig-excluded.ts"), }, } _, err := runTypeScriptSemanticRunner(context.Background(), input) @@ -82,12 +81,9 @@ module.exports = { t.Fatal("semantic runner succeeded; want fake compiler root report") } message := err.Error() - if !strings.Contains(message, filepath.Join(root, "src/app.ts")) { - t.Fatalf("configured corpus root missing from compiler roots: %s", message) - } - for _, excluded := range []string{"vendor/excluded.ts", "node_modules/pkg/index.ts"} { - if strings.Contains(message, excluded) { - t.Fatalf("tsconfig-excluded corpus file %q reached compiler roots: %s", excluded, message) + for _, sourceFile := range input.SourceFiles { + if !strings.Contains(message, sourceFile) { + t.Fatalf("corpus root %q missing from compiler roots: %s", sourceFile, message) } } }