Commit a42040de authored by Rob Stupay's avatar Rob Stupay

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

parent 14a09cc7
...@@ -2,16 +2,22 @@ ...@@ -2,16 +2,22 @@
function Storage (prefix) { function Storage (prefix) {
this.exists = function (name) { this.exists = function (name) {
if (typeof window !== 'undefined') {
return this.get(name) !== null return this.get(name) !== null
} }
}
this.get = function (name) { this.get = function (name) {
if (typeof window !== 'undefined') {
return window.localStorage.getItem(prefix + name) return window.localStorage.getItem(prefix + name)
} }
}
this.set = function (name, content) { this.set = function (name, content) {
try { try {
if (typeof window !== 'undefined') {
window.localStorage.setItem(prefix + name, content) window.localStorage.setItem(prefix + name, content)
}
} catch (exception) { } catch (exception) {
return false return false
} }
...@@ -19,9 +25,11 @@ function Storage (prefix) { ...@@ -19,9 +25,11 @@ function Storage (prefix) {
} }
this.remove = function (name) { this.remove = function (name) {
if (typeof window !== 'undefined') {
window.localStorage.removeItem(prefix + name) window.localStorage.removeItem(prefix + name)
return true return true
} }
}
this.rename = function (originalName, newName) { this.rename = function (originalName, newName) {
var content = this.get(originalName) var content = this.get(originalName)
...@@ -34,8 +42,10 @@ function Storage (prefix) { ...@@ -34,8 +42,10 @@ function Storage (prefix) {
function safeKeys () { function safeKeys () {
// NOTE: this is a workaround for some browsers // NOTE: this is a workaround for some browsers
if (typeof window !== 'undefined') {
return Object.keys(window.localStorage).filter(function (item) { return item !== null && item !== undefined }) return Object.keys(window.localStorage).filter(function (item) { return item !== null && item !== undefined })
} }
}
this.keys = function () { this.keys = function () {
return safeKeys() return safeKeys()
...@@ -46,6 +56,7 @@ function Storage (prefix) { ...@@ -46,6 +56,7 @@ function Storage (prefix) {
} }
// on startup, upgrade the old storage layout // on startup, upgrade the old storage layout
if (typeof window !== 'undefined') {
safeKeys().forEach(function (name) { safeKeys().forEach(function (name) {
if (name.indexOf('sol-cache-file-', 0) === 0) { if (name.indexOf('sol-cache-file-', 0) === 0) {
var content = window.localStorage.getItem(name) var content = window.localStorage.getItem(name)
...@@ -53,9 +64,12 @@ function Storage (prefix) { ...@@ -53,9 +64,12 @@ function Storage (prefix) {
window.localStorage.removeItem(name) window.localStorage.removeItem(name)
} }
}) })
}
// remove obsolete key // remove obsolete key
if (typeof window !== 'undefined') {
window.localStorage.removeItem('editor-size-cache') window.localStorage.removeItem('editor-size-cache')
}
} }
module.exports = Storage module.exports = Storage
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment