mirror of
https://github.com/honojs/hono.git
synced 2024-12-01 10:51:01 +00:00
feat: show stack-trace at graphql-server middleware (#161)
This commit is contained in:
parent
c9053ebd79
commit
d4eb8071db
@ -8,6 +8,9 @@ import {
|
|||||||
import { Hono } from '@/hono'
|
import { Hono } from '@/hono'
|
||||||
import { errorMessages, graphqlServer } from '@/middleware/graphql-server'
|
import { errorMessages, graphqlServer } from '@/middleware/graphql-server'
|
||||||
|
|
||||||
|
// Do not show `console.error` messages
|
||||||
|
jest.spyOn(console, 'error').mockImplementation()
|
||||||
|
|
||||||
describe('errorMessages', () => {
|
describe('errorMessages', () => {
|
||||||
const messages = errorMessages(['message a', 'message b'])
|
const messages = errorMessages(['message a', 'message b'])
|
||||||
expect(messages).toEqual({
|
expect(messages).toEqual({
|
||||||
|
@ -55,6 +55,7 @@ export const graphqlServer = (options: Options) => {
|
|||||||
params = await getGraphQLParams(c.req)
|
params = await getGraphQLParams(c.req)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e instanceof Error) {
|
if (e instanceof Error) {
|
||||||
|
console.error(`${e.stack || e.message}`)
|
||||||
c.res = c.json(errorMessages([e.message], [e]), 400)
|
c.res = c.json(errorMessages([e.message], [e]), 400)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@ -83,6 +84,7 @@ export const graphqlServer = (options: Options) => {
|
|||||||
} catch (syntaxError: unknown) {
|
} catch (syntaxError: unknown) {
|
||||||
// Return 400: Bad Request if any syntax errors errors exist.
|
// Return 400: Bad Request if any syntax errors errors exist.
|
||||||
if (syntaxError instanceof Error) {
|
if (syntaxError instanceof Error) {
|
||||||
|
console.error(`${syntaxError.stack || syntaxError.message}`)
|
||||||
const e = new GraphQLError(syntaxError.message, {
|
const e = new GraphQLError(syntaxError.message, {
|
||||||
originalError: syntaxError,
|
originalError: syntaxError,
|
||||||
})
|
})
|
||||||
@ -135,6 +137,7 @@ export const graphqlServer = (options: Options) => {
|
|||||||
})
|
})
|
||||||
} catch (contextError: unknown) {
|
} catch (contextError: unknown) {
|
||||||
if (contextError instanceof Error) {
|
if (contextError instanceof Error) {
|
||||||
|
console.error(`${contextError.stack || contextError.message}`)
|
||||||
const e = new GraphQLError(contextError.message, {
|
const e = new GraphQLError(contextError.message, {
|
||||||
originalError: contextError,
|
originalError: contextError,
|
||||||
nodes: documentAST,
|
nodes: documentAST,
|
||||||
@ -237,4 +240,4 @@ export const errorMessages = (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const graphiQLResponse = () => {}
|
// export const graphiQLResponse = () => {}
|
||||||
|
@ -8,6 +8,9 @@ export async function parseBody(req: Request): Promise<{ [param: string]: unknow
|
|||||||
try {
|
try {
|
||||||
return await req.json()
|
return await req.json()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
if (e instanceof Error) {
|
||||||
|
console.error(`${e.stack || e.message}`)
|
||||||
|
}
|
||||||
throw Error(`POST body sent invalid JSON: ${e}`)
|
throw Error(`POST body sent invalid JSON: ${e}`)
|
||||||
}
|
}
|
||||||
case 'application/x-www-form-urlencoded':
|
case 'application/x-www-form-urlencoded':
|
||||||
|
Loading…
Reference in New Issue
Block a user