From 77a5e99b6aef4dc51a920885d0b4598a0146b6c3 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Mon, 16 Jan 2023 16:40:14 +0800 Subject: [PATCH] perf: improve plugin loading (halo-dev/console#823) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /kind improvement #### What this PR does / why we need it: 优化 Console 端加载插件资源的逻辑。 1. 查询接口改为自定义接口,传入 enabled 参数进行筛选。 2. 修改符合 Console 插件的筛选判断。 3. 隐藏加载异常的提示。 #### Which issue(s) this PR fixes: Fixes https://github.com/halo-dev/halo/issues/3156 #### Special notes for your reviewer: 测试方式: 1. 安装若干带有 Console 端拓展的插件,比如:https://github.com/halo-sigs/plugin-stackedit 2. 检查是否有加载成功。 3. 创建一个没有插件访问权限的角色。 4. 登录之后检查是否有无权限提示。 #### Does this PR introduce a user-facing change? ```release-note 优化 Console 端加载插件资源的逻辑。 ``` --- src/main.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main.ts b/src/main.ts index 1eefc680f..640d43e04 100644 --- a/src/main.ts +++ b/src/main.ts @@ -119,13 +119,20 @@ function loadStyle(href: string) { const pluginErrorMessages: Array = []; async function loadPluginModules() { - const { data } = - await apiClient.extension.plugin.listpluginHaloRunV1alpha1Plugin(); + const { data } = await apiClient.plugin.listPlugins( + { + enabled: true, + page: 0, + size: 0, + }, + { mute: true } + ); // Get all started plugins - const plugins = data.items.filter( - (plugin) => plugin.status?.phase === "STARTED" && plugin.spec.enabled - ); + const plugins = data.items.filter((plugin) => { + const { entry, stylesheet } = plugin.status || {}; + return plugin.status?.phase === "STARTED" && (!!entry || !!stylesheet); + }); for (const plugin of plugins) { const { entry, stylesheet } = plugin.status || {