Decide a ReferenceType's package name by looking for a package.json file #2017
+46
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current mechanism by which a
ReferenceType
figures out which package the type came from is by parsing the path and taking the first path element followingnode_modules
. This breaks when using pnpm which builds a symlink tree into a.pnpm
folder insidenode_modules
, so everyReferenceType
comes out.pnpm
. It also breaks if you're linking into a different project inside a monorepo, where there's nonode_modules
on the source path.The most immediate consequence of this is that plugins which resolve external links such as
typedoc-plugin-mdn-links
silently fail to do anything when using pnpm.This patch walks up the directory tree looking for a
package.json
file and grabbing the package name from itsname
key rather than trying to guess it from the file path, which solves the issues mentioned above.