Skip to content

Commit e94a3c6

Browse files
authored
Merge pull request #42 from vripoche/feat-on-server-error-hook
feat: new onServerError hook triggered on server errors
2 parents 8baab4b + 18857db commit e94a3c6

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

packages/smooth/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -898,6 +898,7 @@ The `modules` option on `"preset-env"` should be kept to `false` otherwise webpa
898898
- onCreateServer
899899
- onCreateApolloServerConfig
900900
- onRenderBody
901+
- onServerError
901902
- onCreateBabelConfig
902903
- onCreateWebpackConfig
903904
- getContents

packages/smooth/src/plugin/nodeHooks/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ export * from './onCreateBabelConfig'
55
export * from './onCreateServer'
66
export * from './onCreateWebpackConfig'
77
export * from './onRenderBody'
8+
export * from './onServerError'
89
export * from './wrapRootElement'
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { applyHook } from '../node'
2+
3+
export const onServerError = config => ({ error, req }) =>
4+
applyHook(config, 'onServerError', { error, req })

packages/smooth/src/server/expressApp.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import cors from 'cors'
55
import { ApolloServer } from 'apollo-server-express'
66
import { getContext } from './apollo'
77
import ssr from './ssr'
8-
import { onCreateServer, onCreateApolloServerConfig } from '../plugin/nodeHooks'
8+
import { onCreateServer, onServerError, onCreateApolloServerConfig } from '../plugin/nodeHooks'
99

1010
export function createExpressApp({
1111
dev,
@@ -66,6 +66,11 @@ export function createExpressApp({
6666
apolloServer.applyMiddleware({ app })
6767

6868
app.use(ssr({ config, schema, fragmentTypes }))
69+
70+
app.use((error, req, res, next) => {
71+
onServerError(config)({ error, req })
72+
next(error)
73+
})
6974

7075
if (config.env === 'development') {
7176
app.use((error, req, res, next) => {

0 commit comments

Comments
 (0)