fix: replace deprecated `url.parse()` with `new URL()` · forwardemail/superagent@8ead63f

8 files changed

lines changed

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,

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:

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

});

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

});

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);

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);

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({

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

});