File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11<script setup lang="ts">
22import type { NpmVersionDist , PackumentVersion , ReadmeResponse } from ' #shared/types'
33import type { JsrPackageInfo } from ' #shared/types/jsr'
4- import { assertValidPackageName } from ' #shared/utils/npm'
54import { onKeyStroke } from ' @vueuse/core'
65import { joinURL } from ' ufo'
76import { areUrlsEquivalent } from ' #shared/utils/url'
7+ import validatePackageName from ' validate-npm-package-name'
88
99definePageMeta ({
1010 name: ' package' ,
@@ -17,8 +17,18 @@ const isMounted = useMounted()
1717
1818const { packageName, requestedVersion, orgName } = usePackageRoute ()
1919
20+ // Validate package name on server and show proper error page if invalid
2021if (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
2434const { data : downloads } = usePackageDownloads (packageName , ' last-week' )
You can’t perform that action at this time.
0 commit comments