From dfe3d87ef0874ffcdddc524be6ae03ab8e8412cb Mon Sep 17 00:00:00 2001 From: ZiuChen <457353192@qq.com> Date: Sun, 18 Sep 2022 15:19:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/global/readSetting.js | 27 ++------------------------- src/global/restoreSetting.js | 15 +++++++++++++++ src/utils/index.js | 19 ++++++++++++++++++- 3 files changed, 35 insertions(+), 26 deletions(-) create mode 100644 src/global/restoreSetting.js 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 }