mirror of
https://github.com/JamesIves/github-pages-deploy-action.git
synced 2023-12-15 20:03:39 +08:00
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const url = require("url");
|
||
|
function getProxyUrl(reqUrl) {
|
||
|
let usingSsl = reqUrl.protocol === 'https:';
|
||
|
let proxyUrl;
|
||
|
if (checkBypass(reqUrl)) {
|
||
|
return proxyUrl;
|
||
|
}
|
||
|
let proxyVar;
|
||
|
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;
|
||
|
}
|
||
|
exports.getProxyUrl = getProxyUrl;
|
||
|
function checkBypass(reqUrl) {
|
||
|
if (!reqUrl.hostname) {
|
||
|
return false;
|
||
|
}
|
||
|
let noProxy = process.env["no_proxy"] || process.env["NO_PROXY"] || '';
|
||
|
if (!noProxy) {
|
||
|
return false;
|
||
|
}
|
||
|
// Determine the request port
|
||
|
let reqPort;
|
||
|
if (reqUrl.port) {
|
||
|
reqPort = Number(reqUrl.port);
|
||
|
}
|
||
|
else if (reqUrl.protocol === 'http:') {
|
||
|
reqPort = 80;
|
||
|
}
|
||
|
else if (reqUrl.protocol === 'https:') {
|
||
|
reqPort = 443;
|
||
|
}
|
||
|
// Format the request hostname and hostname with port
|
||
|
let upperReqHosts = [reqUrl.hostname.toUpperCase()];
|
||
|
if (typeof reqPort === 'number') {
|
||
|
upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);
|
||
|
}
|
||
|
// Compare request host against noproxy
|
||
|
for (let upperNoProxyItem of noProxy.split(',').map(x => x.trim().toUpperCase()).filter(x => x)) {
|
||
|
if (upperReqHosts.some(x => x === upperNoProxyItem)) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
exports.checkBypass = checkBypass;
|