Skip to content

Commit 329cc63

Browse files
authoredApr 29, 2024··
Merge pull request #1803 from alumni/fix-url-parse
fix: replace deprecated `url.parse()` with `new URL()`
2 parents 9406dae + 8ead63f commit 329cc63

File tree

8 files changed

+16
-23
lines changed

8 files changed

+16
-23
lines changed
 

‎src/node/agent.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
* Module dependencies.
33
*/
44

5-
// eslint-disable-next-line node/no-deprecated-api
6-
const { parse } = require('url');
75
const { CookieJar } = require('cookiejar');
86
const { CookieAccessInfo } = require('cookiejar');
97
const methods = require('methods');
@@ -55,7 +53,7 @@ class Agent extends AgentBase {
5553
_saveCookies (res) {
5654
const cookies = res.headers['set-cookie'];
5755
if (cookies) {
58-
const url = parse(res.request?.url || '');
56+
const url = new URL(res.request?.url || '');
5957
this.jar.setCookies(cookies, url.hostname, url.pathname);
6058
}
6159
}
@@ -67,7 +65,7 @@ class Agent extends AgentBase {
6765
* @api private
6866
*/
6967
_attachCookies (request_) {
70-
const url = parse(request_.url);
68+
const url = new URL(request_.url);
7169
const access = new CookieAccessInfo(
7270
url.hostname,
7371
url.pathname,

‎src/node/http2wrapper.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ const http2 = require('http2');
22
const Stream = require('stream');
33
const net = require('net');
44
const tls = require('tls');
5-
// eslint-disable-next-line node/no-deprecated-api
6-
const { parse } = require('url');
75

86
const {
97
HTTP2_HEADER_PATH,
@@ -145,7 +143,7 @@ class Request extends Stream {
145143
case HTTP2_HEADER_HOST:
146144
key = HTTP2_HEADER_AUTHORITY;
147145
value = /^http:\/\/|^https:\/\//.test(value)
148-
? parse(value).host
146+
? new URL(value).host
149147
: value;
150148
break;
151149
default:

‎test/node/basic-auth.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const assert = require('assert');
2-
const URL = require('url');
2+
const { format } = require('url');
33
const request = require('../support/client');
44
const getSetup = require('../support/setup');
55

@@ -14,11 +14,12 @@ describe('Basic auth', () => {
1414

1515
describe('when credentials are present in url', () => {
1616
it('should set Authorization', (done) => {
17-
const new_url = URL.parse(base);
18-
new_url.auth = 'tobi:learnboost';
17+
const new_url = new URL(base);
18+
new_url.username = 'tobi';
19+
new_url.password = 'learnboost';
1920
new_url.pathname = '/basic-auth';
2021

21-
request.get(URL.format(new_url)).end((error, res) => {
22+
request.get(format(new_url)).end((error, res) => {
2223
assert.equal(res.status, 200);
2324
done();
2425
});

‎test/node/basic.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ const assert = require('assert');
44
const fs = require('fs');
55
const { EventEmitter } = require('events');
66
const { StringDecoder } = require('string_decoder');
7-
const url = require('url');
87
const getSetup = require('../support/setup');
98
const request = require('../support/client');
109

@@ -30,7 +29,7 @@ describe('[node] request', () => {
3029

3130
describe('with an object', () => {
3231
it('should format the url', () =>
33-
request.get(url.parse(`${base}/login`)).then((res) => {
32+
request.get(new URL(`${base}/login`)).then((res) => {
3433
assert.ok(res.ok);
3534
}));
3635
});

‎test/node/http2.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ if (!process.env.HTTP2_TEST) {
44
}
55

66
const assert = require('assert');
7-
const url = require('url');
87
const request = require('../..');
98
const getSetup = require('../support/setup');
109

@@ -29,7 +28,7 @@ describe('request.get().http2()', () => {
2928

3029
it('should format the url', () =>
3130
request
32-
.get(url.parse(`${base}/login`))
31+
.get(new URL(`${base}/login`))
3332
.http2()
3433
.then((res) => {
3534
assert(res.ok);

‎test/node/https.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
const assert = require('assert');
44

5-
const url = require('url');
65
const https = require('https');
76
const fs = require('fs');
87
const express = require('../support/express');
@@ -128,7 +127,7 @@ describe('https', () => {
128127
assert.ifError(error);
129128
assert(res.ok);
130129
assert.strictEqual('Safe and secure!', res.text);
131-
agent.get(url.parse(testEndpoint)).end((error, res) => {
130+
agent.get(new URL(testEndpoint)).end((error, res) => {
132131
assert.ifError(error);
133132
assert(res.ok);
134133
assert.strictEqual('Safe and secure!', res.text);
@@ -221,7 +220,7 @@ describe('https', () => {
221220
assert.ifError(error);
222221
assert(res.ok);
223222
assert.strictEqual('Safe and secure!', res.text);
224-
agent.get(url.parse(testEndpoint)).end((error, res) => {
223+
agent.get(new URL(testEndpoint)).end((error, res) => {
225224
assert.ifError(error);
226225
assert(res.ok);
227226
assert.strictEqual('Safe and secure!', res.text);
@@ -235,7 +234,7 @@ describe('https', () => {
235234
assert.ifError(error);
236235
assert(res.ok);
237236
assert.strictEqual('Safe and secure!', res.text);
238-
agent.get(url.parse(testEndpoint)).end((error, res) => {
237+
agent.get(new URL(testEndpoint)).end((error, res) => {
239238
assert.ifError(error);
240239
assert(res.ok);
241240
assert.strictEqual('Safe and secure!', res.text);

‎test/node/redirects.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
'use strict';
22

3-
const URL = require('url');
43
const assert = require('assert');
54
const getSetup = require('../support/setup');
65
const request = require('../support/client');
@@ -112,7 +111,7 @@ describe('request', () => {
112111

113112
it('should follow Location with IP override', () => {
114113
const redirects = [];
115-
const url = URL.parse(base);
114+
const url = new URL(base);
116115
return request
117116
.get(`http://redir.example.com:${url.port || '80'}${url.pathname}`)
118117
.connect({
@@ -130,7 +129,7 @@ describe('request', () => {
130129

131130
it('should follow Location with IP:port override', () => {
132131
const redirects = [];
133-
const url = URL.parse(base);
132+
const url = new URL(base);
134133
return request
135134
.get(`http://redir.example.com:9999${url.pathname}`)
136135
.connect({

‎test/use.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ describe('subclass', () => {
8888
NewRequest.prototype = Object.create(OriginalRequest.prototype);
8989
request.Request = NewRequest;
9090

91-
const request_ = request.agent().del('/');
91+
const request_ = request.agent().del('http://test.com/');
9292
assert(request_ instanceof NewRequest);
9393
assert(request_ instanceof OriginalRequest);
9494
});

0 commit comments

Comments
 (0)
Please sign in to comment.