bricks-cli
Version:
Command line tool for developing ambitious ember.js apps
36 lines (28 loc) • 1.08 kB
JavaScript
;
var historySupportMiddlware = require('./history-support');
var cleanBaseURL = require('../../../utilities/clean-base-url');
module.exports = function(options) {
var chain = options.chain || require('connect-chain');
var broccoliMiddleware = options.middleware || require('broccoli/lib/middleware');
var middleware = chain(
historySupportMiddlware(),
broccoliMiddleware(options.watcher)
);
var baseURL = cleanBaseURL(options.baseURL);
return function(req, res, next) {
var oldURL = req.url;
var actualPrefix = req.url.slice(0, baseURL.length - 1); // Don't care
var expectedPrefix = baseURL.slice(0, baseURL.length - 1); // about last slash
if (actualPrefix === expectedPrefix) {
req.url = req.url.slice(actualPrefix.length); // Remove baseURL prefix
// Serve file, if no file has been found, reset url for proxy stuff
// that comes afterwards
middleware(req, res, function(err) {
req.url = oldURL;
next(err);
});
} else {
next();
}
};
};