From b34b1bd57fc5c49c683d771e24bafc4dae38d0e3 Mon Sep 17 00:00:00 2001 From: Jonny Adshead Date: Tue, 17 Mar 2020 10:46:42 -0700 Subject: [PATCH] feat(loadModule): optional cache bust key (#37) --- .../middleware/__snapshots__/sendHtml.spec.js.snap | 2 ++ __tests__/server/middleware/sendHtml.spec.js | 11 +++++++++++ package.json | 2 +- src/server/middleware/sendHtml.js | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/__tests__/server/middleware/__snapshots__/sendHtml.spec.js.snap b/__tests__/server/middleware/__snapshots__/sendHtml.spec.js.snap index 58f04d5a1..d2d4f6a12 100644 --- a/__tests__/server/middleware/__snapshots__/sendHtml.spec.js.snap +++ b/__tests__/server/middleware/__snapshots__/sendHtml.spec.js.snap @@ -4,6 +4,8 @@ exports[`sendHtml renderModuleScripts adds cache busting key from module map to exports[`sendHtml renderModuleScripts does not add cache busting key from module map to each module script src if NODE_ENV is development 1`] = `""`; +exports[`sendHtml renderModuleScripts does not add cache busting key if not present 1`] = `""`; + exports[`sendHtml renderModuleScripts send a rendered page keeping correctly ordered modules 1`] = `""`; exports[`sendHtml renderModuleScripts send a rendered page with correctly ordered modules 1`] = `""`; diff --git a/__tests__/server/middleware/sendHtml.spec.js b/__tests__/server/middleware/sendHtml.spec.js index 90d263cda..147b9b867 100644 --- a/__tests__/server/middleware/sendHtml.spec.js +++ b/__tests__/server/middleware/sendHtml.spec.js @@ -592,6 +592,17 @@ describe('sendHtml', () => { })).toMatchSnapshot(); }); + it('does not add cache busting key if not present', () => { + const moduleMap = { ...clientModuleMapCache.browser }; + delete moduleMap.key; + expect(renderModuleScripts({ + clientInitialState: req.store.getState(), + moduleMap, + isDevelopmentEnv: false, + bundle: 'browser', + })).toMatchSnapshot(); + }); + it('sends a rendered page with cross origin scripts', () => { expect(renderModuleScripts({ clientInitialState: req.store.getState(), diff --git a/package.json b/package.json index c1402a5a6..70b14be19 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "cors": "^2.8.5", "express": "^4.17.1", "helmet": "^3.21.2", - "holocron": "^1.0.0-15", + "holocron": "^1.0.0", "holocron-module-route": "^1.0.0-6", "if-env": "^1.0.4", "immutable": "^4.0.0-rc.12", diff --git a/src/server/middleware/sendHtml.js b/src/server/middleware/sendHtml.js index 06d849ae9..596678d42 100644 --- a/src/server/middleware/sendHtml.js +++ b/src/server/middleware/sendHtml.js @@ -115,7 +115,7 @@ export function renderModuleScripts({ const { integrity, url: src } = moduleMap.modules[moduleName][bundle]; const { key } = moduleMap; const additionalAttributes = isDevelopmentEnv ? '' : `integrity="${integrity}"`; - const scriptSource = isDevelopmentEnv ? src : `${src}?key=${key}`; + const scriptSource = isDevelopmentEnv || !key ? src : `${src}?key=${key}`; return ``; }).join(isDevelopmentEnv ? '\n ' : ''); }