Skip to content

Commit 49545b4

Browse files
committed
fix: handle invalid names more graceful
1 parent 6361d3c commit 49545b4

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

app/pages/[...package].vue

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<script setup lang="ts">
22
import type { NpmVersionDist, PackumentVersion, ReadmeResponse } from '#shared/types'
33
import type { JsrPackageInfo } from '#shared/types/jsr'
4-
import { assertValidPackageName } from '#shared/utils/npm'
54
import { onKeyStroke } from '@vueuse/core'
65
import { joinURL } from 'ufo'
76
import { areUrlsEquivalent } from '#shared/utils/url'
7+
import validatePackageName from 'validate-npm-package-name'
88
99
definePageMeta({
1010
name: 'package',
@@ -17,8 +17,18 @@ const isMounted = useMounted()
1717
1818
const { packageName, requestedVersion, orgName } = usePackageRoute()
1919
20+
// Validate package name on server and show proper error page if invalid
2021
if (import.meta.server) {
21-
assertValidPackageName(packageName.value)
22+
const validation = validatePackageName(packageName.value)
23+
if (!validation.validForNewPackages && !validation.validForOldPackages) {
24+
const errorMessage =
25+
validation.errors?.[0] ?? validation.warnings?.[0] ?? 'Invalid package name'
26+
showError({
27+
statusCode: 400,
28+
statusMessage: 'Invalid Package Name',
29+
message: errorMessage,
30+
})
31+
}
2232
}
2333
2434
const { data: downloads } = usePackageDownloads(packageName, 'last-week')

0 commit comments

Comments
 (0)