| import { ParsedServerConfig } from '~/mcp/types'; |
|
|
| |
| |
| |
| |
| |
| |
| |
| export class ServerConfigsCacheInMemory { |
| private readonly cache: Map<string, ParsedServerConfig> = new Map(); |
|
|
| public async add(serverName: string, config: ParsedServerConfig): Promise<void> { |
| if (this.cache.has(serverName)) |
| throw new Error( |
| `Server "${serverName}" already exists in cache. Use update() to modify existing configs.`, |
| ); |
| this.cache.set(serverName, config); |
| } |
|
|
| public async update(serverName: string, config: ParsedServerConfig): Promise<void> { |
| if (!this.cache.has(serverName)) |
| throw new Error( |
| `Server "${serverName}" does not exist in cache. Use add() to create new configs.`, |
| ); |
| this.cache.set(serverName, config); |
| } |
|
|
| public async remove(serverName: string): Promise<void> { |
| if (!this.cache.delete(serverName)) { |
| throw new Error(`Failed to remove server "${serverName}" in cache.`); |
| } |
| } |
|
|
| public async get(serverName: string): Promise<ParsedServerConfig | undefined> { |
| return this.cache.get(serverName); |
| } |
|
|
| public async getAll(): Promise<Record<string, ParsedServerConfig>> { |
| return Object.fromEntries(this.cache); |
| } |
|
|
| public async reset(): Promise<void> { |
| this.cache.clear(); |
| } |
| } |
|
|