MCPcopy
hub / github.com/Effect-TS/effect / handleEncode

Function handleEncode

packages/rpc/src/RpcServer.ts:588–606  ·  view source on GitHub ↗
(
    client: Client,
    requestId: RequestId,
    encodeDefect: (u: unknown) => Effect.Effect<unknown, ParseError>,
    collector: Transferable.CollectorService | undefined,
    effect: Effect.Effect<A, ParseError, R>,
    onSuccess: (a: A) => FromServerEncoded
  )

Source from the content-addressed store, hash-verified

586 const clients = new Map<number, Client>()
587
588 const handleEncode = <A, R>(
589 client: Client,
590 requestId: RequestId,
591 encodeDefect: (u: unknown) => Effect.Effect<unknown, ParseError>,
592 collector: Transferable.CollectorService | undefined,
593 effect: Effect.Effect<A, ParseError, R>,
594 onSuccess: (a: A) => FromServerEncoded
595 ) =>
596 (collector ? Effect.provideService(effect, Transferable.Collector, collector) : effect).pipe(
597 Effect.flatMap((a) => send(client.id, onSuccess(a), collector && collector.unsafeClear())),
598 Effect.catchAllCause((cause) => {
599 client.schemas.delete(requestId)
600 const defect = Cause.squash(Cause.map(cause, TreeFormatter.formatErrorSync))
601 return Effect.zipRight(
602 sendRequestDefect(client, requestId, encodeDefect, defect),
603 server.write(client.id, { _tag: "Interrupt", requestId, interruptors: [] })
604 )
605 })
606 )
607
608 const encodeDefect = Schema.encodeSync(Schema.Defect)
609

Callers 1

onFromServerFunction · 0.85

Calls 6

sendRequestDefectFunction · 0.85
sendFunction · 0.70
pipeMethod · 0.65
mapMethod · 0.65
writeMethod · 0.65
onSuccessFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…