diff --git a/src/global/readSetting.js b/src/global/readSetting.js index a1eb2b1..b79fec3 100644 --- a/src/global/readSetting.js +++ b/src/global/readSetting.js @@ -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 diff --git a/src/global/restoreSetting.js b/src/global/restoreSetting.js new file mode 100644 index 0000000..38e9320 --- /dev/null +++ b/src/global/restoreSetting.js @@ -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 +} diff --git a/src/utils/index.js b/src/utils/index.js index 6ffbfe8..4c9d3ec 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -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 }