fix: be plugin unload error (#6847)
diff --git a/config-ui/src/api/plugin/index.ts b/config-ui/src/api/plugin/index.ts
index 4f6633b..054c539 100644
--- a/config-ui/src/api/plugin/index.ts
+++ b/config-ui/src/api/plugin/index.ts
@@ -16,11 +16,16 @@
*
*/
+import { request } from '@/utils';
+
import * as jira from './jira';
import * as tapd from './tapd';
import * as webhook from './webhook';
+export const list = (): Promise<[{ plugin: string }]> => request('/plugins');
+
export const plugin = {
+ list,
jira,
tapd,
webhook,
diff --git a/config-ui/src/routes/layout/loader.ts b/config-ui/src/routes/layout/loader.ts
index 003db20..2bba5a8 100644
--- a/config-ui/src/routes/layout/loader.ts
+++ b/config-ui/src/routes/layout/loader.ts
@@ -16,6 +16,8 @@
*
*/
+import { intersection } from 'lodash';
+
import API from '@/api';
import { getRegisterPlugins } from '@/plugins';
@@ -24,19 +26,21 @@
};
export const layoutLoader = async ({ request }: Props) => {
- let plugins = [];
+ let fePlugins = getRegisterPlugins();
+ const bePlugins = await API.plugin.list();
try {
const envPlugins = import.meta.env.DEVLAKE_PLUGINS.split(',').filter(Boolean);
- plugins = getRegisterPlugins().filter((plugin) => !envPlugins.length || envPlugins.includes(plugin));
- } catch (err) {
- plugins = getRegisterPlugins();
- }
+ fePlugins = fePlugins.filter((plugin) => !envPlugins.length || envPlugins.includes(plugin));
+ } catch (err) {}
const res = await API.version(request.signal);
return {
version: res.version,
- plugins,
+ plugins: intersection(
+ fePlugins,
+ bePlugins.map((it) => it.plugin),
+ ),
};
};