From 213f0a4785b1c0d1be37cb2acd9e936c99be4e68 Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Tue, 21 Apr 2020 18:46:52 +0100 Subject: [PATCH] Moved ghost-locals mw into parent app - Moved ghost-locals from shared to parent as it is not shared - This file is only used in one place, this updates the code structure to reflect this - This is one of many similar changes needed to make it easier to refactor to the existing setup - This allows shared middleware to be unhooked from the parent app --- core/frontend/services/routing/helpers/context.js | 2 +- core/server/web/parent/app.js | 4 ++-- .../{shared/middlewares => parent/middleware}/ghost-locals.js | 0 core/server/web/parent/middleware/index.js | 1 + core/server/web/shared/middlewares/index.js | 4 ---- test/unit/web/{ => parent}/middleware/ghost-locals_spec.js | 4 ++-- 6 files changed, 6 insertions(+), 9 deletions(-) rename core/server/web/{shared/middlewares => parent/middleware}/ghost-locals.js (100%) rename test/unit/web/{ => parent}/middleware/ghost-locals_spec.js (85%) diff --git a/core/frontend/services/routing/helpers/context.js b/core/frontend/services/routing/helpers/context.js index 183d8a165f..0e387eaa9a 100644 --- a/core/frontend/services/routing/helpers/context.js +++ b/core/frontend/services/routing/helpers/context.js @@ -24,7 +24,7 @@ function setResponseContext(req, res, data) { res.locals.context = []; // If we don't have a relativeUrl, we can't detect the context, so return - // See shared/middlewares/ghost-locals + // See web/parent/middleware/ghost-locals if (!res.locals.relativeUrl) { return; } diff --git a/core/server/web/parent/app.js b/core/server/web/parent/app.js index 392f200c89..57add55a27 100644 --- a/core/server/web/parent/app.js +++ b/core/server/web/parent/app.js @@ -4,7 +4,6 @@ const vhost = require('@tryghost/vhost-middleware'); const config = require('../../config'); const compress = require('compression'); const netjet = require('netjet'); -const shared = require('../shared'); const mw = require('./middleware'); const escapeRegExp = require('lodash.escaperegexp'); const {URL} = require('url'); @@ -42,7 +41,8 @@ module.exports = function setupParentApp(options = {}) { } // This sets global res.locals which are needed everywhere - parentApp.use(shared.middlewares.ghostLocals); + // @TODO: figure out if this is really needed everywhere? Is it not frontend only... + parentApp.use(mw.ghostLocals); // Mount the express apps on the parentApp diff --git a/core/server/web/shared/middlewares/ghost-locals.js b/core/server/web/parent/middleware/ghost-locals.js similarity index 100% rename from core/server/web/shared/middlewares/ghost-locals.js rename to core/server/web/parent/middleware/ghost-locals.js diff --git a/core/server/web/parent/middleware/index.js b/core/server/web/parent/middleware/index.js index b0c6b8bf8a..11ac6e2557 100644 --- a/core/server/web/parent/middleware/index.js +++ b/core/server/web/parent/middleware/index.js @@ -1,5 +1,6 @@ module.exports = { emitEvents: require('./emit-events'), + ghostLocals: require('./ghost-locals'), logRequest: require('./log-request'), requestId: require('./request-id') }; diff --git a/core/server/web/shared/middlewares/index.js b/core/server/web/shared/middlewares/index.js index d123dcfc05..2ef282675f 100644 --- a/core/server/web/shared/middlewares/index.js +++ b/core/server/web/shared/middlewares/index.js @@ -31,10 +31,6 @@ module.exports = { return require('./error-handler'); }, - get ghostLocals() { - return require('./ghost-locals'); - }, - get labs() { return require('./labs'); }, diff --git a/test/unit/web/middleware/ghost-locals_spec.js b/test/unit/web/parent/middleware/ghost-locals_spec.js similarity index 85% rename from test/unit/web/middleware/ghost-locals_spec.js rename to test/unit/web/parent/middleware/ghost-locals_spec.js index 3ea33e8813..c3d4fbaab3 100644 --- a/test/unit/web/middleware/ghost-locals_spec.js +++ b/test/unit/web/parent/middleware/ghost-locals_spec.js @@ -1,7 +1,7 @@ const should = require('should'); const sinon = require('sinon'); -const ghostLocals = require('../../../../core/server/web/shared/middlewares/ghost-locals'); -const themeService = require('../../../../core/frontend/services/themes'); +const ghostLocals = require('../../../../../core/server/web/parent/middleware/ghost-locals'); +const themeService = require('../../../../../core/frontend/services/themes'); describe('Theme Handler', function () { let req, res, next;