twitch-graphql
Version:
A graphql wrapper for the Twitch API.
34 lines (28 loc) • 868 B
text/typescript
import { createModule, gql } from 'graphql-modules'
import { ApiClient } from 'twitch'
import RefreshToken from '../helpers/RefreshToken'
import { Chat } from './chat-pubsub-type-schema'
export const ChatUserLinkResolvers = {
Chat: {
user: async (
chat: Chat,
_args: any,
{ user_id, secret, refresh_token }: GraphQLModules.Context
) => {
const authProvider = await RefreshToken(user_id, secret, refresh_token)
const twitchClient = new ApiClient({ authProvider, preAuth: true })
return twitchClient.helix.users.getUserByName(chat.displayName)
},
},
}
export const ChatUserLinkSchema = gql`
extend type Chat {
user: User
}
`
export const ChatUserLinkModule = createModule({
id: `chat-pubsub-user-link-module`,
dirname: __dirname,
typeDefs: ChatUserLinkSchema,
resolvers: ChatUserLinkResolvers,
})