|
1 | 1 | import { ServerConfig, McpConnection, McpServer, ConfigSource } from "../types" |
2 | 2 | import { ConnectionHandler } from "./ConnectionHandler" |
3 | 3 | import { FileWatcher } from "./FileWatcher" |
4 | | -import { ConfigManager } from "../config/ConfigManager" |
| 4 | +import { ConfigManager } from "../config" |
5 | 5 |
|
6 | 6 | /** |
7 | 7 | * Connection factory class |
@@ -70,14 +70,25 @@ export class ConnectionFactory { |
70 | 70 | } |
71 | 71 |
|
72 | 72 | // Prefer parameter callback, otherwise use the callback from factory constructor |
73 | | - const statusChangeCb = onStatusChange |
74 | | - ? (server: McpServer) => { |
75 | | - onStatusChange(server) |
76 | | - if (this.onStatusChange) this.onStatusChange(server) |
| 73 | + let statusChangeCb: ((server: McpServer) => void) | undefined |
| 74 | + |
| 75 | + if (onStatusChange) { |
| 76 | + // If parameter callback is provided, call both it and the factory callback if present |
| 77 | + statusChangeCb = (server: McpServer) => { |
| 78 | + onStatusChange(server) |
| 79 | + if (this.onStatusChange) { |
| 80 | + this.onStatusChange(server) |
77 | 81 | } |
78 | | - : this.onStatusChange |
79 | | - ? (server: McpServer) => this.onStatusChange && this.onStatusChange(server) |
80 | | - : undefined |
| 82 | + } |
| 83 | + } else if (this.onStatusChange) { |
| 84 | + // If only factory callback is present, use that |
| 85 | + statusChangeCb = (server: McpServer) => { |
| 86 | + this.onStatusChange!(server) |
| 87 | + } |
| 88 | + } else { |
| 89 | + // No callbacks provided |
| 90 | + statusChangeCb = undefined |
| 91 | + } |
81 | 92 |
|
82 | 93 | // Use handler to create connection |
83 | 94 | const connection = await handler.createConnection(name, patchedConfig, source, statusChangeCb) |
|
0 commit comments