(input: {
transport: string;
createTransport: () => Parameters<Client["connect"]>[0];
})
| 236 | }; |
| 237 | |
| 238 | const connectClient = (input: { |
| 239 | transport: string; |
| 240 | createTransport: () => Parameters<Client["connect"]>[0]; |
| 241 | }): Effect.Effect<McpConnection, McpConnectionError | McpOAuthReauthorizationRequired> => |
| 242 | Effect.gen(function* () { |
| 243 | const client = createClient(); |
| 244 | const transportInstance = input.createTransport(); |
| 245 | |
| 246 | yield* Effect.tryPromise({ |
| 247 | try: () => client.connect(transportInstance), |
| 248 | catch: (cause) => |
| 249 | connectionFailure(input.transport, `Failed connecting via ${input.transport}`, cause), |
| 250 | }).pipe( |
| 251 | Effect.withSpan("plugin.mcp.connection.handshake", { |
| 252 | attributes: { "plugin.mcp.transport": input.transport }, |
| 253 | }), |
| 254 | ); |
| 255 | |
| 256 | return connectionFromClient(client); |
| 257 | }); |
| 258 | |
| 259 | // --------------------------------------------------------------------------- |
| 260 | // Public factory |
no test coverage detected