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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions