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

Function onFromServer

packages/effect/src/unstable/rpc/RpcServer.ts:535–572  ·  view source on GitHub ↗
(response)

Source from the content-addressed store, hash-verified

533 disableClientAcks: !supportsAck,
534 disableSpanPropagation: !supportsSpanPropagation,
535 onFromServer(response): Effect.Effect<void> {
536 const client = clients.get(response.clientId)
537 if (!client) return Effect.void
538 switch (response._tag) {
539 case "Chunk": {
540 const schemas = client.schemas.get(response.requestId)
541 if (!schemas) return Effect.void
542 return handleEncode(
543 client,
544 response.requestId,
545 schemas.encodeDefect,
546 schemas.collector,
547 Effect.provideContext(schemas.encodeChunk(response.values), schemas.context),
548 (values) => ({ _tag: "Chunk", requestId: response.requestId, values })
549 )
550 }
551 case "Exit": {
552 const schemas = client.schemas.get(response.requestId)
553 if (!schemas) return Effect.void
554 client.schemas.delete(response.requestId)
555 return handleEncode(
556 client,
557 response.requestId,
558 schemas.encodeDefect,
559 schemas.collector,
560 Effect.provideContext(schemas.encodeExit(response.exit), schemas.context),
561 (exit) => ({ _tag: "Exit", requestId: response.requestId, exit })
562 )
563 }
564 case "Defect": {
565 return sendDefect(client, response.defect)
566 }
567 case "ClientEnd": {
568 clients.delete(response.clientId)
569 return end(response.clientId)
570 }
571 }
572 }
573 }).pipe(Scope.provide(scope))
574
575 // handle disconnects

Callers

nothing calls this directly

Calls 4

handleEncodeFunction · 0.85
sendDefectFunction · 0.85
endFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected