MCPcopy
hub / github.com/npmx-dev/npmx.dev / handleApiError

Function handleApiError

server/utils/error-handler.ts:10–45  ·  view source on GitHub ↗
(error: unknown, fallback: ErrorOptions)

Source from the content-addressed store, hash-verified

8 * Handles H3 errors, Valibot, and fallbacks in that order
9 */
10export function handleApiError(error: unknown, fallback: ErrorOptions): never {
11 // If already a known Nuxt/H3 Error, apply fallback only when the error has a generic 500 status
12 if (isError(error)) {
13 if (error.statusCode === 500 && fallback.statusCode) {
14 error.statusCode = fallback.statusCode
15 }
16 if (error.statusMessage === 'Server Error' && fallback.statusMessage) {
17 error.statusMessage = fallback.statusMessage
18 }
19 throw error
20 }
21
22 if (error instanceof FetchError && error.statusCode) {
23 throw createError({
24 statusCode: error.statusCode,
25 statusMessage: error.statusMessage,
26 message: error.message,
27 })
28 }
29
30 // Handle Valibot validation errors
31 if (v.isValiError(error)) {
32 throw createError({
33 // TODO: throwing 404 rather than 400 as it's cacheable
34 statusCode: 404,
35 message: error.issues[0].message,
36 })
37 }
38
39 // Generic fallback
40 throw createError({
41 statusCode: fallback.statusCode ?? 502,
42 statusMessage: fallback.statusMessage,
43 message: fallback.message,
44 })
45}

Callers 15

[...pkg].get.tsFile · 0.90
atproto.get.tsFile · 0.90
[username].get.tsFile · 0.90
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
getMarkdownReadmeFunction · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85
[...pkg].get.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected