import { env as environment } from '../config/env'; import { getToken } from '../config/token'; import { ApolloClient, InMemoryCache } from '@apollo/client/core'; type Parameters_ = { token: null | string | undefined }; export function createApolloClient(parameters?: Parameters_) { return new ApolloClient({ cache: new InMemoryCache(), headers: parameters?.token ? { Authorization: `Bearer ${parameters.token}`, } : undefined, uri: environment.URL_GRAPHQL, }); } export async function getClientWithToken() { const token = await getToken(); return createApolloClient({ token }); }