From c5fdbbf66d352b0fdaf0c0cf69619ceba8f4d391 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Wed, 17 Jun 2015 10:03:38 +0100 Subject: [PATCH] fix(client-script): allow proxy to also use client script middleware --- lib/async.js | 2 +- lib/server/proxy-server.js | 21 +++++---------------- lib/snippet.js | 14 -------------- 3 files changed, 6 insertions(+), 31 deletions(-) diff --git a/lib/async.js b/lib/async.js index df6d8eca6..ef1028ff4 100644 --- a/lib/async.js +++ b/lib/async.js @@ -170,7 +170,7 @@ module.exports = { bs.pluginManager.get("client:script")( bs.options.toJS(), clientJs, - bs.options.get("proxy") ? "file" : "middleware" + "middleware" ) ); diff --git a/lib/server/proxy-server.js b/lib/server/proxy-server.js index 5ad0661ef..9ad6b2985 100644 --- a/lib/server/proxy-server.js +++ b/lib/server/proxy-server.js @@ -1,6 +1,5 @@ "use strict"; -var snippetUtils = require("./../snippet").utils; var _ = require("lodash"); var utils = require("./utils"); var Immutable = require("immutable"); @@ -26,6 +25,9 @@ module.exports = function createProxyServer (bs, scripts) { var proxy = utils.getServer(bs.proxy.app, bs.options); + bs.proxy.app.use(bs.options.getIn(["scriptPaths", "versioned"]), scripts); + bs.proxy.app.use(bs.options.getIn(["scriptPaths", "path"]), scripts); + /** * How best to handle websockets going forward? */ @@ -36,9 +38,8 @@ module.exports = function createProxyServer (bs, scripts) { /** * @param bs - * @param scripts */ -function getOptions (bs, scripts) { +function getOptions (bs) { var options = bs.options; @@ -50,7 +51,7 @@ function getOptions (bs, scripts) { rules: rules.opts.rules, whitelist: rules.opts.whitelist, blacklist: rules.opts.blacklist, - middleware: options.get("middleware").toJS().concat(getPluginMiddleware(bs, scripts)), + middleware: options.get("middleware").toJS().concat(bs.pluginManager.hook("server:middleware")), errHandler: function (err) { bs.logger.debug("{red:[proxy error]} %s", err.message); } @@ -73,18 +74,6 @@ function getOptions (bs, scripts) { return out; } -/** - * Get proxy specific middleware - * @param bs - * @param scripts - * @returns {*} - */ -function getPluginMiddleware (bs, scripts) { - return bs.pluginManager.hook("server:middleware", [ - snippetUtils.getProxyMiddleware(scripts, bs.options.getIn(["scriptPaths", "versioned"])) - ]); -} - /** * @param {Object} opts * @param {Function} cb diff --git a/lib/snippet.js b/lib/snippet.js index abf34b636..1da31ffd7 100644 --- a/lib/snippet.js +++ b/lib/snippet.js @@ -64,20 +64,6 @@ var utils = { whitelist: options.get("whitelist").toJS() }; }, - /** - * @param {String} scripts - the client side JS - * @param {String} scriptPath - the URL to match - * @returns {Function} - */ - getProxyMiddleware: function (scripts, scriptPath) { - return function serveBsJavascriptfile (req, res, next) { - if (req.url.indexOf(scriptPath) > -1) { - res.writeHead(200, {"Content-Type": "text/javascript"}); - return res.end(scripts); - } - next(); - }; - }, /** * @param {Object} req * @param {Array} [excludeList]