| function normalizeString(value) { |
| if (value === undefined || value === null) return ""; |
| return String(value).trim(); |
| } |
|
|
| export function applyOutboundProxyEnv( |
| { outboundProxyEnabled, outboundProxyUrl, outboundNoProxy } = {} |
| ) { |
| if (typeof process === "undefined" || !process.env) return; |
| const enabled = Boolean(outboundProxyEnabled); |
| const proxyUrl = normalizeString(outboundProxyUrl); |
| const noProxy = normalizeString(outboundNoProxy); |
|
|
| |
| if (!enabled) { |
| if (process.env.NINE_ROUTER_PROXY_MANAGED === "1") { |
| delete process.env.HTTP_PROXY; |
| delete process.env.HTTPS_PROXY; |
| delete process.env.ALL_PROXY; |
| delete process.env.NO_PROXY; |
| delete process.env.NINE_ROUTER_PROXY_MANAGED; |
| delete process.env.NINE_ROUTER_PROXY_URL; |
| delete process.env.NINE_ROUTER_NO_PROXY; |
| } |
| return; |
| } |
|
|
| |
| |
| |
| |
| const wasManaged = process.env.NINE_ROUTER_PROXY_MANAGED === "1"; |
| let managed = false; |
|
|
| if (wasManaged) { |
| if (!proxyUrl) { |
| delete process.env.HTTP_PROXY; |
| delete process.env.HTTPS_PROXY; |
| delete process.env.ALL_PROXY; |
| delete process.env.NINE_ROUTER_PROXY_URL; |
| } |
| if (!noProxy) { |
| delete process.env.NO_PROXY; |
| delete process.env.NINE_ROUTER_NO_PROXY; |
| } |
| } |
|
|
| if (proxyUrl) { |
| process.env.HTTP_PROXY = proxyUrl; |
| process.env.HTTPS_PROXY = proxyUrl; |
| process.env.ALL_PROXY = proxyUrl; |
| process.env.NINE_ROUTER_PROXY_URL = proxyUrl; |
| managed = true; |
| } |
|
|
| if (noProxy) { |
| process.env.NO_PROXY = noProxy; |
| process.env.NINE_ROUTER_NO_PROXY = noProxy; |
| managed = true; |
| } |
|
|
| if (managed) { |
| process.env.NINE_ROUTER_PROXY_MANAGED = "1"; |
| } else if (wasManaged) { |
| |
| delete process.env.NINE_ROUTER_PROXY_MANAGED; |
| } |
| } |
|
|