webapp/src/graphql/createGraphQLClient.ts
2024-02-04 14:25:21 +03:00

22 lines
655 B
TypeScript

import { ClientOptions, Exchange, createClient, dedupExchange, fetchExchange } from '@urql/core'
import { devtoolsExchange } from '@urql/devtools'
import { isDev } from '../utils/config'
const exchanges: Exchange[] = [dedupExchange, fetchExchange]
if (isDev) {
exchanges.unshift(devtoolsExchange)
}
export const createGraphQLClient = (serviceName: string, token = '') => {
const options: ClientOptions = {
url: `https://${serviceName}.discours.io`,
maskTypename: true,
requestPolicy: 'cache-and-network',
fetchOptions: () => (token ? { headers: { Authorization: token } } : {}),
exchanges,
}
return createClient(options)
}