mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-03-09 06:02:33 +01:00
♻️ refactor reloadPlugin (#17137)
This commit is contained in:
parent
5e0d1e64de
commit
487e27cb00
6 changed files with 54 additions and 89 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue