Skip to content

Commit

Permalink
Normalized paths for pnpm
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshuaKGoldberg committed Mar 24, 2024
1 parent a2d90bf commit 1e989a7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ const expressionRefersToOriginalType = (
// This can go wrong easily: e.g. with multiple type arguments that have intermixed usages
if (
isTypeArgumentsType(expressionNodeType) &&
expressionNodeType.typeArguments?.includes(originalType)
expressionNodeType.typeArguments.includes(originalType)
) {
return true;
}
Expand Down
28 changes: 23 additions & 5 deletions src/shared/references.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,7 @@ const findRelevantNodeReferences = (
node: ts.Node,
): ts.ReferenceEntry[] | undefined => {
// Find all locations the node is referenced
const nodeSourceFile = node.getSourceFile();
const referencedSymbols = services.languageService.findReferences(
nodeSourceFile.fileName,
node.getStart(nodeSourceFile),
);
const referencedSymbols = findReferencesForNormalizedFileName(services, node);
if (referencedSymbols === undefined) {
return undefined;
}
Expand All @@ -104,3 +100,25 @@ const findRelevantNodeReferences = (

return Array.from(references);
};

function findReferencesForNormalizedFileName(
services: LanguageServices,
node: ts.Node,
) {
const nodeSourceFile = node.getSourceFile();
try {
return services.languageService.findReferences(
// TypeScript stores pnpm-resolved node_modules under non-pnpm paths.
nodeSourceFile.fileName.replace(
/node_modules\/\.pnpm\/.+\/node_modules/,
"node_modules",
),
node.getStart(nodeSourceFile),
);
} catch {
return services.languageService.findReferences(
nodeSourceFile.fileName,
node.getStart(nodeSourceFile),
);
}
}

0 comments on commit 1e989a7

Please sign in to comment.