install_service:下载并安装某个服务的指定版本
(flag: string, version: string)
| 691 | |
| 692 | /** install_service:下载并安装某个服务的指定版本 */ |
| 693 | async installService(flag: string, version: string): Promise<any> { |
| 694 | this.assertInstallableFlag(flag) |
| 695 | const data = await callFork(this.forkManager, flag, 'fetchAllOnlineVersion') |
| 696 | const list: any[] = Array.isArray(data) ? data : [] |
| 697 | if (list.length === 0) { |
| 698 | throw new Error(`No online version available for ${flag}`) |
| 699 | } |
| 700 | const row = list.find((v: any) => v?.version === version) |
| 701 | if (!row) { |
| 702 | throw new Error(`Version ${version} of ${flag} not found in online list`) |
| 703 | } |
| 704 | const result = await callFork(this.forkManager, flag, 'installSoft', row) |
| 705 | const refreshed = await ServiceVersionManager.refresh([flag]) |
| 706 | // 安装成功后通知前端刷新该 flag 的已安装版本 |
| 707 | // 直接携带刷新后的数据,避免前端再次触发 fetchInstalled。 |
| 708 | const versions = refreshed[flag] ?? [] |
| 709 | ServiceVersionManager.notifyRenderer({ type: 'service-installed-need-update', flag, versions }) |
| 710 | return { installed: version, result, versions } |
| 711 | } |
| 712 | |
| 713 | async getDatabaseConnectionInfo(flag: string, version?: string) { |
| 714 | this.assertDatabaseFlag(flag) |
no test coverage detected