Skip to content

Commit 5723de5

Browse files
j-piaseckifacebook-github-bot
authored andcommitted
Explicitly cover more node types in versionExportedApis (#52310)
Summary: Pull Request resolved: #52310 Changelog: [Internal] Reviewed By: huntie Differential Revision: D77427734 fbshipit-source-id: d9b8caee508166b2d47d5a160b0e326c4cd7783e
1 parent 09ef774 commit 5723de5

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

scripts/build-types/transforms/typescript/versionExportedApis.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,12 +307,38 @@ function createVersionExportedApis(
307307
}
308308
}
309309
310+
// Handle export specifiers which can be present in namespaces
311+
if (t.isExportSpecifier(node)) {
312+
if (node.local && node.local.name) {
313+
refs.add(node.local.name);
314+
}
315+
}
316+
310317
// Handle indexed access types (`T['key']`)
311318
if (t.isTSIndexedAccessType(node)) {
312319
getTypeReferencesForNode(node.objectType, refs);
313320
getTypeReferencesForNode(node.indexType, refs);
314321
}
315322
323+
// Handle union types (`T | U`)
324+
if (t.isTSUnionType(node)) {
325+
for (const member of node.types) {
326+
getTypeReferencesForNode(member, refs);
327+
}
328+
}
329+
330+
// Handle intersection types (`T & U`)
331+
if (t.isTSIntersectionType(node)) {
332+
for (const member of node.types) {
333+
getTypeReferencesForNode(member, refs);
334+
}
335+
}
336+
337+
// Handle type operators (`keyof T`)
338+
if (t.isTSTypeOperator(node)) {
339+
getTypeReferencesForNode(node.typeAnnotation, refs);
340+
}
341+
316342
// Handle conditional types (`T extends U ? X : Y`)
317343
if (t.isTSConditionalType(node)) {
318344
getTypeReferencesForNode(node.checkType, refs);

0 commit comments

Comments
 (0)