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

Function executeText

packages/core/sdk/src/oauth-discovery.ts:184–226  ·  view source on GitHub ↗
(
  request: HttpClientRequest.HttpClientRequest,
  options: DiscoveryRequestOptions,
  errorMessage: string,
)

Source from the content-addressed store, hash-verified

182 effect.pipe(Effect.provide(options.httpClientLayer ?? FetchHttpClient.layer));
183
184const executeText = (
185 request: HttpClientRequest.HttpClientRequest,
186 options: DiscoveryRequestOptions,
187 errorMessage: string,
188): Effect.Effect<{ readonly status: number; readonly body: string }, OAuthDiscoveryError> =>
189 provideHttpClient(
190 Effect.gen(function* () {
191 const client = yield* HttpClient.HttpClient;
192 const response = yield* client.execute(request).pipe(
193 Effect.timeoutOrElse({
194 duration: Duration.millis(options.timeoutMs ?? OAUTH2_DEFAULT_TIMEOUT_MS),
195 orElse: () =>
196 Effect.fail(
197 new OAuthDiscoveryError({
198 message: errorMessage,
199 cause: "timeout",
200 }),
201 ),
202 }),
203 Effect.mapError((cause) =>
204 Predicate.isTagged(cause, "OAuthDiscoveryError")
205 ? cause
206 : new OAuthDiscoveryError({
207 message: errorMessage,
208 cause,
209 }),
210 ),
211 );
212 const body = yield* response.text.pipe(
213 Effect.catch(() => Effect.succeed("")),
214 Effect.mapError(
215 (cause) =>
216 new OAuthDiscoveryError({
217 message: `${errorMessage}: response body could not be read`,
218 status: response.status,
219 cause,
220 }),
221 ),
222 );
223 return { status: response.status, body };
224 }),
225 options,
226 );
227
228// ---------------------------------------------------------------------------
229// RFC 9728 — Protected Resource Metadata

Calls 2

provideHttpClientFunction · 0.85
executeMethod · 0.65

Tested by

no test coverage detected