From 17e0aec811250191a91c090520bea5c47aa74903 Mon Sep 17 00:00:00 2001 From: Ferenc Hammerl <31069338+fhammerl@users.noreply.github.com> Date: Tue, 20 Jun 2023 12:16:21 +0000 Subject: [PATCH] Prepend http:// to http(s)_proxy env if missing --- packages/http-client/__tests__/proxy.test.ts | 6 ++++++ packages/http-client/src/proxy.ts | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/http-client/__tests__/proxy.test.ts b/packages/http-client/__tests__/proxy.test.ts index 97cf7853..1a0e28a7 100644 --- a/packages/http-client/__tests__/proxy.test.ts +++ b/packages/http-client/__tests__/proxy.test.ts @@ -91,6 +91,12 @@ describe('proxy', () => { expect(proxyUrl).toBeDefined() }) + it('getProxyUrl returns proxyUrl if http_proxy has no protocol', () => { + process.env['http_proxy'] = 'myproxysvr' + const proxyUrl = pm.getProxyUrl(new URL('http://github.com')) + expect(proxyUrl?.toString()).toBe('http://myproxysvr/') + }) + it('checkBypass returns true if host as no_proxy list', () => { process.env['no_proxy'] = 'myserver' const bypass = pm.checkBypass(new URL('https://myserver')) diff --git a/packages/http-client/src/proxy.ts b/packages/http-client/src/proxy.ts index 1a967e34..8a11ce99 100644 --- a/packages/http-client/src/proxy.ts +++ b/packages/http-client/src/proxy.ts @@ -14,7 +14,13 @@ export function getProxyUrl(reqUrl: URL): URL | undefined { })() if (proxyVar) { - return new URL(proxyVar) + try { + return new URL(proxyVar) + } + catch { + if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) + return new URL('http://' + proxyVar) + } } else { return undefined }