39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.handleProxyOption = void 0;
|
||
|
const url = require("url");
|
||
|
const immutable_1 = require("immutable");
|
||
|
function handleProxyOption(incoming) {
|
||
|
let value = incoming.get("proxy");
|
||
|
let mw;
|
||
|
let target;
|
||
|
if (!value || value === true) {
|
||
|
return [incoming, []];
|
||
|
}
|
||
|
if (typeof value !== "string") {
|
||
|
target = value.get("target");
|
||
|
mw = value.get("middleware");
|
||
|
}
|
||
|
else {
|
||
|
target = value;
|
||
|
value = (0, immutable_1.Map)({});
|
||
|
}
|
||
|
if (!target.match(/^(https?):\/\//)) {
|
||
|
target = "http://" + target;
|
||
|
}
|
||
|
const parsedUrl = url.parse(target);
|
||
|
if (!parsedUrl.port) {
|
||
|
parsedUrl.port = "80";
|
||
|
}
|
||
|
const out = {
|
||
|
target: parsedUrl.protocol + "//" + parsedUrl.host,
|
||
|
url: (0, immutable_1.Map)(parsedUrl)
|
||
|
};
|
||
|
if (mw) {
|
||
|
out.middleware = mw;
|
||
|
}
|
||
|
const proxyOutput = value.mergeDeep(out);
|
||
|
return [incoming.set("proxy", proxyOutput), []];
|
||
|
}
|
||
|
exports.handleProxyOption = handleProxyOption;
|
||
|
//# sourceMappingURL=handleProxyOption.js.map
|