♻️ refactor reloadPlugin (#17137)

This commit is contained in:
Jeffrey Chen 2026-03-05 10:11:44 +08:00 committed by GitHub
parent 5e0d1e64de
commit 487e27cb00
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 54 additions and 89 deletions

View file

@ -771,7 +771,7 @@ type="checkbox">
app.plugins.find((item: Plugin) => {
if (item.name === dataObj.name) {
reloadPlugin(app, {
upsertCodePlugins: [dataObj.name],
reloadPlugins: [dataObj.name],
});
return true;
}

View file

@ -223,12 +223,12 @@ export const afterLoadPlugin = (plugin: Plugin) => {
};
export const reloadPlugin = async (app: App, data: {
upsertCodePlugins?: string[],
upsertDataPlugins?: string[],
unloadPlugins?: string[],
uninstallPlugins?: string[],
uninstallPlugins?: string[], // 插件卸载
unloadPlugins?: string[], // 插件禁用
reloadPlugins?: string[], // 插件启用,或插件代码变更
dataChangePlugins?: string[], // 插件存储数据变更
} = {}) => {
const {upsertCodePlugins = [], upsertDataPlugins = [], unloadPlugins = [], uninstallPlugins = []} = data;
const {uninstallPlugins = [], unloadPlugins = [], reloadPlugins = [], dataChangePlugins = []} = data;
// 禁用
unloadPlugins.forEach((item) => {
uninstall(app, item, true);
@ -237,12 +237,12 @@ export const reloadPlugin = async (app: App, data: {
uninstallPlugins.forEach((item) => {
uninstall(app, item, false);
});
upsertCodePlugins.forEach((item) => {
reloadPlugins.forEach((item) => {
uninstall(app, item, true);
});
loadPlugins(app, upsertCodePlugins, false).then(() => {
loadPlugins(app, reloadPlugins, false).then(() => {
app.plugins.forEach(item => {
if (upsertCodePlugins.includes(item.name)) {
if (reloadPlugins.includes(item.name)) {
afterLoadPlugin(item);
getAllEditor().forEach(editor => {
editor.protyle.toolbar.update(editor.protyle);
@ -251,7 +251,7 @@ export const reloadPlugin = async (app: App, data: {
});
});
app.plugins.forEach(item => {
if (upsertDataPlugins.includes(item.name)) {
if (dataChangePlugins.includes(item.name)) {
try {
item.onDataChanged();
} catch (e) {