import { env as environment } from '../config/env'; import { getToken } from '../config/token'; import { createLink } from './link'; import { ApolloClient, InMemoryCache } from '@apollo/client/core'; type Parameters = { token: null | string | undefined }; export function createApolloClient(parameters?: Parameters) { return new ApolloClient({ cache: new InMemoryCache(), link: createLink({ token: parameters?.token, uri: environment.URL_GRAPHQL_CACHED, }), }); } export async function getClientWithToken() { const token = await getToken(); return createApolloClient({ token }); }