Fix exceptions from ext showing as timeout error

This commit is contained in:
Zaid Abdulla committed 2021-07-13 15:34:38 -07:00
1 parent 3b36cefbca
commit 9cf18503ee
1 file changed
+10 -9
+10 -9
View File
@@ -30,14 +30,6 @@ const TIMEOUT = +config.get("EXT_TIMEOUT");
const processes: { [script: string]: ChildProcess } = {}; const processes: { [script: string]: ChildProcess } = {};
const jobs = new Map(); const jobs = new Map();
function messageHandler(message): void {
const func = jobs.get(message[0]);
if (func) {
jobs.delete(message[0]);
func({ fault: message[1], value: message[2] });
}
}
export function run(args: string[]): Promise<{ fault: Fault; value: any }> { export function run(args: string[]): Promise<{ fault: Fault; value: any }> {
return new Promise((resolve) => { return new Promise((resolve) => {
const scriptName = args[0]; const scriptName = args[0];
@@ -70,7 +62,16 @@ export function run(args: string[]): Promise<{ fault: Fault; value: any }> {
if (processes[scriptName] === p) delete processes[scriptName]; if (processes[scriptName] === p) delete processes[scriptName];
}); });
p.on("message", messageHandler); p.on("message", (message) => {
const func = jobs.get(message[0]);
if (func) {
jobs.delete(message[0]);
// Wait for any disconnect even to fire
setTimeout(() => {
func({ fault: message[1], value: message[2] });
});
}
});
const rlstdout = readline.createInterface(p.stdout); const rlstdout = readline.createInterface(p.stdout);
rlstdout.on("line", (line) => { rlstdout.on("line", (line) => {