diff --git a/lib/plugins/src/_internal/dependency-graph.ts b/lib/plugins/src/_internal/dependency-graph.ts index fb8538e..b1ec25f 100644 --- a/lib/plugins/src/_internal/dependency-graph.ts +++ b/lib/plugins/src/_internal/dependency-graph.ts @@ -1,4 +1,5 @@ import { getInternalPluginMeta, getPluginDependencies } from '../_internal' +import { pApis } from './decorators' import type { AnyPlugin } from '../_internal' /// PLUGIN DEPENDENCY GRAPHING @@ -25,7 +26,14 @@ export const pPending = new Set() export function computePendingNodes() { for (const plugin of pPending) resolvePluginGraph(plugin) - for (const plugin of pLeafOrSingleNodes) pListOrdered.unshift(plugin) + const apis: AnyPlugin[] = [] + + for (const plugin of pLeafOrSingleNodes) { + if (pApis.has(plugin)) apis.push(plugin) + else pListOrdered.unshift(plugin) + } + + for (const plugin of apis) pListOrdered.unshift(plugin) const stack = [...pRootNodes] while (stack.length) {