1 | var expressMiddleware = require('webpack-dev-middleware');
|
2 |
|
3 | function middleware(doIt, req, res) {
|
4 | var originalEnd = res.end;
|
5 |
|
6 | return function (done) {
|
7 | res.end = function () {
|
8 | originalEnd.apply(this, arguments);
|
9 | done(null, 0);
|
10 | };
|
11 | doIt(req, res, function () {
|
12 | done(null, 1);
|
13 | })
|
14 | }
|
15 | }
|
16 |
|
17 | module.exports = function (compiler, option) {
|
18 | var doIt = expressMiddleware(compiler, option);
|
19 | return function*(next) {
|
20 | var ctx = this;
|
21 | var req = this.req;
|
22 | var runNext = yield middleware(doIt, req, {
|
23 | end: function (content) {
|
24 | ctx.body = content;
|
25 | },
|
26 | setHeader: function () {
|
27 | ctx.set.apply(ctx, arguments);
|
28 | }
|
29 | });
|
30 | if (runNext) {
|
31 | yield *next;
|
32 | }
|
33 | };
|
34 | };
|