@deprecated functions are not crossed out if imported via a third package that re-exports the affected function
Hello everybody!
I noticed an issue with IntelliJ IDEA Ultimate's and WebStorm's (and probably others') Inspections. I have the following scenario:
- A monorepo (with npm workspaces) and multiple packages, all written in TypeScript.
- One package (let's call it 'lib') contains a function marked as @deprecated in JSDoc.
- Another package (let's call it 'wrapper') re-exports this function (via `export { deprecatedFunction } from '@my-lib/lib';`)
- And another package (let's call it 'main') consumes this function, but it does not import it from 'lib' but from 'wrapper'.
- This scenario also works if the deprecated function is not implemented in 'lib' but by a third-party library imported via npm.
Now, when I open the file where the function is being used in 'main', it is not crossed out in the editor. However, importing it directly from 'lib' works fine.
Here is a screenshot of how it looks like:
I have created a minimal repository to reproduce this issue: https://github.com/abraxas-von-abrasax/depr-test
Currently, it is really a pain as I'm working with a more extensive monorepo setup where multiple packages provide an interface for consuming their own but also other third-party classes and functions and it's not immediately obvious if a function is marked as deprecated (for instance by the package maintainer).
I really appreciate your help and thank you in advance!
Nenad Petkovic
Please sign in to leave a comment.
sorry, but @depr-test/lib package is missing in your repo
Ups, I'm sorry. I included it now.
Thanks, reproduced; submitted to developers as https://youtrack.jetbrains.com/issue/WEB-56718/Deprecated-highlighting-doesnt-work-for-imported-modules-in-monorepo, please follow it for updates
Thank you! :)