Fix exceptions from ext showing as timeout error
This commit is contained in:
1 parent
3b36cefbca
commit
9cf18503ee
1 file changed
+10
-9
+10
-9
@@ -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) => {
|
||||||
|
|||||||
Reference in new issue
Block a user