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

Function getRpcClientMiddleware

packages/rpc/src/RpcClient.ts:490–517  ·  view source on GitHub ↗
(rpc: Rpc.AnyWithProps)

Source from the content-addressed store, hash-verified

488 })
489
490 const getRpcClientMiddleware = (rpc: Rpc.AnyWithProps): (request: Request<Rpcs>) => Effect.Effect<Request<Rpcs>> => {
491 const middlewares: Array<RpcMiddleware.RpcMiddlewareClient> = []
492 for (const tag of rpc.middlewares.values()) {
493 const middleware = context.unsafeMap.get(`${tag.key}/Client`)
494 if (!middleware) continue
495 middlewares.push(middleware)
496 }
497 return middlewares.length === 0
498 ? Effect.succeed
499 : function(request) {
500 let i = 0
501 return Effect.map(
502 Effect.whileLoop({
503 while: () => i < middlewares.length,
504 body: () =>
505 middlewares[i]({
506 rpc,
507 request
508 }) as Effect.Effect<Request<Rpcs>>,
509 step(nextRequest) {
510 request = nextRequest
511 i++
512 }
513 }),
514 () => request
515 )
516 }
517 }
518
519 const sendInterrupt = (
520 requestId: RequestId,

Callers 1

onRequestFunction · 0.85

Calls 3

getMethod · 0.65
mapMethod · 0.65
valuesMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…