Skip to content

Please un-deprecate url.resolve #37492

@evert

Description

@evert

What steps will reproduce the bug?

We use url.resolve a LOT. It's a great function that also inspired me to write a PHP version with 8 million downloads =)

I recently discovered that url.resolve() was marked as deprecated, and that users should use URL instead.

Aside from the fact that WhatWG URL is not a real RFC3986 uri, there's also a a very simple feature missing. We use url.resolve all the time to do things like this:

const newUrl = url.resolve(
  '/base'
  '?foo=bar'
);

The URL object does not let us work with relative urls:

> new URL('?foo=bar', '/bar');
Uncaught TypeError [ERR_INVALID_URL]: Invalid URL: /bar
    at onParseError (internal/url.js:259:9)
    at new URL (internal/url.js:335:5)
    at new URL (internal/url.js:332:22)
    at REPL11:1:1
    at Script.runInThisContext (vm.js:133:18)
    at REPLServer.defaultEval (repl.js:484:29)
    at bound (domain.js:413:15)
    at REPLServer.runBound [as eval] (domain.js:424:12)
    at REPLServer.onLine (repl.js:817:10)
    at REPLServer.emit (events.js:327:22) {
  input: '/bar',
  code: 'ERR_INVALID_URL'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions