53 lines
927 B
JavaScript
53 lines
927 B
JavaScript
export default (storage) => {
|
|
if (!storage) return
|
|
|
|
const skey = (key) => '' + key
|
|
|
|
return {
|
|
/**
|
|
* 获取
|
|
* @param {string} key key
|
|
* @param {any} defaultValue defaultValue
|
|
*/
|
|
get (key, defaultValue) {
|
|
try {
|
|
return JSON.parse(storage.getItem(skey(key))) || defaultValue
|
|
} catch (error) {
|
|
return defaultValue
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 保存
|
|
* @param {string} key key
|
|
* @param {any} val 值
|
|
*/
|
|
save (key, val) {
|
|
if (val === undefined || val === null) return this.remove(key)
|
|
storage.setItem(skey(key), JSON.stringify(val))
|
|
},
|
|
|
|
/**
|
|
* 获取 所有key
|
|
*/
|
|
keys () {
|
|
return Object.keys(storage)
|
|
},
|
|
|
|
/**
|
|
* 删除
|
|
* @param {string} key key
|
|
*/
|
|
remove (key) {
|
|
storage.removeItem(skey(key))
|
|
},
|
|
|
|
/**
|
|
* 清空
|
|
*/
|
|
clear () {
|
|
storage.clear()
|
|
}
|
|
}
|
|
}
|