in src/superspawn.js [120:145]
function whenDone (arg) {
if (child) {
child.removeListener('close', whenDone);
child.removeListener('error', whenDone);
}
const code = typeof arg === 'number' ? arg : arg && arg.code;
events.emit('verbose', `Command finished with error code ${code}: ${cmd} ${args}`);
if (code === 0) {
d.resolve(capturedOut.trim());
} else {
let errMsg = `${cmd}: Command failed with exit code ${code}`;
if (capturedErr) {
errMsg += ` Error output:\n${capturedErr.trim()}`;
}
const err = new Error(errMsg);
if (capturedErr) {
err.stderr = capturedErr;
}
if (capturedOut) {
err.stdout = capturedOut;
}
err.code = code;
d.reject(err);
}
}