Skip to content

Commit 991fcff

Browse files
committed
feat: handle returned errors (closes #28)
1 parent b10b496 commit 991fcff

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/app.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ export function createHandle (stack: Stack): PHandle {
121121
} else if (type === 'object' && val !== undefined) {
122122
if (val.buffer) {
123123
return send(res, val)
124+
} else if (val instanceof Error) {
125+
throw createError(val)
124126
} else {
125127
return send(res, JSON.stringify(val, null, 2), MIMES.json)
126128
}

test/error.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,18 @@ describe('error', () => {
8282
const res = await request.get('/')
8383
expect(res.status).toBe(500)
8484
})
85+
86+
it('can handle returned Error', async () => {
87+
app.use('/', () => new Error('failed'), { promisify: true })
88+
89+
const res = await request.get('/')
90+
expect(res.status).toBe(500)
91+
})
92+
93+
it('can handle returned H3Error', async () => {
94+
app.use('/', () => createError({ statusCode: 501 }), { promisify: true })
95+
96+
const res = await request.get('/')
97+
expect(res.status).toBe(501)
98+
})
8599
})

0 commit comments

Comments
 (0)