refactor to handle exec.exec return values together
This commit is contained in:
parent
6ef533485e
commit
231537b08e
3 changed files with 20 additions and 18 deletions
19
lib/exec_wrapper.js
generated
19
lib/exec_wrapper.js
generated
|
|
@ -50,28 +50,29 @@ async function exec_wrapper(commandLine, args, matchers, options) {
|
|||
}
|
||||
};
|
||||
// we capture the original return code and error so that (if no match is found) we can duplicate the behaviour
|
||||
let originalReturnCode;
|
||||
let originalError;
|
||||
let originalReturnValue;
|
||||
try {
|
||||
originalReturnCode = await exec.exec(commandLine, args, {
|
||||
originalReturnValue = await exec.exec(commandLine, args, {
|
||||
listeners: listeners,
|
||||
...options
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
originalError = e;
|
||||
originalReturnCode = 1; // TODO linter insists, but presumably there's a better way to do _all_ this...
|
||||
originalReturnValue = e;
|
||||
}
|
||||
if (matchers) {
|
||||
for (const [customCode, regex, message] of matchers) {
|
||||
if (customCode === originalReturnCode || regex.test(stderr) || regex.test(stdout)) {
|
||||
if (customCode === originalReturnValue || regex.test(stderr) || regex.test(stdout)) {
|
||||
throw new Error(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (originalError)
|
||||
throw originalError;
|
||||
return originalReturnCode;
|
||||
if (typeof originalReturnValue === 'number') {
|
||||
return originalReturnValue;
|
||||
}
|
||||
else {
|
||||
throw originalReturnValue;
|
||||
}
|
||||
}
|
||||
exports.exec_wrapper = exec_wrapper;
|
||||
//# sourceMappingURL=exec_wrapper.js.map
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"exec_wrapper.js","sourceRoot":"","sources":["../src/exec_wrapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAsC;AAItC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,IAAe,EACpC,QAAqC,EACrC,OAAwB;;IAEzD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,4GAA4G;IAC5G,MAAM,gBAAgB,SAAG,OAAO,0CAAE,SAAS,CAAC;IAC5C,IAAI,SAAS,GAAG;QACd,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAA,gBAAgB,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC1C,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC/B;iBAAM;gBACL,iFAAiF;gBACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;QAEH,CAAC;QACD,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAA,gBAAgB,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC1C,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC/B;iBAAM;gBACL,iFAAiF;gBACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;QACH,CAAC;KACF,CAAC;IAEF,8GAA8G;IAC9G,IAAI,kBAA0B,CAAC;IAC/B,IAAI,aAA8B,CAAC;IACnC,IAAI;QACF,kBAAkB,GAAG,MAAM,IAAI,CAAC,IAAI,CAClC,WAAW,EACX,IAAI,EACJ;YACE,SAAS,EAAE,SAAS;YACpB,GAAG,OAAO;SACX,CAAC,CAAC;KACN;IAAC,OAAO,CAAC,EAAE;QACV,aAAa,GAAG,CAAC,CAAC;QAClB,kBAAkB,GAAG,CAAC,CAAC,CAAC,+EAA+E;KACxG;IAED,IAAI,QAAQ,EAAE;QACZ,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE;YACnD,IAAI,UAAU,KAAK,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAG;gBAClF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;aAC1B;SACF;KACF;IAED,IAAI,aAAa;QAAE,MAAM,aAAa,CAAC;IACvC,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAzDD,oCAyDC"}
|
||||
{"version":3,"file":"exec_wrapper.js","sourceRoot":"","sources":["../src/exec_wrapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAsC;AAItC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,IAAe,EACpC,QAAqC,EACrC,OAAwB;;IAEzD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,4GAA4G;IAC5G,MAAM,gBAAgB,SAAG,OAAO,0CAAE,SAAS,CAAC;IAC5C,IAAI,SAAS,GAAG;QACd,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAA,gBAAgB,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC1C,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC/B;iBAAM;gBACL,iFAAiF;gBACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;QAEH,CAAC;QACD,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;;YACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAA,gBAAgB,0CAAE,MAAM,MAAK,SAAS,EAAE;gBAC1C,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC/B;iBAAM;gBACL,iFAAiF;gBACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;QACH,CAAC;KACF,CAAC;IAEF,8GAA8G;IAC9G,IAAI,mBAAiC,CAAC;IACtC,IAAI;QACF,mBAAmB,GAAG,MAAM,IAAI,CAAC,IAAI,CACnC,WAAW,EACX,IAAI,EACJ;YACE,SAAS,EAAE,SAAS;YACpB,GAAG,OAAO;SACX,CAAC,CAAC;KACN;IAAC,OAAO,CAAC,EAAE;QACV,mBAAmB,GAAG,CAAC,CAAC;KACzB;IAED,IAAI,QAAQ,EAAE;QACZ,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE;YACnD,IAAI,UAAU,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAG;gBACnF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;aAC1B;SACF;KACF;IAED,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;QAC3C,OAAO,mBAAmB,CAAC;KAC5B;SAAM;QACL,MAAM,mBAAmB,CAAC;KAC3B;AACH,CAAC;AA1DD,oCA0DC"}
|
||||
|
|
@ -45,10 +45,9 @@ export async function exec_wrapper(commandLine: string, args?: string[],
|
|||
};
|
||||
|
||||
// we capture the original return code and error so that (if no match is found) we can duplicate the behaviour
|
||||
let originalReturnCode: number;
|
||||
let originalError: Error|undefined;
|
||||
let originalReturnValue: Error|number;
|
||||
try {
|
||||
originalReturnCode = await exec.exec(
|
||||
originalReturnValue = await exec.exec(
|
||||
commandLine,
|
||||
args,
|
||||
{
|
||||
|
|
@ -56,18 +55,20 @@ export async function exec_wrapper(commandLine: string, args?: string[],
|
|||
...options
|
||||
});
|
||||
} catch (e) {
|
||||
originalError = e;
|
||||
originalReturnCode = 1; // TODO linter insists, but presumably there's a better way to do _all_ this...
|
||||
originalReturnValue = e;
|
||||
}
|
||||
|
||||
if (matchers) {
|
||||
for (const [customCode, regex, message] of matchers) {
|
||||
if (customCode === originalReturnCode || regex.test(stderr) || regex.test(stdout) ) {
|
||||
if (customCode === originalReturnValue || regex.test(stderr) || regex.test(stdout) ) {
|
||||
throw new Error(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (originalError) throw originalError;
|
||||
return originalReturnCode;
|
||||
if (typeof originalReturnValue === 'number') {
|
||||
return originalReturnValue;
|
||||
} else {
|
||||
throw originalReturnValue;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue