http-client/proxy.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

2020-01-09 23:32:59 +00:00
import * as url from 'url';
export function getProxyUrl(reqUrl: url.Url): url.Url {
let usingSsl = reqUrl.protocol === 'https:';
let noProxy: string = process.env["no_proxy"] ||
process.env["NO_PROXY"];
let bypass: boolean;
if (noProxy && typeof noProxy === 'string') {
let bypassList = noProxy.split(',');
for (let i=0; i < bypassList.length; i++) {
let item = bypassList[i];
if (item &&
typeof item === "string" &&
reqUrl.host.toLocaleLowerCase() == item.trim().toLocaleLowerCase()) {
bypass = true;
break;
}
}
}
let proxyUrl: url.Url;
if (bypass) {
return proxyUrl;
}
let proxyVar: string;
if (usingSsl) {
proxyVar = process.env["https_proxy"] ||
process.env["HTTPS_PROXY"];
} else {
proxyVar = process.env["http_proxy"] ||
process.env["HTTP_PROXY"];
}
if (proxyVar) {
proxyUrl = url.parse(proxyVar);
}
return proxyUrl;
}