Files
daddy/client/src/gql/client.tsx

20 lines
717 B
TypeScript
Raw Normal View History

2020-07-21 22:25:39 +02:00
import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client';
import { Config } from '../config';
import { WebSocketLink } from "@apollo/client/link/ws";
import { RetryLink } from "@apollo/client/link/retry";
import { SubscriptionClient } from "subscriptions-transport-ws";
const subscriptionClient = new SubscriptionClient(Config.subscriptionEndpoint, {
2020-07-22 09:18:50 +02:00
reconnect: true,
2020-07-21 22:25:39 +02:00
});
2020-07-22 09:18:50 +02:00
const link = new RetryLink({attempts: {max: 2}}).split(
2020-07-21 22:25:39 +02:00
(operation) => operation.operationName === 'subscription',
new WebSocketLink(subscriptionClient),
new HttpLink({ uri: Config.graphQLEndpoint, credentials: 'include' })
);
export const client = new ApolloClient<any>({
cache: new InMemoryCache(),
link: link,
});