(input: {
transport: string;
createTransport: () => Parameters<Client["connect"]>[0];
})
| 198 | }; |
| 199 | |
| 200 | const connectClient = (input: { |
| 201 | transport: string; |
| 202 | createTransport: () => Parameters<Client["connect"]>[0]; |
| 203 | }): Effect.Effect<McpConnection, McpConnectionError | McpOAuthReauthorizationRequired> => |
| 204 | Effect.gen(function* () { |
| 205 | const client = createClient(); |
| 206 | const transportInstance = input.createTransport(); |
| 207 | |
| 208 | yield* Effect.tryPromise({ |
| 209 | try: () => client.connect(transportInstance), |
| 210 | catch: (cause) => |
| 211 | connectionFailure(input.transport, `Failed connecting via ${input.transport}`, cause), |
| 212 | }).pipe( |
| 213 | Effect.withSpan("plugin.mcp.connection.handshake", { |
| 214 | attributes: { "plugin.mcp.transport": input.transport }, |
| 215 | }), |
| 216 | ); |
| 217 | |
| 218 | return connectionFromClient(client); |
| 219 | }); |
| 220 | |
| 221 | // --------------------------------------------------------------------------- |
| 222 | // Public factory |
no test coverage detected