MCPcopy Index your code
hub / github.com/Effect-TS/effect / fromWebHandler

Function fromWebHandler

packages/platform/src/HttpApp.ts:326–355  ·  view source on GitHub ↗
(
  handler: (request: Request) => Promise<Response>
)

Source from the content-addressed store, hash-verified

324 * @category conversions
325 */
326export const fromWebHandler = (
327 handler: (request: Request) => Promise<Response>
328): Default<ServerError.HttpServerError> =>
329 Effect.async((resume, signal) => {
330 const fiber = Option.getOrThrow(Fiber.getCurrentFiber())
331 const request = Context.unsafeGet(fiber.currentContext, ServerRequest.HttpServerRequest)
332 const requestResult = ServerRequest.toWebEither(request, {
333 signal,
334 runtime: Runtime.make({
335 context: fiber.currentContext,
336 fiberRefs: fiber.getFiberRefs(),
337 runtimeFlags: Runtime.defaultRuntimeFlags
338 })
339 })
340 if (requestResult._tag === "Left") {
341 return resume(Effect.fail(requestResult.left))
342 }
343 handler(requestResult.right).then(
344 (response) => resume(Effect.succeed(ServerResponse.fromWeb(response))),
345 (cause) =>
346 resume(Effect.fail(
347 new ServerError.RequestError({
348 cause,
349 request,
350 reason: "Transport",
351 description: "HttpApp.fromWebHandler: Error in handler"
352 })
353 ))
354 )
355 })

Callers

nothing calls this directly

Calls 6

unsafeGetMethod · 0.80
handlerFunction · 0.70
makeMethod · 0.65
getFiberRefsMethod · 0.65
failMethod · 0.65
resumeFunction · 0.50

Tested by

no test coverage detected