Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

url: runtime deprecate legacy api #34914

Closed
wants to merge 1 commit into from

Conversation

jasnell
Copy link
Member

@jasnell jasnell commented Aug 24, 2020

This might be a bit controversial. The legacy url.parse()/url.format()/url.resolve() API has been runtime deprecated for a few years now and developers really should be using the URL object instead. It's time we elevated to a runtime deprecation to more actively discourage use of the old API.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • documentation is changed or added
  • commit message follows commit guidelines

Signed-off-by: James M Snell <jasnell@gmail.com>
@nodejs-github-bot nodejs-github-bot added the url Issues and PRs related to the legacy built-in url module. label Aug 24, 2020
@jasnell jasnell added deprecations Issues and PRs related to deprecations. semver-major PRs that contain breaking changes and should be released in the next major version. request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2020
@jasnell jasnell changed the title url: runtime deprecation legacy api url: runtime deprecate legacy api Aug 24, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 24, 2020
@nodejs-github-bot
Copy link
Collaborator

@lpinca
Copy link
Member

lpinca commented Aug 25, 2020

I think this will create a lot of unnecessary "panic" in user land.

@devsnek
Copy link
Member

devsnek commented Aug 25, 2020

I'm a fan of this but this is probably going to warn on every bit of code ever written, we might need to filter out node_modules like the buffer runtime deprecation.

@richardlau richardlau added the notable-change PRs with changes that should be highlighted in changelogs. label Aug 25, 2020
@lpinca
Copy link
Member

lpinca commented Aug 25, 2020

Another problem is that it is not trivial to migrate to URL. Some examples:

  • I have legacy code that expects uri.query to be a plain object as returned by const uri = url.parse(string, true). To do the same with URL is it necessary to convert url.searchParams (a URLSearchParams instance) to a plain object or parse url.search again which results in a significant drop of performance.
  • There is no replacement url.format() (WhatWG URL provides no suitable replacement for url.format() #25099).

@jasnell
Copy link
Member Author

jasnell commented Aug 25, 2020

Ok. Will close this for now and revisit later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deprecations Issues and PRs related to deprecations. notable-change PRs with changes that should be highlighted in changelogs. semver-major PRs that contain breaking changes and should be released in the next major version. url Issues and PRs related to the legacy built-in url module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants