import { GraphQLClient } from 'graphql-request'; import { getSdk, Sdk } from './graphql/generated/gqlTypes'; import { KanaGroupClientFullConfig } from './KanaGroupClientConfig'; export type GQLSdk = Sdk; export const createGQLSdk = (config: KanaGroupClientFullConfig): GQLSdk => { const headers: Record = { ['X-API-Version']: config.version, ['X-Library-Source']: 'client-js', }; if (config.type === 'GroupToken') { headers['Authorization'] = `Bearer ${config.groupToken}`; } else if (config.type === 'PublicApiKey') { headers['Authorization'] = config.apiKey; headers['X-Group-ID'] = config.groupId; } return getSdk(new GraphQLClient(config.endpoint, { headers })); };