MCPcopy Create free account
hub / github.com/Effect-TS/effect / waitForResponse

Function waitForResponse

packages/platform/node/src/NodeHttpClient.ts:526–552  ·  view source on GitHub ↗
(nodeRequest: Http.ClientRequest, request: HttpClientRequest)

Source from the content-addressed store, hash-verified

524 })
525
526const waitForResponse = (nodeRequest: Http.ClientRequest, request: HttpClientRequest) =>
527 Effect.callback<Http.IncomingMessage, Error.HttpClientError>((resume) => {
528 function onError(cause: Error) {
529 resume(Effect.fail(
530 new Error.HttpClientError({
531 reason: new Error.TransportError({
532 request,
533 cause
534 })
535 })
536 ))
537 }
538 nodeRequest.on("error", onError)
539
540 function onResponse(response: Http.IncomingMessage) {
541 nodeRequest.off("error", onError)
542 resume(Effect.succeed(response))
543 }
544 nodeRequest.on("upgrade", onResponse)
545 nodeRequest.on("response", onResponse)
546
547 return Effect.sync(() => {
548 nodeRequest.off("error", onError)
549 nodeRequest.off("upgrade", onResponse)
550 nodeRequest.off("response", onResponse)
551 })
552 })
553
554const waitForFinish = (nodeRequest: Http.ClientRequest, request: HttpClientRequest) =>
555 Effect.callback<void, Error.HttpClientError>((resume) => {

Callers 1

NodeHttpClient.tsFile · 0.85

Calls 2

onMethod · 0.65
syncMethod · 0.45

Tested by

no test coverage detected