Skip to content

Commit 4229ce0

Browse files
authored
fix!: remove default statusMessage from errors (#195)
1 parent cb3bafe commit 4229ce0

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

playground/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import { listen } from 'listhen'
2-
import { createApp, createRouter, eventHandler, toNodeListener, parseCookies } from '../src'
2+
import { createApp, createRouter, eventHandler, toNodeListener, parseCookies, createError } from '../src'
33

44
const app = createApp({ debug: true })
55
const router = createRouter()
66
.get('/', eventHandler(() => 'Hello World!'))
7+
.get('/error/:code', eventHandler((event) => {
8+
throw createError({ statusCode: parseInt(event.context.params.code) })
9+
}))
710
.get('/hello/:name', eventHandler((event) => {
811
return `Hello ${parseCookies(event)}!`
912
}))

src/error.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class H3Error extends Error {
1818
statusCode: number = 500
1919
fatal: boolean = false
2020
unhandled: boolean = false
21-
statusMessage: string = 'Internal Server Error'
21+
statusMessage?: string = undefined
2222
data?: any
2323
}
2424

@@ -84,8 +84,13 @@ export function sendError (event: H3Event, error: Error | H3Error, debug?: boole
8484
}
8585

8686
if (event.res.writableEnded) { return }
87-
event.res.statusCode = h3Error.statusCode
88-
event.res.statusMessage = h3Error.statusMessage
87+
const _code = parseInt(h3Error.statusCode as unknown as string)
88+
if (_code) {
89+
event.res.statusCode = _code
90+
}
91+
if (h3Error.statusMessage) {
92+
event.res.statusMessage = h3Error.statusMessage
93+
}
8994
event.res.setHeader('Content-Type', MIMES.json)
9095
event.res.end(JSON.stringify(responseBody, null, 2))
9196
}

test/error.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ describe('error', () => {
3939

4040
expect(result.status).toBe(500)
4141
expect(JSON.parse(result.text)).toMatchObject({
42-
statusCode: 500,
43-
statusMessage: 'Internal Server Error'
42+
statusCode: 500
4443
})
4544
})
4645

0 commit comments

Comments
 (0)