fix: plugin load

This commit is contained in:
JellyBrick
2023-11-11 19:23:17 +09:00
parent de0b228ae8
commit 1f96b6b44d
10 changed files with 69 additions and 99 deletions

View File

@ -1,27 +1,16 @@
import { deepmerge } from '@fastify/deepmerge';
import store from './store';
import defaultConfig from './defaults';
import { restart } from '../providers/app-controls';
import { Entries } from '../utils/type-utils';
interface Plugin {
enabled: boolean;
}
import type { PluginBaseConfig } from '../plugins/utils/builder';
type DefaultPluginsConfig = typeof defaultConfig.plugins;
const deepmergeFn = deepmerge();
export function getEnabled() {
const plugins = deepmergeFn(defaultConfig.plugins, (store.get('plugins') as DefaultPluginsConfig));
return (Object.entries(plugins) as Entries<DefaultPluginsConfig>).filter(([, options]) =>
(options as Plugin).enabled,
);
export function getPlugins() {
return store.get('plugins') as Record<string, PluginBaseConfig>;
}
export function isEnabled(plugin: string) {
const pluginConfig = (store.get('plugins') as Record<string, Plugin>)[plugin];
const pluginConfig = (store.get('plugins') as Record<string, PluginBaseConfig>)[plugin];
return pluginConfig !== undefined && pluginConfig.enabled;
}
@ -69,7 +58,7 @@ export function disable(plugin: string) {
export default {
isEnabled,
getEnabled,
getPlugins,
enable,
disable,
setOptions,