Skip to content

Commit 572fcaf

Browse files
authored
Merge pull request #19 from proxymesh/dependabot/npm_and_yarn/javascript/brace-expansion-2.0.3
Bump brace-expansion from 2.0.2 to 2.0.3 in /javascript
2 parents d30954a + 095dd92 commit 572fcaf

2 files changed

Lines changed: 20 additions & 4 deletions

File tree

javascript/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

javascript/typed-rest-client-proxy.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
* TEST_URL - URL to request (default: https://api.ipify.org?format=json)
88
*
99
* Uses RestClient requestOptions.proxy (tunnel-based HTTPS CONNECT).
10+
*
11+
* typed-rest-client only applies proxy auth when proxyUsername / proxyPassword
12+
* are set; credentials embedded in proxyUrl are ignored (tunnel gets no
13+
* Proxy-Authorization), which yields 407 on authenticated proxies.
1014
*/
15+
import { URL } from 'url';
1116
import { RestClient } from 'typed-rest-client';
1217

1318
const proxyUrl = process.env.PROXY_URL || process.env.HTTPS_PROXY;
@@ -18,8 +23,19 @@ if (!proxyUrl) {
1823

1924
const testUrl = process.env.TEST_URL || 'https://api.ipify.org?format=json';
2025

26+
function proxyOptionsFromUrl(urlString) {
27+
const u = new URL(urlString);
28+
const base = `${u.protocol}//${u.hostname}${u.port ? `:${u.port}` : ''}`;
29+
const proxy = { proxyUrl: base };
30+
if (u.username !== '' || u.password !== '') {
31+
proxy.proxyUsername = decodeURIComponent(u.username);
32+
proxy.proxyPassword = decodeURIComponent(u.password);
33+
}
34+
return proxy;
35+
}
36+
2137
const client = new RestClient('proxy-examples-javascript', null, null, {
22-
proxy: { proxyUrl: proxyUrl },
38+
proxy: proxyOptionsFromUrl(proxyUrl),
2339
});
2440

2541
try {

0 commit comments

Comments
 (0)