-
-
Notifications
You must be signed in to change notification settings - Fork 1k
chore: avoid deprecation warning #1793
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
Conversation
|
Uhm, sry... we can't where as node-fetch@2.x still has backwards compatible all the way back to NodeJS v4 node-fetch@v2.x is currently locked to only receiving bug/security fixes. Your option is either to update to node-fetch@3 or using the new built-in fetch from NodeJS themself now that it's shipped with NodeJS v18+ |
@jimmywarting I don't follow this logic. nodejs below v18 is out of maintenance. So, it clearly falls under "security fixes" to update |
|
@rlindner81, I agree. I guess I'm not the only one who's intimidated by the Node.js 22 warning: |
The generated client on the release-1.x branch relies on the node-fetch@2.x module, which depends on whatwg-url@5.0.0, which uses the Node core punycode module. Node's punycode module was runtime deprecated v21, which causes this module to print a deprecation warning when used on newer versions of Node. whatwg-url@9.0.0 stopped using punycode directly, but continued to use it indirectly via its own tr46 dependency. The problematic use of punycode was finally removed in whatwg-url@12.0.1. node-fetch will not update its 2.x release line to incorporate the fix due to backwards compatibility. node-fetch@2.x claims backwards compatibility to Node v4, but the fixed version of whatwg-url only claims compatibility back to Node 12. For this reason, the node-fetch project has stated that they will not address this issue. For reference, Node v4 went EOL in 2018, and Node v12 when EOL in early 2022. Node 18 is currently the oldest supported version, and Node v23 was released this week. Ideally, the generator will move to a newer version of node-fetch, native fetch, or even the undici module that implements fetch in core. Until that happens, this module can override whatwg-url and silence the deprecation warning. It's also worth noting that this punycode deprecation is not the same one as the punycode deprecation on the master branch. This change has been tested locally on v18.0.0. Refs: nodejs/node#47202 Refs: node-fetch/node-fetch#1793
The generated client on the release-1.x branch relies on the node-fetch@2.x module, which depends on whatwg-url@5.0.0, which uses the Node core punycode module. Node's punycode module was runtime deprecated in v21, which causes this module to print a deprecation warning when used on newer versions of Node. whatwg-url@9.0.0 stopped using punycode directly, but continued to use it indirectly via its own tr46 dependency. The problematic use of punycode was finally removed in whatwg-url@12.0.1. node-fetch@2.x claims backwards compatibility to Node v4, but the fixed version of whatwg-url only claims compatibility back to Node 12. For this reason, the node-fetch project has stated that they will not address this issue. For reference, Node v4 went EOL in 2018, and Node v12 when EOL in early 2022. Node 18 is currently the oldest supported version, and Node v23 was released this week. Ideally, the generator will move to a newer version of node-fetch, native fetch, or even the undici module that implements fetch in core. Until that happens, this module can override whatwg-url and silence the deprecation warning. It's also worth noting that this punycode deprecation is not the same one as the punycode deprecation on the master branch. This change has been tested locally on v18.0.0. Refs: nodejs/node#47202 Refs: node-fetch/node-fetch#1793
|
punycode was removed from whatwg-url in v9, which is the version that dropped support for Node.js 10: https://github.com/jsdom/whatwg-url/releases/tag/v9.0.0 This means that node-fetch v2 could safely be updated to some version of whatwg-url between v9 and v12 (v13 being the one removing support for Node.js 14) In the mean time, adding an override in my package.json (as many others have done already) does the job. |
Purpose
NodeJS 21 warns that the
punycodeis deprecated. Thewhatwg-url@5.xdependent bynode-fetchdepends on the deprecatedpunycode, therefore, it is better to upgrade thewhatwg-urlto the latest onejsdom/whatwg-url#261
To reproduce it, try the below piece example
Changes
Upgrade
whatwg-urlto the latest