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

Function toRpcGroup

packages/cluster/src/EntityProxy.ts:47–76  ·  view source on GitHub ↗
(
  entity: Entity.Entity<Type, Rpcs>
)

Source from the content-addressed store, hash-verified

45 * @category Constructors
46 */
47export const toRpcGroup = <Type extends string, Rpcs extends Rpc.Any>(
48 entity: Entity.Entity<Type, Rpcs>
49): RpcGroup.RpcGroup<ConvertRpcs<Rpcs, Type>> => {
50 const rpcs: Array<Rpc.Any> = []
51 for (const parentRpc_ of entity.protocol.requests.values()) {
52 const parentRpc = parentRpc_ as any as Rpc.AnyWithProps
53 const payloadSchema = Schema.Struct({
54 entityId: Schema.String,
55 payload: parentRpc.payloadSchema
56 })
57 const oldMake = payloadSchema.make
58 payloadSchema.make = (input: any, options?: Schema.MakeOptions) => {
59 return oldMake({
60 entityId: input.entityId,
61 payload: parentRpc.payloadSchema.make ? parentRpc.payloadSchema.make(input.payload, options) : input.payload
62 }, options)
63 }
64 const rpc = Rpc.make(`${entity.type}.${parentRpc._tag}`, {
65 payload: payloadSchema,
66 error: Schema.Union(parentRpc.errorSchema, ...clientErrors),
67 success: parentRpc.successSchema
68 }).annotateContext(parentRpc.annotations)
69 const rpcDiscard = Rpc.make(`${entity.type}.${parentRpc._tag}Discard`, {
70 payload: payloadSchema,
71 error: Schema.Union(...clientErrors)
72 }).annotateContext(parentRpc.annotations)
73 rpcs.push(rpc, rpcDiscard)
74 }
75 return RpcGroup.make(...rpcs) as any as RpcGroup.RpcGroup<ConvertRpcs<Rpcs, Type>>
76}
77
78/**
79 * @since 1.0.0

Callers

nothing calls this directly

Calls 3

makeMethod · 0.65
annotateContextMethod · 0.65
valuesMethod · 0.45

Tested by

no test coverage detected