diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index cebf15021fe..7f4147c02c0 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -503,10 +503,7 @@ public class AutoBuild { typeScriptFiles.add(sourcePath.toFile()); } } - tsParser.prepareFiles(typeScriptFiles); - for (File file : typeScriptFiles) { - extract(extractor, file.toPath()); - } + extractTypeScriptFiles(typeScriptFiles, extractedFiles, extractor); tsParser.closeProject(projectFile); } @@ -524,13 +521,7 @@ public class AutoBuild { } } if (!remainingTypeScriptFiles.isEmpty()) { - tsParser.prepareFiles(remainingTypeScriptFiles); - for (File f : remainingTypeScriptFiles) { - Path path = f.toPath(); - if (extractedFiles.add(path)) { - extract(extractor, path); - } - } + extractTypeScriptFiles(remainingTypeScriptFiles, extractedFiles, extractor); } // The TypeScript compiler instance is no longer needed. @@ -552,6 +543,16 @@ public class AutoBuild { extractorState.getTypeScriptParser().verifyInstallation(true); } + public void extractTypeScriptFiles(List files, Set extractedFiles, FileExtractor extractor) throws IOException { + extractorState.getTypeScriptParser().prepareFiles(files); + for (File f : files) { + Path path = f.toPath(); + if (extractedFiles.add(path)) { + extract(extractor, f.toPath()); + } + } + } + private Path normalizePath(Path path) { return path.toAbsolutePath().normalize(); } diff --git a/javascript/extractor/src/com/semmle/js/extractor/test/AutoBuildTests.java b/javascript/extractor/src/com/semmle/js/extractor/test/AutoBuildTests.java index 89d9494b404..7969c093f4e 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/test/AutoBuildTests.java +++ b/javascript/extractor/src/com/semmle/js/extractor/test/AutoBuildTests.java @@ -1,5 +1,6 @@ package com.semmle.js.extractor.test; +import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -100,6 +101,13 @@ public class AutoBuildTests { @Override public void verifyTypeScriptInstallation() { } + + @Override + public void extractTypeScriptFiles(List files, Set extractedFiles, FileExtractor extractor) throws IOException { + for (File f : files) { + actual.add(f.toString()); + } + } }.run(); String expectedString = StringUtil.glue("\n", expected.stream().sorted().toArray()); String actualString = StringUtil.glue("\n", actual.stream().sorted().toArray());