diff options
author | Matthew Somerville <matthew@mysociety.org> | 2020-02-14 17:00:23 +0000 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2020-02-14 17:00:23 +0000 |
commit | 52e79b293a5595fa558b080e934cf985c5e1c1b7 (patch) | |
tree | 2838298314783c55bf53d8c9d1b0724325b9fcfa | |
parent | 17a3844c49d4769c8d47b50fce4a4a711748bd18 (diff) |
Vendor in idb-keyval.
Easier working with CSP headers.
-rw-r--r-- | templates/web/base/common_scripts.html | 2 | ||||
-rw-r--r-- | templates/web/base/offline/service_worker.html | 2 | ||||
-rw-r--r-- | web/vendor/idb-keyval-iife.min.js | 1 |
3 files changed, 3 insertions, 2 deletions
diff --git a/templates/web/base/common_scripts.html b/templates/web/base/common_scripts.html index f94b3d464..b8c4db343 100644 --- a/templates/web/base/common_scripts.html +++ b/templates/web/base/common_scripts.html @@ -46,7 +46,7 @@ IF c.user_exists AND (c.user.from_body OR c.user.is_superuser); END; IF c.user.has_body_permission_to('planned_reports'); scripts.push( - 'https://cdn.jsdelivr.net/npm/idb-keyval@3/dist/idb-keyval-iife.min.js', + version('/vendor/idb-keyval-iife.min.js'), version('/cobrands/fixmystreet/offline.js'), ); END; diff --git a/templates/web/base/offline/service_worker.html b/templates/web/base/offline/service_worker.html index 0feb26ce6..3c480f9b1 100644 --- a/templates/web/base/offline/service_worker.html +++ b/templates/web/base/offline/service_worker.html @@ -6,7 +6,7 @@ SET scripts_seen = {}; ~%] -importScripts('https://cdn.jsdelivr.net/npm/idb-keyval@3/dist/idb-keyval-iife.min.js'); +importScripts('[% version('/vendor/idb-keyval-iife.min.js') %]'); const requiredOffline = [ "[% version('/cobrands/' _ c.cobrand.asset_moniker _ '/base.css') %]", diff --git a/web/vendor/idb-keyval-iife.min.js b/web/vendor/idb-keyval-iife.min.js new file mode 100644 index 000000000..067a966f6 --- /dev/null +++ b/web/vendor/idb-keyval-iife.min.js @@ -0,0 +1 @@ +var idbKeyval=function(e){"use strict";class t{constructor(e="keyval-store",t="keyval"){this.storeName=t,this._dbp=new Promise((r,n)=>{const o=indexedDB.open(e,1);o.onerror=(()=>n(o.error)),o.onsuccess=(()=>r(o.result)),o.onupgradeneeded=(()=>{o.result.createObjectStore(t)})})}_withIDBStore(e,t){return this._dbp.then(r=>new Promise((n,o)=>{const s=r.transaction(this.storeName,e);s.oncomplete=(()=>n()),s.onabort=s.onerror=(()=>o(s.error)),t(s.objectStore(this.storeName))}))}}let r;function n(){return r||(r=new t),r}return e.Store=t,e.get=function(e,t=n()){let r;return t._withIDBStore("readonly",t=>{r=t.get(e)}).then(()=>r.result)},e.set=function(e,t,r=n()){return r._withIDBStore("readwrite",r=>{r.put(t,e)})},e.del=function(e,t=n()){return t._withIDBStore("readwrite",t=>{t.delete(e)})},e.clear=function(e=n()){return e._withIDBStore("readwrite",e=>{e.clear()})},e.keys=function(e=n()){const t=[];return e._withIDBStore("readonly",e=>{(e.openKeyCursor||e.openCursor).call(e).onsuccess=function(){this.result&&(t.push(this.result.key),this.result.continue())}}).then(()=>t)},e}({});
\ No newline at end of file |