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

Function fromWebHandler

packages/effect/src/unstable/http/HttpEffect.ts:375–401  ·  view source on GitHub ↗
(
  handler: (request: Request) => Promise<Response>
)

Source from the content-addressed store, hash-verified

373 * @since 4.0.0
374 */
375export const fromWebHandler = (
376 handler: (request: Request) => Promise<Response>
377): Effect.Effect<HttpServerResponse, HttpServerError, HttpServerRequest> =>
378 Effect.callback((resume, signal) => {
379 const fiber = Fiber.getCurrent()!
380 const request = Context.getUnsafe(fiber.context, HttpServerRequest)
381 const requestResult = Request.toWebResult(request, {
382 signal,
383 context: fiber.context
384 })
385 if (requestResult._tag === "Failure") {
386 return resume(Effect.fail(new HttpServerError({ reason: requestResult.failure })))
387 }
388 handler(requestResult.success).then(
389 (response) => resume(Effect.succeed(Response.fromWeb(response))),
390 (cause) =>
391 resume(Effect.fail(
392 new HttpServerError({
393 reason: new InternalError({
394 cause,
395 request,
396 description: "HttpApp.fromWebHandler: Error in handler"
397 })
398 })
399 ))
400 )
401 })

Callers

nothing calls this directly

Calls 5

getUnsafeMethod · 0.80
handlerFunction · 0.70
resumeFunction · 0.50
failMethod · 0.45
succeedMethod · 0.45

Tested by

no test coverage detected