1 | var connect = require('connect');
|
2 | var async = require('async');
|
3 | var path = require('path');
|
4 | var config = require(__dirname + '/config.json');
|
5 | var _ = require('underscore');
|
6 |
|
7 | var folderMount = function folderMount(point) {
|
8 | return connect.static(path.resolve(point));
|
9 | };
|
10 |
|
11 | var folderDir = function folderDir(point){
|
12 | return connect.directory(path.resolve(point));
|
13 | }
|
14 |
|
15 |
|
16 | module.exports = {
|
17 | middleware: function(buildDir, opts){
|
18 | options = {
|
19 | livereload : true,
|
20 | serveStatic : true,
|
21 | serveDir : true,
|
22 | middleware: []
|
23 | }
|
24 | var livereload = require('connect-livereload')({
|
25 | port : config.livereloadPort
|
26 | });
|
27 | var serveStatic = folderMount(buildDir);
|
28 | var serveDir = folderDir(buildDir);
|
29 |
|
30 | return function(req, res, next){
|
31 | var middlewares = [];
|
32 | if(options.livereload) middlewares.push(async.apply(livereload, req, res));
|
33 | if(options.serveStatic) middlewares.push(async.apply(serveStatic, req, res));
|
34 | if(options.serveDir) middlewares.push(async.apply(serveDir, req, res));
|
35 | if(options.middleware) middlewares = middlewares.concat(options.middleware);
|
36 | async.series(middlewares,next);
|
37 | }
|
38 | }
|
39 | } |
\ | No newline at end of file |