Files
automatisch/packages/web/src/graphql/client.ts

31 lines
694 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;