@usekana/client-kana-js
Version:
Kana frontend JavaScript client
22 lines (17 loc) • 722 B
text/typescript
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<string, string> = {
['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 }));
};