From c3b2d7b94117b89f10ca80f70d38ac7d6efc363c Mon Sep 17 00:00:00 2001 From: Molunerfinn Date: Thu, 20 Sep 2018 15:14:19 +0800 Subject: [PATCH] Fixed: bug with function in config --- src/main/utils/picgoCoreIPC.js | 18 +++++++++++++++--- src/renderer/components/SettingView/Plugin.vue | 5 +---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/utils/picgoCoreIPC.js b/src/main/utils/picgoCoreIPC.js index 0cf5fb2..eac8ebe 100644 --- a/src/main/utils/picgoCoreIPC.js +++ b/src/main/utils/picgoCoreIPC.js @@ -20,6 +20,18 @@ const getConfig = (name, type, ctx) => { } } +const handleConfigWithFunction = config => { + for (let i in config) { + if (typeof config[i].default === 'function') { + config[i].default = config[i].default() + } + if (typeof config[i].choices === 'function') { + config[i].choices = config[i].choices() + } + } + return config +} + export default (app, ipcMain) => { const STORE_PATH = app.getPath('userData') const CONFIG_PATH = path.join(STORE_PATH, '/data.json') @@ -42,15 +54,15 @@ export default (app, ipcMain) => { config: { plugin: { name: pluginList[i].replace(/picgo-plugin-/, ''), - config: plugin.config ? plugin.config(picgo) : [] + config: plugin.config ? handleConfigWithFunction(plugin.config(picgo)) : [] }, uploader: { name: uploaderName, - config: getConfig(uploaderName, 'uploader', picgo) + config: handleConfigWithFunction(getConfig(uploaderName, 'uploader', picgo)) }, transformer: { name: transformerName, - config: getConfig(uploaderName, 'transformer', picgo) + config: handleConfigWithFunction(getConfig(uploaderName, 'transformer', picgo)) } }, enabled: picgo.getConfig(`plugins.${pluginList[i]}`) diff --git a/src/renderer/components/SettingView/Plugin.vue b/src/renderer/components/SettingView/Plugin.vue index c33f0e4..0dc8cba 100644 --- a/src/renderer/components/SettingView/Plugin.vue +++ b/src/renderer/components/SettingView/Plugin.vue @@ -79,10 +79,7 @@ export default { }, created () { this.$electron.ipcRenderer.on('pluginList', (evt, list) => { - this.pluginList = list.map(item => { - // item.reload = false - return item - }) + this.pluginList = list.map(item => item) }) this.getPluginList() document.addEventListener('keydown', (e) => {