initial commit
This commit is contained in:
43
proxy.ts
Normal file
43
proxy.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user