Skip to content

Commit a028607

Browse files
committed
perf: parallelize @types and file tree fetches in analysis endpoint
1 parent 3e92bbb commit a028607

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

server/api/registry/analysis/[...pkg].get.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,19 @@ export default defineCachedEventHandler(
5858
// Only check for @types and files when the package doesn't ship its own types
5959
if (!hasBuiltInTypes(pkg)) {
6060
const typesPkgName = getTypesPackageName(packageName)
61-
typesPackage = await fetchTypesPackageInfo(typesPkgName)
62-
6361
const resolvedVersion = pkg.version ?? version ?? 'latest'
64-
try {
65-
const fileTreeResponse = await getPackageFileTree(packageName, resolvedVersion)
66-
files = flattenFileTree(fileTreeResponse.tree)
67-
} catch {
68-
// File tree fetch failed - skip implicit types check
62+
63+
// Fetch @types info and file tree in parallel — they are independent
64+
const [typesResult, fileTreeResult] = await Promise.allSettled([
65+
fetchTypesPackageInfo(typesPkgName),
66+
getPackageFileTree(packageName, resolvedVersion),
67+
])
68+
69+
if (typesResult.status === 'fulfilled') {
70+
typesPackage = typesResult.value
71+
}
72+
if (fileTreeResult.status === 'fulfilled') {
73+
files = flattenFileTree(fileTreeResult.value.tree)
6974
}
7075
}
7176

0 commit comments

Comments
 (0)