I am exploring this library and trying to understand more about graphql spec level. When the server calls publish, I can see it just pass the payload to subscribers via EmitEmitter. But the client side expects a payload which includes a wrapper of the published payload.
For example, if the publisher publishes a payload like:
{
topic: "xx", message: ...
}
what the subscriber receive should be something like:
data: {
event: {
topic: "xx", message: ..., __typename: ...
...
the data top level field is from graphql spec, every payload should be under it. The event is the operation name from graphql schema. The __typename is the type of the schema. I wonder how this logic get added to the response?
I am exploring this library and trying to understand more about graphql spec level. When the server calls
publish, I can see it just pass the payload to subscribers viaEmitEmitter. But the client side expects a payload which includes a wrapper of the published payload.For example, if the publisher publishes a payload like:
what the subscriber receive should be something like:
the
datatop level field is from graphql spec, every payload should be under it. Theeventis the operation name from graphql schema. The__typenameis the type of the schema. I wonder how this logic get added to the response?