MCPcopy
hub / github.com/xpf0000/FlyEnv / installService

Method installService

src/main/core/MCPTools.ts:693–711  ·  view source on GitHub ↗

install_service:下载并安装某个服务的指定版本

(flag: string, version: string)

Source from the content-addressed store, hash-verified

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)

Calls 4

assertInstallableFlagMethod · 0.95
notifyRendererMethod · 0.80
callForkFunction · 0.70
refreshMethod · 0.45

Tested by

no test coverage detected