(serverId)
| 255 | } |
| 256 | |
| 257 | async function buildSnapshot(serverId) { |
| 258 | const liveServer = lspApi.servers.get(serverId); |
| 259 | if (!liveServer) return null; |
| 260 | |
| 261 | const merged = getMergedConfig(liveServer); |
| 262 | const override = getServerOverride(serverId); |
| 263 | const directWebSocket = isDirectWebSocketServer(merged); |
| 264 | const installResult = await checkRuntimeServerInstallation(merged).catch( |
| 265 | (error) => ({ |
| 266 | status: "failed", |
| 267 | version: null, |
| 268 | canInstall: true, |
| 269 | canUpdate: true, |
| 270 | message: error instanceof Error ? error.message : String(error), |
| 271 | }), |
| 272 | ); |
| 273 | |
| 274 | return { |
| 275 | liveServer, |
| 276 | merged, |
| 277 | override, |
| 278 | directWebSocket, |
| 279 | isCustom: isCustomServer(serverId), |
| 280 | installResult, |
| 281 | builtinExts: merged.clientConfig?.builtinExtensions || {}, |
| 282 | installCommand: await getRuntimeInstallCommand(merged, "install"), |
| 283 | updateCommand: await getRuntimeInstallCommand(merged, "update"), |
| 284 | uninstallCommand: await getRuntimeUninstallCommand(merged), |
| 285 | }; |
| 286 | } |
| 287 | |
| 288 | function createItems(snapshot) { |
| 289 | const featureItems = getFeatureItems(); |
no test coverage detected