wip: trying to fix electron-store issue

Co-authored-by: JellyBrick <shlee1503@naver.com>
This commit is contained in:
Su-Yong
2023-11-11 21:48:51 +09:00
parent 6ab3cf9ac9
commit bb2e865880
8 changed files with 49 additions and 44 deletions

View File

@ -3,7 +3,7 @@ import is from 'electron-is';
import { pluginBuilders } from 'virtual:PluginBuilders';
import { deepmerge as createDeepmerge } from '@fastify/deepmerge';
import { deepmerge } from 'deepmerge-ts';
import config from './config';
@ -11,13 +11,11 @@ import config from './config';
import { preloadPlugins } from 'virtual:PreloadPlugins';
import { PluginBaseConfig, PluginContext, PreloadPluginFactory } from './plugins/utils/builder';
const deepmerge = createDeepmerge();
const createContext = <
Key extends keyof PluginBuilderList,
Config extends PluginBaseConfig = PluginBuilderList[Key]['config'],
>(name: Key): PluginContext<Config> => ({
getConfig: () => deepmerge(pluginBuilders[name].config, config.get(`plugins.${name}`) ?? {}) as Config,
getConfig: () => deepmerge(pluginBuilders[name].config, config.get(`plugins.${name}`) ?? {}) as unknown as Config,
setConfig: (newConfig) => {
config.setPartial(`plugins.${name}`, newConfig);
},
@ -28,7 +26,12 @@ const preloadedPluginList = [];
const pluginConfig = config.plugins.getPlugins();
Object.entries(preloadPlugins)
.filter(([id]) => deepmerge(pluginBuilders[id as keyof PluginBuilderList].config, pluginConfig[id as keyof PluginBuilderList] ?? {}).enabled)
.filter(([id]) => {
const typedId = id as keyof PluginBuilderList;
const config = deepmerge(pluginBuilders[typedId].config, pluginConfig[typedId] ?? {});
return config.enabled;
})
.forEach(async ([id]) => {
if (Object.hasOwn(preloadPlugins, id)) {
const factory = (preloadPlugins as Record<string, PreloadPluginFactory<PluginBaseConfig>>)[id];