Есть ли способ добавить prehandler для сервера apollo, чтобы из prehandler я мог выдать ошибку, которую apollo поймает и отправит как ответ в формате apollo? Или, может быть, есть помощник для форматирования ошибки для ответа?
Как мне это сделать с помощью специального помощника getGqlErr, который получит существующую ошибку или сгенерирует ее:
onst apolloHandler = apolloServer.createHandler({ path: '/api/graphql' })
const apiHandler = async (req: NextApiRequest, res: NextApiResponse): Promise<void> => {
try {
await prehandler({ req, res } as Ctx)
} catch (e) {
res.setHeader('Content-Type', 'application/json')
res.end(
JSON.stringify({
errors: [
{
message: 'Prehandler Error',
extensions: {
langsMsg: getGqlErr(e),
code: 'prehandler custom error',
},
},
],
})
)
return
}
apolloHandler(req, res)
}