Skip to content

Commit 740d59e

Browse files
committed
fix: fix parsing of relative URLs
2.0.9 introduced a new URL parser based on WHATWG URL API. However, if the request.url is relative (which is the case), parsing fails: nodejs/node#12682
1 parent 4090bae commit 740d59e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

lib/url-parser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const Request = require('./request');
1818
*/
1919
function httpToFloraRequest(httpRequest) {
2020
return new Promise((resolve, reject) => {
21-
const parsedUrl = new URL(httpRequest.url);
21+
const parsedUrl = new URL(httpRequest.url, 'http://localhost');
2222
const matches = parsedUrl.pathname.match(/^\/(.+)\/([^/.]*)(?:\.([a-z]+))?$/);
2323
if (!matches) {
2424
resolve(null);

test/url-parser.spec.js

+10
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ describe('HTTP request parsing', () => {
4747
.catch(done);
4848
});
4949

50+
it('should parse relative urls', (done) => {
51+
httpRequest.url = '/';
52+
parseRequest(httpRequest)
53+
.then((request) => {
54+
expect(request).to.be.null;
55+
done();
56+
})
57+
.catch(done);
58+
});
59+
5060
describe('flat resources', () => {
5161
it('should parse resource', (done) => {
5262
httpRequest.url = 'http://api.example.com/user/';

0 commit comments

Comments
 (0)