@@ -23,41 +23,42 @@ const getClient = (compiler, options) => {
2323 } ) ;
2424} ;
2525
26- const getMiddleware = ( devWare , options ) => async ( context , next ) => {
26+ const getMiddleware = ( devWare , options ) => ( context , next ) =>
2727 // wait for webpack-dev-middleware to signal that the build is ready
28- await new Promise ( ( resolve , reject ) => {
29- const { compiler } = options ;
28+ Promise . all ( [
29+ new Promise ( ( resolve , reject ) => {
30+ const { compiler } = options ;
3031
31- devWare . waitUntilValid ( ( ) => {
32- resolve ( true ) ;
33- } ) ;
34-
35- for ( const comp of [ ] . concat ( compiler . compilers || compiler ) ) {
36- comp . hooks . failed . tap ( 'KoaWebpack' , ( error ) => {
37- reject ( error ) ;
32+ devWare . waitUntilValid ( ( ) => {
33+ resolve ( true ) ;
3834 } ) ;
39- }
40- } ) ;
4135
42- // tell webpack-dev-middleware to handle the request
43- await new Promise ( ( resolve ) => {
44- devWare (
45- context . req ,
46- {
47- end : ( content ) => {
48- // eslint-disable-next-line no-param-reassign
49- context . body = content ;
50- resolve ( ) ;
36+ for ( const comp of [ ] . concat ( compiler . compilers || compiler ) ) {
37+ comp . hooks . failed . tap ( 'KoaWebpack' , ( error ) => {
38+ reject ( error ) ;
39+ } ) ;
40+ }
41+ } ) ,
42+
43+ // tell webpack-dev-middleware to handle the request
44+ new Promise ( ( resolve ) => {
45+ devWare (
46+ context . req ,
47+ {
48+ end : ( content ) => {
49+ // eslint-disable-next-line no-param-reassign
50+ context . body = content ;
51+ resolve ( ) ;
52+ } ,
53+ setHeader : context . set . bind ( context ) ,
54+ locals : context . state ,
5155 } ,
52- setHeader : context . set . bind ( context ) ,
53- locals : context . state ,
54- } ,
55- ( ) => resolve ( next ( ) )
56- ) ;
57- } ) ;
58- } ;
56+ ( ) => resolve ( next ( ) )
57+ ) ;
58+ } ) ,
59+ ] ) ;
5960
60- module . exports = async ( opts ) => {
61+ module . exports = ( opts ) => {
6162 const options = Object . assign ( { } , defaults , opts ) ;
6263
6364 validate ( { name : 'koa-webpack' , schema, target : options } ) ;
@@ -85,17 +86,18 @@ module.exports = async (opts) => {
8586 options . devMiddleware . publicPath = publicPath ;
8687 }
8788
88- const client = await getClient ( compiler , options ) ;
89- const devWare = devMiddleware ( compiler , options . devMiddleware ) ;
90- const middleware = getMiddleware ( devWare , options ) ;
91- const close = ( callback ) => {
92- const next = client ? ( ) => client . close ( callback ) : callback ;
93- devWare . close ( next ) ;
94- } ;
95-
96- return Object . assign ( middleware , {
97- hotClient : client ,
98- devMiddleware : devWare ,
99- close,
89+ return getClient ( compiler , options ) . then ( ( client ) => {
90+ const devWare = devMiddleware ( compiler , options . devMiddleware ) ;
91+ const middleware = getMiddleware ( devWare , options ) ;
92+ const close = ( callback ) => {
93+ const next = client ? ( ) => client . close ( callback ) : callback ;
94+ devWare . close ( next ) ;
95+ } ;
96+
97+ return Object . assign ( middleware , {
98+ hotClient : client ,
99+ devMiddleware : devWare ,
100+ close,
101+ } ) ;
100102 } ) ;
101103} ;
0 commit comments