rsnext/examples/with-apollo/lib/initClient.js

28 lines
640 B
JavaScript
Raw Normal View History

import ApolloClient, { createNetworkInterface } from 'apollo-client'
let apolloClient = null
function createClient (headers) {
return new ApolloClient({
ssrMode: !process.browser,
headers,
dataIdFromObject: result => result.id || null,
networkInterface: createNetworkInterface({
uri: 'https://api.graph.cool/simple/v1/cixmkt2ul01q00122mksg82pn',
opts: {
credentials: 'same-origin'
}
})
})
}
export const initClient = (headers) => {
if (!process.browser) {
return createClient(headers)
}
if (!apolloClient) {
apolloClient = createClient(headers)
}
return apolloClient
}