From 75db2c0dac60ed43e1877fd83d69953d8aef1b36 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Thu, 14 Feb 2019 21:26:41 -0800 Subject: [PATCH] fix: fix broken CSP in dev mode (#992) It seems #988 occasionally breaks dev mode due to missing SW script. This fixes that. --- src/server/sapperInlineScriptChecksums.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/server/sapperInlineScriptChecksums.js b/src/server/sapperInlineScriptChecksums.js index e4fa88df..341d68ab 100644 --- a/src/server/sapperInlineScriptChecksums.js +++ b/src/server/sapperInlineScriptChecksums.js @@ -4,17 +4,19 @@ import crypto from 'crypto' -let scripts = [ +const baseScripts = [ `__SAPPER__={baseUrl:"",preloaded:[{},{}]};`, `__SAPPER__={baseUrl:"",preloaded:[{}]};`, `__SAPPER__={baseUrl:"",preloaded:[{},null,null,{}]};`, `__SAPPER__={baseUrl:"",preloaded:[{},null,{}]};` ] -if (process.env.NODE_ENV === 'production') { - // sapper adds service worker only in production - scripts = scripts.map(script => `${script}if('serviceWorker' in navigator)navigator.serviceWorker.register('/service-worker.js');`) -} +const scriptsWithSW = baseScripts.map(script => ( + `${script}if('serviceWorker' in navigator)navigator.serviceWorker.register('/service-worker.js');`) +) + +// sapper adds service worker usually, but it seems inconsistent in dev mode especially +const scripts = [].concat(baseScripts).concat(scriptsWithSW) export const sapperInlineScriptChecksums = scripts.map(script => { return crypto.createHash('sha256').update(script).digest('base64')