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

Function applyMiddleware

packages/effect/src/unstable/rpc/RpcServer.ts:464–481  ·  view source on GitHub ↗
(
  context: Context.Context<never>,
  handler: Effect.Effect<A, E, R>,
  options: {
    readonly rpc: Rpc.AnyWithProps
    readonly client: Rpc.ServerClient
    readonly requestId: RequestId
    readonly headers: Headers.Headers
    readonly payload: unknown
  }
)

Source from the content-addressed store, hash-verified

462})
463
464const applyMiddleware = <A, E, R>(
465 context: Context.Context<never>,
466 handler: Effect.Effect<A, E, R>,
467 options: {
468 readonly rpc: Rpc.AnyWithProps
469 readonly client: Rpc.ServerClient
470 readonly requestId: RequestId
471 readonly headers: Headers.Headers
472 readonly payload: unknown
473 }
474) => {
475 for (const service of options.rpc.middlewares) {
476 const middleware = Context.getUnsafe(context, service)
477 handler = middleware(handler as any, options) as any
478 }
479
480 return handler
481}
482
483/**
484 * Runs an RPC server for a group using the current server `Protocol`, decoding

Callers 1

handleRequestFunction · 0.70

Calls 2

getUnsafeMethod · 0.80
middlewareFunction · 0.70

Tested by

no test coverage detected