import ApolloClient, { Operation } from 'apollo-boost'
const client = new ApolloClient({
uri: 'http://localhost:4000/graphql',
})
export default client
import React from 'react'
import { ApolloProvider } from 'react-apollo'
import ReactDOM from 'react-dom'
import client from './apollo'
import App from './App'
ReactDOM.render(
<ApolloProvider client={client}>
<App />
</ApolloProvider>,
document.getElementById('root')
)
import ApolloClient, { Operation } from 'apollo-boost'
const client = new ApolloClient({
clientState: {
defaults: {
auth: {
__typename: 'Auth',
isLoggedIn: Boolean(localStorage.getItem('authToken')),
},
},
resolvers: {
Mutation: {
logUserIn: (_, { token }, { cache }) => {
localStorage.setItem('authToken', token)
cache.writeData({
data: {
auth: {
__typename: 'Auth',
isLoggedIn: true,
},
},
})
return null
},
logUserOut: (_, __, { cache }) => {
localStorage.removeItem('authToken')
cache.writeData({
data: {
auth: {
__typename: 'Auth',
isLoggedIn: false,
},
},
})
return null
},
},
},
},
request: async (operation: Operation) => {
operation.setContext({
headers: {
'X-User-Token': localStorage.getItem('authToken') || '',
},
})
},
uri: 'http://localhost:4000/graphql',
})
export default client