You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.3 KiB
75 lines
2.3 KiB
"use strict"; |
|
var connect = require("connect"); |
|
var serverUtils = require("./utils.js"); |
|
var resolve = require("path").resolve; |
|
var utils = require("../utils.js"); |
|
var serveStatic = require("serve-static"); |
|
var serveIndex = require("serve-index"); |
|
/** |
|
* @param {BrowserSync} bs |
|
* @returns {*} |
|
*/ |
|
module.exports = function createServer(bs) { |
|
var options = bs.options; |
|
var server = options.get("server"); |
|
var basedirs = utils.arrayify(server.get("baseDir")); |
|
var serveStaticOptions = server.get("serveStaticOptions").toJS(); // passed to 3rd party |
|
var _serveStatic = 0; |
|
var _routes = 0; |
|
bs.options = bs.options |
|
/** |
|
* Add directory Middleware if given in server.directory |
|
*/ |
|
.update("middleware", function (mw) { |
|
if (!server.get("directory")) { |
|
return mw; |
|
} |
|
return mw.concat({ |
|
route: "", |
|
handle: serveIndex(resolve(basedirs[0]), { |
|
icons: true, |
|
view: "details" |
|
}), |
|
id: "Browsersync Server Directory Middleware" |
|
}); |
|
}) |
|
/** |
|
* Add middleware for server.baseDir Option |
|
*/ |
|
.update("middleware", function (mw) { |
|
return mw.concat(basedirs.map(function (root) { |
|
return { |
|
route: "", |
|
id: "Browsersync Server ServeStatic Middleware - " + |
|
_serveStatic++, |
|
handle: serveStatic(resolve(root), serveStaticOptions) |
|
}; |
|
})); |
|
}) |
|
/** |
|
* Add middleware for server.routes |
|
*/ |
|
.update("middleware", function (mw) { |
|
if (!server.get("routes")) { |
|
return mw; |
|
} |
|
return mw.concat(server.get("routes").map(function (root, urlPath) { |
|
// strip trailing slash |
|
if (urlPath[urlPath.length - 1] === "/") { |
|
urlPath = urlPath.slice(0, -1); |
|
} |
|
return { |
|
route: urlPath, |
|
id: "Browsersync Server Routes Middleware - " + |
|
_routes++, |
|
handle: serveStatic(resolve(root)) |
|
}; |
|
})); |
|
}); |
|
var app = serverUtils.getBaseApp(bs); |
|
/** |
|
* Finally, return the server + App |
|
*/ |
|
return serverUtils.getServer(app, bs.options); |
|
}; |
|
//# sourceMappingURL=static-server.js.map
|