Skip to content

Commit

Permalink
chore: replace node-fetch and https-proxy-agent with undici
Browse files Browse the repository at this point in the history
  • Loading branch information
benmccann committed Dec 9, 2024
1 parent bd7cf69 commit 07bb98f
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 20 deletions.
5 changes: 4 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
{
"checkLoops": false
}
]
],
"n/no-unsupported-features/node-builtins": ["error", {
"allowExperimental": true
}]
}
}
8 changes: 3 additions & 5 deletions lib/install.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ const log = require('./util/log.js');
const existsAsync = fs.exists || path.exists;
const versioning = require('./util/versioning.js');
const napi = require('./util/napi.js');
// for fetching binaries
const fetch = require('node-fetch');
const { ProxyAgent } = require('undici');
const tar = require('tar');

let npgVersion = 'unknown';
Expand Down Expand Up @@ -55,12 +54,11 @@ function place_binary(uri, targetDir, opts, callback) {
process.env.npm_config_proxy;
let agent;
if (proxyUrl) {
const { HttpsProxyAgent } = require('https-proxy-agent');
agent = new HttpsProxyAgent(proxyUrl);
agent = new ProxyAgent(proxyUrl);
log.log('download', `proxy agent configured using: "${proxyUrl}"`);
}

fetch(sanitized, { agent })
fetch(sanitized, { dispatcher: agent })
.then((res) => {
if (!res.ok) {
throw new Error(`response status ${res.status} ${res.statusText} on ${sanitized}`);
Expand Down
93 changes: 85 additions & 8 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@
"consola": "^3.2.3",
"detect-libc": "^2.0.0",
"https-proxy-agent": "^7.0.5",
"node-fetch": "^2.6.7",
"nopt": "^8.0.0",
"semver": "^7.5.3",
"tar": "^7.4.0"
"tar": "^7.4.0",
"undici": "^6.19.8"
},
"devDependencies": {
"@mapbox/cloudfriend": "^8.1.0",
Expand All @@ -39,7 +39,7 @@
"eslint": "^8.57.0",
"eslint-plugin-n": "^17.9.0",
"mock-aws-s3": "^4.0.2",
"nock": "^13.5.4",
"nock": "^14.0.0-beta.19",
"node-addon-api": "^8.1.0",
"nyc": "^17.0.0",
"tape": "^5.5.2",
Expand Down
5 changes: 2 additions & 3 deletions test/proxy-bcrypt.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ const { createUnzip } = require('zlib');
const os = require('os');

const tar = require('tar-fs');
const { HttpsProxyAgent } = require('https-proxy-agent');
const fetch = require('node-fetch');
const { ProxyAgent } = require('undici');
const { rimraf } = require('rimraf');

const test = require('tape');
Expand Down Expand Up @@ -44,7 +43,7 @@ test('setup proxy server', (t) => {
proxy.startServer({ port: proxyPort });
process.env.https_proxy = process.env.http_proxy = proxyServer;

options.agent = new HttpsProxyAgent(proxyServer);
options.dispatcher = new ProxyAgent(proxyServer);

// make sure the download directory deleted then create an empty one
rimraf(downloadDir).then(() => {
Expand Down

0 comments on commit 07bb98f

Please sign in to comment.