Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.2k
esm: fix emit deprecation on legacy main resolve#48664
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
Uh oh!
There was an error while loading. Please reload this page.
Conversation
nodejs-github-bot commented Jul 5, 2023
Review requested:
|
ljharb left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
probably should add a test case of an ESM "main" that omits the leading ./?
Uh oh!
There was an error while loading. Please reload this page.
nodejs-github-bot commented Jul 5, 2023
nodejs-github-bot commented Jul 5, 2023
nodejs-github-bot commented Jul 6, 2023
H4ad commented Jul 6, 2023 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
I think this change can be simplified to: /** * Legacy CommonJS main resolution: * 1. let M = pkg_url + (json main field) * 2. TRY(M, M.js, M.json, M.node) * 3. TRY(M/index.js, M/index.json, M/index.node) * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node) * 5. NOT_FOUND * @param{URL} packageJSONUrl * @param{PackageConfig} packageConfig * @param{string | URL | undefined} base * @returns{URL} */ function legacyMainResolve(packageJSONUrl, packageConfig, base){const packageJsonUrlString = packageJSONUrl.href; if (typeof packageJsonUrlString !== 'string'){throw new ERR_INVALID_ARG_TYPE('packageJSONUrl', ['URL'], packageJSONUrl)} const baseStringified = isURL(base) ? base.href : base; const resolvedOption = FSLegacyMainResolve(packageJsonUrlString, packageConfig.main, baseStringified); const baseUrl = resolvedOption <= legacyMainResolveExtensionsIndexes.kResolvedByMainIndexNode ? `./${packageConfig.main}` : ''; const resolvedUrl = new URL(baseUrl + legacyMainResolveExtensions[resolvedOption], packageJSONUrl); + if (resolvedOption !== legacyMainResolveExtensionsIndexes.kResolvedByMain) emitLegacyIndexDeprecation(resolvedUrl, packageJSONUrl, base, packageConfig.main); return resolvedUrl}The deprecation should be emitted for every case except from |
Uh oh!
There was an error while loading. Please reload this page.
nodejs-github-bot commented Jul 11, 2023
Landed in ffb1929 |
PR-URL: #48664 Refs: #48325 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]>
PR-URL: nodejs#48664 Refs: nodejs#48325 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]>
PR-URL: nodejs#48664 Refs: nodejs#48325 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]>
PR-URL: #48664 Refs: #48325 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]>
PR-URL: #48664 Refs: #48325 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]>
PR-URL: #48664 Refs: #48325 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]>
PR-URL: nodejs#48664 Refs: nodejs#48325 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Backport-PR-URL: nodejs#48664
#48325 introduced a bug where the deprecation is thrown for every resolve. This PR fixes that.
Refs: #48325