feat: 新增重置设置函数

This commit is contained in:
ZiuChen 2022-09-18 15:19:50 +08:00
parent 7a6b9f5dc6
commit dfe3d87ef0
3 changed files with 35 additions and 26 deletions

View File

@ -1,28 +1,5 @@
import defaultSetting from '../data/setting.json'
import restoreSetting from './restoreSetting'
const sep = utools.isWindows() ? '\\' : '/'
const defaultPath = `${
utools.isMacOs() ? utools.getPath('userData') : utools.getPath('home')
}${sep}_utools_clipboard_manager_storage`
let setting = utools.dbStorage.getItem('setting')
if (!setting) {
// 将defaultSetting的key点语法转换为对象
setting = {}
for (const key in defaultSetting) {
const keys = key.split('.')
let obj = setting
for (let i = 0; i < keys.length; i++) {
if (i === keys.length - 1) {
obj[keys[i]] = defaultSetting[key]
} else {
if (!obj[keys[i]]) obj[keys[i]] = {}
obj = obj[keys[i]]
}
}
}
setting.database.path = defaultPath
utools.dbStorage.setItem('setting', setting)
}
const setting = utools.dbStorage.getItem('setting') || restoreSetting()
export default setting

View File

@ -0,0 +1,15 @@
import defaultSetting from '../data/setting.json'
import { pointToObj } from '../utils'
const SEP = utools.isWindows() ? '\\' : '/'
const defaultPath = `${
utools.isMacOs() ? utools.getPath('userData') : utools.getPath('home')
}${SEP}_utools_clipboard_manager_storage`
export default function restoreSetting() {
// 将defaultSetting的key点语法转换为对象
const setting = pointToObj(defaultSetting)
setting.database.path = defaultPath
utools.dbStorage.setItem('setting', setting)
return setting
}

View File

@ -19,4 +19,21 @@ const dateFormat = (timeStamp) => {
return info
}
export { dateFormat }
const pointToObj = (objWithPointKey) => {
let rtnObj = {}
for (const key in objWithPointKey) {
const keys = key.split('.')
let obj = rtnObj
for (let i = 0; i < keys.length; i++) {
if (i === keys.length - 1) {
obj[keys[i]] = objWithPointKey[key]
} else {
if (!obj[keys[i]]) obj[keys[i]] = {}
obj = obj[keys[i]]
}
}
}
return rtnObj
}
export { dateFormat, pointToObj }