Skip to content

Commit f18f54f

Browse files
committed
TS: Allow changing the port
1 parent 6f21750 commit f18f54f

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed

javascript/extractor/src/com/semmle/js/parser/TypeScriptParser.java

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
package com.semmle.js.parser;
22

3-
import ch.qos.logback.classic.Level;
3+
import java.io.BufferedReader;
4+
import java.io.BufferedWriter;
5+
import java.io.ByteArrayOutputStream;
6+
import java.io.Closeable;
7+
import java.io.File;
8+
import java.io.IOException;
9+
import java.io.InputStream;
10+
import java.io.InputStreamReader;
11+
import java.io.OutputStream;
12+
import java.io.OutputStreamWriter;
13+
import java.lang.ProcessBuilder.Redirect;
14+
import java.util.ArrayList;
15+
import java.util.Arrays;
16+
import java.util.Collections;
17+
import java.util.List;
18+
419
import com.google.gson.JsonArray;
520
import com.google.gson.JsonElement;
621
import com.google.gson.JsonObject;
@@ -21,21 +36,8 @@
2136
import com.semmle.util.process.AbstractProcessBuilder;
2237
import com.semmle.util.process.Builder;
2338
import com.semmle.util.process.Env;
24-
import java.io.BufferedReader;
25-
import java.io.BufferedWriter;
26-
import java.io.ByteArrayOutputStream;
27-
import java.io.Closeable;
28-
import java.io.File;
29-
import java.io.IOException;
30-
import java.io.InputStream;
31-
import java.io.InputStreamReader;
32-
import java.io.OutputStream;
33-
import java.io.OutputStreamWriter;
34-
import java.lang.ProcessBuilder.Redirect;
35-
import java.util.ArrayList;
36-
import java.util.Arrays;
37-
import java.util.Collections;
38-
import java.util.List;
39+
40+
import ch.qos.logback.classic.Level;
3941

4042
/**
4143
* The Java half of our wrapper for invoking the TypeScript parser.
@@ -105,14 +107,6 @@ public class TypeScriptParser {
105107
*/
106108
public static final String TYPESCRIPT_NODE_FLAGS = "SEMMLE_TYPESCRIPT_NODE_FLAGS";
107109

108-
/**
109-
* Flags that may be passed using {@link #TYPESCRIPT_NODE_FLAGS}
110-
*/
111-
private static final Set<String> allowedDebugNodeFlags = new HashSet<String>(Arrays.fromList(
112-
"--inspect",
113-
"--inspect-brk"
114-
));
115-
116110
/** The Node.js parser wrapper process, if it has been started already. */
117111
private Process parserWrapperProcess;
118112

@@ -253,8 +247,16 @@ private void setupParserWrapper() {
253247
File parserWrapper = getParserWrapper();
254248

255249
String debugFlagString = Env.systemEnv().getNonEmpty(TYPESCRIPT_NODE_FLAGS);
256-
List<String> debugFlags = debugFlagString == null ? new ArrayList<>() : debugFlagString.split(" ");
257-
debugFlags.retainAll(allowedDebugNodeFlags);
250+
List<String> debugFlags = new ArrayList<>();
251+
if (debugFlagString != null) {
252+
for (String flag : debugFlagString.split(" ")) {
253+
if (!flag.startsWith("--inspect") || flag.contains(":")) {
254+
System.err.println("Ignoring unrecognized Node flag: '" + flag + "'");
255+
} else {
256+
debugFlags.add(flag);
257+
}
258+
}
259+
}
258260

259261
List<String> cmd = getNodeJsRuntimeInvocation();
260262
cmd.add("--max_old_space_size=" + (mainMemoryMb + reserveMemoryMb));

0 commit comments

Comments
 (0)