36 lines
988 B
TypeScript
36 lines
988 B
TypeScript
// Copyright (C) 2019 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
import { InMemoryCache } from 'apollo-cache-inmemory';
|
|
import ApolloClient from 'apollo-client/ApolloClient';
|
|
import { setContext } from 'apollo-link-context';
|
|
import { HttpLink } from 'apollo-link-http';
|
|
|
|
import { AuthToken } from '@/utils/authToken';
|
|
|
|
// Satellite url
|
|
const satelliteUrl = new HttpLink({
|
|
uri: process.env.VUE_APP_ENDPOINT_URL,
|
|
});
|
|
|
|
// Adding auth headers
|
|
const authLink = setContext((_, {headers}) => {
|
|
// get the authentication token from local storage if it exists
|
|
const token = AuthToken.get();
|
|
|
|
// return the headers to the context so httpLink can read them
|
|
return {
|
|
headers: {
|
|
...headers,
|
|
authorization: token ? `Bearer ${token}` : '',
|
|
},
|
|
};
|
|
});
|
|
|
|
// Creating apollo client
|
|
export const apollo = new ApolloClient({
|
|
link: authLink.concat(satelliteUrl),
|
|
cache: new InMemoryCache(),
|
|
connectToDevTools: true,
|
|
});
|