From 3563daed39b52c0df2b20b816beb9559322bbadd Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Wed, 13 Aug 2025 00:56:23 +0700 Subject: [PATCH] fix(lib/plugins): only run dependencies that aren't already running --- lib/plugins/src/_internal/index.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/plugins/src/_internal/index.ts b/lib/plugins/src/_internal/index.ts index 0c8f820..f09b4a3 100644 --- a/lib/plugins/src/_internal/index.ts +++ b/lib/plugins/src/_internal/index.ts @@ -329,19 +329,23 @@ export async function runPluginLate(plugin: AnyPlugin) { if (plugin.status & Status.Started) throw new Error(`Plugin "${plugin.manifest.id}" is already started`) - plugin.flags |= Flag.EnabledLate - // Reset previous computations pListOrdered.length = 0 pPending.add(plugin) computePendingNodes() await Promise.all( - pListOrdered.map(async function runLate(plugin) { - await preInitPlugin(plugin) - await initPlugin(plugin) - await startPlugin(plugin) - }), + // If the plugin is stopped, we should initialize it + pListOrdered + .filter(plugin => !plugin.status) + .map(async function runLate(plugin) { + plugin.flags |= Flag.EnabledLate + + // Prepare the plugin API + await preInitPlugin(plugin) + await initPlugin(plugin) + await startPlugin(plugin) + }), ) }