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 Jul 1, 2024
1 parent a68460d commit 33f03e2
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 43 deletions.
5 changes: 2 additions & 3 deletions lib/install.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ exports.usage = 'Attempts to install pre-built binary for module';
const fs = require('fs');
const path = require('path');
const log = require('npmlog');
const { ProxyAgent } = require('undici');
const existsAsync = fs.exists || path.exists;
const versioning = require('./util/versioning.js');
const napi = require('./util/napi.js');
const makeDir = require('make-dir');
// for fetching binaries
const fetch = require('node-fetch');
const tar = require('tar');

let npgVersion = 'unknown';
Expand Down Expand Up @@ -56,12 +56,11 @@ function place_binary(uri, targetDir, opts, callback) {
process.env.npm_config_proxy;
let agent;
if (proxyUrl) {
const ProxyAgent = require('https-proxy-agent');
agent = new ProxyAgent(proxyUrl);
log.http('download', 'proxy agent configured using: "%s"', 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
82 changes: 48 additions & 34 deletions package-lock.json

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

7 changes: 3 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,13 @@
},
"dependencies": {
"detect-libc": "^2.0.0",
"https-proxy-agent": "^5.0.0",
"make-dir": "^3.1.0",
"node-fetch": "^2.6.7",
"nopt": "^7.2.1",
"npmlog": "^7.0.1",
"rimraf": "^5.0.5",
"semver": "^7.3.5",
"tar": "^7.4.0"
"tar": "^7.4.0",
"undici": "^6.19.2"
},
"devDependencies": {
"@mapbox/cloudfriend": "^5.1.0",
Expand All @@ -41,7 +40,7 @@
"eslint": "^8.57.0",
"eslint-plugin-node": "^11.1.0",
"mock-aws-s3": "^4.0.2",
"nock": "^12.0.3",
"nock": "^14.0.0-beta.7",
"node-addon-api": "^4.3.0",
"nyc": "^15.1.0",
"tape": "^5.5.2",
Expand Down
4 changes: 2 additions & 2 deletions test/proxy-bcrypt.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const { createUnzip } = require('zlib');
const os = require('os');

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

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

options.agent = new Agent(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 33f03e2

Please sign in to comment.