in apps/mountebank-mock/mountebank-source/src/models/http/httpProxy.js [190:227]
function to (proxyDestination, originalRequest, options, requestDetails) {
addInjectedHeadersTo(originalRequest, options.injectHeaders);
function log (direction, what) {
logger.debug('Proxy %s %s %s %s %s',
originalRequest.requestFrom, direction, JSON.stringify(what), direction, proxyDestination);
}
return new Promise((resolve, reject) => {
let proxiedRequest;
try {
proxiedRequest = getProxyRequest(proxyDestination, originalRequest, options, requestDetails);
}
catch (e) {
reject(errors.InvalidProxyError(`Unable to connect to ${JSON.stringify(proxyDestination)}`));
}
log('=>', originalRequest);
proxiedRequest.once('error', error => {
if (error.code === 'ENOTFOUND' || error.code === 'EAI_AGAIN') {
reject(errors.InvalidProxyError(`Cannot resolve ${JSON.stringify(proxyDestination)}`));
}
else if (error.code === 'ECONNREFUSED' || error.code === 'ECONNRESET') {
reject(errors.InvalidProxyError(`Unable to connect to ${JSON.stringify(proxyDestination)}`));
}
else {
reject(error);
}
});
proxy(proxiedRequest).then(response => {
log('<=', response);
resolve(response);
});
});
}