Browse Source

restore: Fix server-side require()

This prevents errors when checking for IndexedDB or service worker
support. While the Golden Retriever can't be used on the server, at
least now it won't crash--which is nice for server rendering.
Renée Kooi 7 years ago
parent
commit
d0e3ae7b88

+ 2 - 1
src/plugins/RestoreFiles/IndexedDBStore.js

@@ -1,5 +1,6 @@
 const prettyBytes = require('prettier-bytes')
 const prettyBytes = require('prettier-bytes')
-const indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.OIndexedDB || window.msIndexedDB
+const indexedDB = typeof window !== 'undefined' &&
+  (window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.OIndexedDB || window.msIndexedDB)
 
 
 const isSupported = !!indexedDB
 const isSupported = !!indexedDB
 
 

+ 2 - 2
src/plugins/RestoreFiles/ServiceWorkerStore.js

@@ -1,8 +1,8 @@
-const isSupported = 'serviceWorker' in navigator
+const isSupported = typeof navigator !== 'undefined' && 'serviceWorker' in navigator
 
 
 function waitForServiceWorker () {
 function waitForServiceWorker () {
   return new Promise((resolve, reject) => {
   return new Promise((resolve, reject) => {
-    if (!('serviceWorker' in navigator)) {
+    if (!isSupported) {
       reject(new Error('Unsupported'))
       reject(new Error('Unsupported'))
     } else if (navigator.serviceWorker.controller) {
     } else if (navigator.serviceWorker.controller) {
       // A serviceWorker is already registered and active.
       // A serviceWorker is already registered and active.