Я пытаюсь использовать подписки на моем сервере GraphQL.Проблема, с которой я сталкиваюсь, заключается в том, что у меня не может быть и промежуточного программного обеспечения для извлечения JWT, и PubSub при инициализации GraphQLServer.
Вот что у меня есть:
const server = new GraphQLServer({
schema,
context: ({request}) => extractJWT(request),
});
Иэто прекрасно работает с этим:
@Mutation(returns => User)
public async findUser(
@Ctx() context: IContext,
@PubSub() pubsub: PubSubEngine,
) {
const user = await User.findById(context.tokenData.userId)
pubsub.publish('user', { user })
return user
}
Но если я зарегистрирую PubSub в контексте инициализации GraphQLServer и изменим свой код на приведенный ниже, я больше не смогу получить доступ к тому, что есть в моем @Ctxдекораторы.
const pubSub = new PubSub();
const server = new GraphQLServer({
schema,
context: {
ctx: ({request}) => extractJWT(request),
pubSub
},
});
Как правильно инициализировать мой GraphQLServer с использованием промежуточного программного обеспечения для извлечения JWT и PubSub?