You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.1 KiB
39 lines
1.1 KiB
"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
|