update storage.js so no error when the window is not defined

pull/3094/head
Rob Stupay 7 years ago
parent c5cbeb1629
commit 4cbd9d8ecf
  1. 44
      remix-lib/src/storage.js

@ -2,16 +2,22 @@
function Storage (prefix) {
this.exists = function (name) {
return this.get(name) !== null
if (typeof window !== 'undefined') {
return this.get(name) !== null
}
}
this.get = function (name) {
return window.localStorage.getItem(prefix + name)
if (typeof window !== 'undefined') {
return window.localStorage.getItem(prefix + name)
}
}
this.set = function (name, content) {
try {
window.localStorage.setItem(prefix + name, content)
if (typeof window !== 'undefined') {
window.localStorage.setItem(prefix + name, content)
}
} catch (exception) {
return false
}
@ -19,8 +25,10 @@ function Storage (prefix) {
}
this.remove = function (name) {
window.localStorage.removeItem(prefix + name)
return true
if (typeof window !== 'undefined') {
window.localStorage.removeItem(prefix + name)
return true
}
}
this.rename = function (originalName, newName) {
@ -34,7 +42,9 @@ function Storage (prefix) {
function safeKeys () {
// NOTE: this is a workaround for some browsers
return Object.keys(window.localStorage).filter(function (item) { return item !== null && item !== undefined })
if (typeof window !== 'undefined') {
return Object.keys(window.localStorage).filter(function (item) { return item !== null && item !== undefined })
}
}
this.keys = function () {
@ -46,16 +56,20 @@ function Storage (prefix) {
}
// on startup, upgrade the old storage layout
safeKeys().forEach(function (name) {
if (name.indexOf('sol-cache-file-', 0) === 0) {
var content = window.localStorage.getItem(name)
window.localStorage.setItem(name.replace(/^sol-cache-file-/, 'sol:'), content)
window.localStorage.removeItem(name)
}
})
if (typeof window !== 'undefined') {
safeKeys().forEach(function (name) {
if (name.indexOf('sol-cache-file-', 0) === 0) {
var content = window.localStorage.getItem(name)
window.localStorage.setItem(name.replace(/^sol-cache-file-/, 'sol:'), content)
window.localStorage.removeItem(name)
}
})
}
// remove obsolete key
window.localStorage.removeItem('editor-size-cache')
if (typeof window !== 'undefined') {
window.localStorage.removeItem('editor-size-cache')
}
}
module.exports = Storage

Loading…
Cancel
Save