#node.js #typescript #graphql #typegraphql
#node.js #typescript #graphql #typegraphql
Вопрос:
Я пытаюсь использовать подписки на моем сервере 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?