Skip to content

Commit 0299f87

Browse files
committed
fix: handle invalid urls and errors generating docs
1 parent c06b1b2 commit 0299f87

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,20 @@ export default defineCachedEventHandler(
2525
throw createError({ statusCode: 404, message: 'No latest version found' })
2626
}
2727

28-
const generated = await generateDocsWithDeno(packageName, version)
28+
let generated
29+
try {
30+
generated = await generateDocsWithDeno(packageName, version)
31+
} catch (error) {
32+
console.error(`Doc generation failed for ${packageName}@${version}:`, error)
33+
return {
34+
package: packageName,
35+
version,
36+
html: '',
37+
toc: null,
38+
status: 'error',
39+
message: 'Failed to generate documentation. Please try again later.',
40+
} satisfies DocsResponse
41+
}
2942

3043
if (!generated) {
3144
return {

server/utils/docs/client.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,12 @@ function createLoader(): (
7676
_cacheSetting?: string,
7777
_checksum?: string,
7878
) => {
79-
const url = new URL(specifier)
79+
let url: URL
80+
try {
81+
url = new URL(specifier)
82+
} catch {
83+
return undefined
84+
}
8085

8186
// Only handle http/https URLs
8287
if (url.protocol !== 'http:' && url.protocol !== 'https:') {

0 commit comments

Comments
 (0)