storj/web/satellite/src/utils/apolloManager.ts

33 lines
977 B
TypeScript
Raw Normal View History

// Copyright (C) 2018 Storj Labs, Inc.
// See LICENSE for copying information.
import {HttpLink} from "apollo-link-http";
import ApolloClient from "apollo-client/ApolloClient";
import {InMemoryCache} from "apollo-cache-inmemory";
import { setContext } from "apollo-link-context";
import { getToken } from "../utils/tokenManager"
// Satellite url
const satelliteUrl = new HttpLink({
uri: 'http://localhost:8081/api/graphql/v0',
});
// Adding auth headers
const authLink = setContext((_, { headers }) => {
// get the authentication token from local storage if it exists
const token = getToken();
// return the headers to the context so httpLink can read them
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : "",
}
}
});
// Creating apollo client
export default new ApolloClient({
link: authLink.concat(satelliteUrl),
cache: new InMemoryCache(),
connectToDevTools: true,
});