MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / execute

Function execute

packages/plugins/mcp/src/sdk/connection.ts:124–157  ·  view source on GitHub ↗
(url, init)

Source from the content-addressed store, hash-verified

122 httpClientLayer: Layer.Layer<HttpClient.HttpClient>,
123): FetchLike => {
124 const execute: FetchLike = async (url, init) => {
125 const headers = headersFrom(init?.headers);
126 const requestWithoutBody = HttpClientRequest.make(httpMethodFrom(init?.method))(url, {
127 headers: recordFromHeaders(headers),
128 });
129 const request = await applyBody(requestWithoutBody, headers, init?.body);
130 const effect = Effect.gen(function* () {
131 const client = yield* HttpClient.HttpClient;
132 const response = yield* client.execute(request);
133 const responseHeaders = new Headers();
134 for (const [key, value] of Object.entries(response.headers)) {
135 if (value !== undefined) responseHeaders.set(key, value);
136 }
137 const body =
138 response.status === 204 || response.status === 205 || response.status === 304
139 ? null
140 : Stream.toReadableStream(response.stream);
141 return new Response(body, {
142 status: response.status,
143 headers: responseHeaders,
144 });
145 }).pipe(Effect.provide(httpClientLayer));
146 const promise = Effect.runPromise(effect);
147 if (!init?.signal) return promise;
148 // oxlint-disable-next-line executor/no-promise-reject -- boundary: Fetch-compatible adapter mirrors abort rejection semantics
149 if (init.signal.aborted) return Promise.reject(abortError(init.signal));
150 const aborted = new Promise<never>((_, reject) => {
151 // oxlint-disable-next-line executor/no-promise-reject -- boundary: Fetch-compatible adapter races the Effect request against AbortSignal
152 init.signal?.addEventListener("abort", () => reject(abortError(init.signal!)), {
153 once: true,
154 });
155 });
156 return Promise.race([promise, aborted]);
157 };
158 return execute;
159};
160

Callers

nothing calls this directly

Calls 8

headersFromFunction · 0.85
httpMethodFromFunction · 0.85
recordFromHeadersFunction · 0.85
applyBodyFunction · 0.85
abortErrorFunction · 0.85
rejectFunction · 0.85
setMethod · 0.80
executeMethod · 0.65

Tested by

no test coverage detected