vue-django
Version:
个人实验项目, 本框架的目标是借鉴并超越django admin的自动化思想, 实现UI前端的极简快速定制开发
66 lines (59 loc) • 1.36 kB
JavaScript
/**
* Created by denishuang on 2020/4/21.
*/
import low from 'lowdb'
import LocalStorage from 'lowdb/adapters/LocalStorage'
export function Cache (key, db) {
return {
db,
save (v) {
try {
db.set(key, v).write()
} catch (e) {
alert(e.toString())
}
},
read (k) {
return db.get(k || key).value()
},
destroy () {
console.log('destroy', key)
try {
db.unset(key).write()
} catch (e) {
alert(e.toString())
}
}
}
}
export function BCache (key, db) {
function changeKey (k) {
let ps = k.split('.')
ps[2] = ps[2].replace(/^n/, '')
return ps.join('.')
}
let cache = Cache(key, db)
return {
...cache,
read (k) {
return cache.read(k) || JSON.parse(localStorage.getItem(changeKey(k || key)))
}
}
}
export default BCache
export function UserStorage (key) {
if (key === undefined) {
key = 'userStore'
}
if (Number.isInteger(key)) {
key = `userStore${key}`
}
let adapter = new LocalStorage(key)
let db = low(adapter)
return {
db,
newCache: function (key) {
return BCache(key, db)
}
}
}