Skip to content

Commit a4c8278

Browse files
Flo0806danielroe
andauthored
fix: throw 404 statusCode instead of 400 (#418)
Co-authored-by: Daniel Roe <daniel@roe.dev>
1 parent 228de60 commit a4c8278

6 files changed

Lines changed: 16 additions & 8 deletions

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ export default defineCachedEventHandler(
1414
async event => {
1515
const pkgParamSegments = getRouterParam(event, 'pkg')?.split('/') ?? []
1616
if (pkgParamSegments.length === 0) {
17-
throw createError({ statusCode: 400, message: 'Package name is required.' })
17+
// TODO: throwing 404 rather than 400 as it's cacheable
18+
throw createError({ statusCode: 404, message: 'Package name is required.' })
1819
}
1920

2021
const { rawPackageName, rawVersion } = parsePackageParams(pkgParamSegments)

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ export default defineCachedEventHandler(
88
async event => {
99
const pkgParam = getRouterParam(event, 'pkg')
1010
if (!pkgParam) {
11-
throw createError({ statusCode: 400, message: 'Package name is required' })
11+
// TODO: throwing 404 rather than 400 as it's cacheable
12+
throw createError({ statusCode: 404, message: 'Package name is required' })
1213
}
1314

1415
const { packageName, version: requestedVersion } = parsePackageParam(pkgParam)
1516

1617
if (!packageName) {
17-
throw createError({ statusCode: 400, message: 'Package name is required' })
18+
// TODO: throwing 404 rather than 400 as it's cacheable
19+
throw createError({ statusCode: 404, message: 'Package name is required' })
1820
}
1921
assertValidPackageName(packageName)
2022

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ export default defineCachedEventHandler(
106106

107107
if (versionSegments.length < 2) {
108108
throw createError({
109-
statusCode: 400,
109+
// TODO: throwing 404 rather than 400 as it's cacheable
110+
statusCode: 404,
110111
message: ERROR_PACKAGE_VERSION_AND_FILE_FAILED,
111112
})
112113
}

server/api/registry/org/[org]/packages.get.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ const NPM_ORG_NAME_RE = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/i
88
function validateOrgName(name: string): void {
99
if (!name || name.length > 50 || !NPM_ORG_NAME_RE.test(name)) {
1010
throw createError({
11-
statusCode: 400,
11+
// TODO: throwing 404 rather than 400 as it's cacheable
12+
statusCode: 404,
1213
message: `Invalid org name: ${name}`,
1314
})
1415
}
@@ -20,7 +21,8 @@ export default defineCachedEventHandler(
2021

2122
if (!org) {
2223
throw createError({
23-
statusCode: 400,
24+
// TODO: throwing 404 rather than 400 as it's cacheable
25+
statusCode: 404,
2426
message: 'Org name is required',
2527
})
2628
}

server/utils/error-handler.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ export function handleApiError(error: unknown, fallback: ErrorOptions): never {
1616
// Handle Valibot validation errors
1717
if (v.isValiError(error)) {
1818
throw createError({
19-
statusCode: 400,
19+
// TODO: throwing 404 rather than 400 as it's cacheable
20+
statusCode: 404,
2021
message: error.issues[0].message,
2122
})
2223
}

shared/utils/npm.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export function assertValidPackageName(name: string): void {
1010
if (!result.validForNewPackages && !result.validForOldPackages) {
1111
const errors = [...(result.errors ?? []), ...(result.warnings ?? [])]
1212
throw createError({
13-
statusCode: 400,
13+
// TODO: throwing 404 rather than 400 as it's cacheable
14+
statusCode: 404,
1415
message: `Invalid package name: ${errors[0] ?? 'unknown error'}`,
1516
})
1617
}

0 commit comments

Comments
 (0)