From 169b0953ad91f22bb3b2bf2d80d87ebfbe30d45d Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Thu, 22 Mar 2018 21:11:15 -0400 Subject: yay --- frontend/lib/initApollo-OLD.js | 92 ------------------------------------------ 1 file changed, 92 deletions(-) delete mode 100644 frontend/lib/initApollo-OLD.js (limited to 'frontend/lib/initApollo-OLD.js') diff --git a/frontend/lib/initApollo-OLD.js b/frontend/lib/initApollo-OLD.js deleted file mode 100644 index e86c7e1..0000000 --- a/frontend/lib/initApollo-OLD.js +++ /dev/null @@ -1,92 +0,0 @@ -import { ApolloClient } from 'apollo-client'; -import { ApolloLink, from } from 'apollo-link'; -import { HttpLink } from 'apollo-link-http'; -import { InMemoryCache } from 'apollo-cache-inmemory'; -import fetch from 'isomorphic-fetch'; -import { withClientState } from 'apollo-link-state'; -import { endpoint } from '../config'; - -let apolloClient = null; - -// Polyfill fetch() on the server (used by apollo-client) -if (!process.browser) { - global.fetch = fetch; -} - -function create(initialState) { - // Create a new Cache - const cache = new InMemoryCache().restore(initialState || {}); - // First we create three peices of middleware - const stateLink = withClientState({ - cache, - defaults: { - uiData: { - __typename: 'UIData', - isConnected: true, - isCartOpen: false, - }, - }, - resolvers: { - Mutation: { - setLocalData: (_, values, { cache }) => { - const data = { - uiData: { - __typename: 'UIData', - ...values, - }, - }; - cache.writeData({ data }); - return null; - }, - }, - }, - }); - - // 1. Create a link for local state to be managed in Apollo - - // 2. connect to our GraphQL API - const httpLink = new HttpLink({ - uri: endpoint, // Server URL (must be absolute) - opts: { - credentials: 'same-origin', - }, - }); - - // 3. One to tack on our auth token on each request - const authMiddleware = new ApolloLink((operation, forward) => { - const headers = {}; - - if (typeof localStorage !== 'undefined' && localStorage.getItem('token')) { - headers.authorization = `Bearer ${localStorage.getItem('token')}`; - } - - operation.setContext({ headers }); - return forward(operation); - }); - - return new ApolloClient({ - connectToDevTools: process.browser, - ssrMode: !process.browser, // Disables forceFetch on the server (so queries are only run once) - link: from([stateLink, authMiddleware, httpLink]), - cache, - defaultOptions: { - query: { errorPolicy: 'all' }, - mutate: { errorPolicy: 'all' }, - }, - }); -} - -export default function initApollo(initialState) { - // Make sure to create a new client for every server-side request so that data - // isn't shared between connections (which would be bad) - if (!process.browser) { - return create(initialState); - } - - // Reuse client on the client-side - if (!apolloClient) { - apolloClient = create(initialState); - } - - return apolloClient; -} -- cgit v1.3