cheetah-framework
Version:
Cheetah Framework JS used in all our applications
55 lines (45 loc) • 1.07 kB
JavaScript
import Vue from 'vue'
const STORAGE_KEY = 'cheetah_data_store'
function loadFromStorage () {
try {
const data = localStorage.getItem(STORAGE_KEY)
return data ? JSON.parse(data) : {}
} catch (e) {
console.error('Failed to load data store from localStorage:', e)
return {}
}
}
function saveToStorage (data) {
try {
localStorage.setItem(STORAGE_KEY, JSON.stringify(data))
} catch (e) {
console.error('Failed to save data store to localStorage:', e)
}
}
export default new Vue({
data () {
return {
state: loadFromStorage()
}
},
methods: {
add (key, value) {
this.$set(this.state, key, value)
saveToStorage(this.state)
},
get (key) {
return this.state[key]
},
remove (key) {
this.$delete(this.state, key)
saveToStorage(this.state)
},
clear () {
Object.keys(this.state).forEach(key => this.$delete(this.state, key))
saveToStorage(this.state)
},
has (key) {
return Object.prototype.hasOwnProperty.call(this.state, key)
}
}
})