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

@ -2,18 +2,16 @@
// eslint-disable-next-line import/order
import { rendererPlugins } from 'virtual:RendererPlugins';
import { deepmerge as createDeepmerge } from '@fastify/deepmerge';
import { pluginBuilders } from 'virtual:PluginBuilders';
import { deepmerge } from 'deepmerge-ts';
import { PluginBaseConfig, RendererPluginContext, RendererPluginFactory } from './plugins/utils/builder';
import { startingPages } from './providers/extracted-data';
import { setupSongControls } from './providers/song-controls-front';
import setupSongInfo from './providers/song-info-front';
const deepmerge = createDeepmerge();
let api: Element | null = null;
function listenForApiLoad() {
@ -125,7 +123,12 @@ const createContext = <
const rendererPluginList = Object.entries(rendererPlugins);
const rendererPluginResult = await Promise.allSettled(
rendererPluginList
.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;
})
.map(async ([id, builder]) => {
const context = createContext(id as keyof PluginBuilderList);
return [id, await (builder as RendererPluginFactory<PluginBaseConfig>)(context)] as const;