| 1271 | const result: string[] = []; |
| 1272 | |
| 1273 | const visit = (id: string) => { |
| 1274 | if (visited.has(id)) return; |
| 1275 | visited.add(id); |
| 1276 | |
| 1277 | const plugin = this.plugins.get(id); |
| 1278 | if (plugin) { |
| 1279 | const deps = plugin.plugin.manifest.dependencies || []; |
| 1280 | for (const depId of deps) { |
| 1281 | // 解析短 ID 为完整 ID |
| 1282 | const resolvedDepId = this.resolveDependencyId(depId); |
| 1283 | if (pluginIds.includes(resolvedDepId)) { |
| 1284 | visit(resolvedDepId); |
| 1285 | } |
| 1286 | } |
| 1287 | } |
| 1288 | |
| 1289 | result.push(id); |
| 1290 | }; |
| 1291 | |
| 1292 | for (const id of pluginIds) { |
| 1293 | visit(id); |