33 lines
699 B
TypeScript
33 lines
699 B
TypeScript
import { ApolloClient } from '@apollo/client';
|
|
import cache from './cache';
|
|
import createLink from './link';
|
|
import appConfig from 'config/app';
|
|
|
|
type CreateClientOptions = {
|
|
onError?: (message: string) => void;
|
|
token?: string | null;
|
|
};
|
|
|
|
const client = new ApolloClient({
|
|
cache,
|
|
link: createLink({ uri: appConfig.graphqlUrl }),
|
|
defaultOptions: {
|
|
watchQuery: {
|
|
fetchPolicy: 'cache-and-network',
|
|
},
|
|
},
|
|
});
|
|
|
|
export function mutateAndGetClient(
|
|
options: CreateClientOptions
|
|
): typeof client {
|
|
const { onError, token } = options;
|
|
const link = createLink({ uri: appConfig.graphqlUrl, token, onError });
|
|
|
|
client.setLink(link);
|
|
|
|
return client;
|
|
}
|
|
|
|
export default client;
|