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

Function onFromServer

packages/rpc/src/RpcServer.ts:503–540  ·  view source on GitHub ↗
(response)

Source from the content-addressed store, hash-verified

501 disableClientAcks: !supportsAck,
502 disableSpanPropagation: !supportsSpanPropagation,
503 onFromServer(response): Effect.Effect<void> {
504 const client = clients.get(response.clientId)
505 if (!client) return Effect.void
506 switch (response._tag) {
507 case "Chunk": {
508 const schemas = client.schemas.get(response.requestId)
509 if (!schemas) return Effect.void
510 return handleEncode(
511 client,
512 response.requestId,
513 schemas.encodeDefect,
514 schemas.collector,
515 Effect.provide(schemas.encodeChunk(response.values), schemas.context),
516 (values) => ({ _tag: "Chunk", requestId: String(response.requestId), values })
517 )
518 }
519 case "Exit": {
520 const schemas = client.schemas.get(response.requestId)
521 if (!schemas) return Effect.void
522 client.schemas.delete(response.requestId)
523 return handleEncode(
524 client,
525 response.requestId,
526 schemas.encodeDefect,
527 schemas.collector,
528 Effect.provide(schemas.encodeExit(response.exit), schemas.context),
529 (exit) => ({ _tag: "Exit", requestId: String(response.requestId), exit })
530 )
531 }
532 case "Defect": {
533 return sendDefect(client, response.defect)
534 }
535 case "ClientEnd": {
536 clients.delete(response.clientId)
537 return end(response.clientId)
538 }
539 }
540 }
541 }).pipe(Scope.extend(scope))
542
543 // handle disconnects

Callers

nothing calls this directly

Calls 6

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

Tested by

no test coverage detected