@@ -6,9 +6,26 @@ const requireFromString = require('require-from-string');
6
6
const MultiCompiler = require ( 'webpack/lib/MultiCompiler' ) ;
7
7
const sourceMapSupport = require ( 'source-map-support' ) ;
8
8
9
+ const createConnectHandler = ( error , serverRenderer ) => ( req , res , next ) => {
10
+ debug ( `Receive request ${ req . url } ` ) ;
11
+ if ( error ) {
12
+ return next ( error ) ;
13
+ }
14
+ serverRenderer ( req , res , next ) ;
15
+ } ;
16
+
17
+ const createKoaHandler = ( error , serverRenderer ) => ( ctx , next ) => {
18
+ debug ( `Receive request ${ ctx . url } ` ) ;
19
+ if ( error ) {
20
+ ctx . throw ( error ) ;
21
+ }
22
+ return serverRenderer ( ctx , next ) ;
23
+ } ;
24
+
9
25
const DEFAULTS = {
10
26
chunkName : 'main' ,
11
- serverRendererOptions : { }
27
+ serverRendererOptions : { } ,
28
+ createHandler : createConnectHandler ,
12
29
} ;
13
30
14
31
function interopRequireDefault ( obj ) {
@@ -129,13 +146,11 @@ function webpackHotServerMiddleware(multiCompiler, options) {
129
146
}
130
147
} ) ;
131
148
132
- return ( req , res , next ) => {
133
- debug ( `Receive request ${ req . url } ` ) ;
134
- if ( error ) {
135
- return next ( error ) ;
136
- }
137
- serverRenderer ( req , res , next ) ;
149
+ return function ( ) {
150
+ return options . createHandler ( error , serverRenderer ) . apply ( null , arguments ) ;
138
151
} ;
139
152
}
140
153
154
+ Object . assign ( webpackHotServerMiddleware , { createConnectHandler, createKoaHandler } ) ;
155
+
141
156
module . exports = webpackHotServerMiddleware ;
0 commit comments