diff options
| author | Wes Bos <wesbos@gmail.com> | 2018-03-22 21:11:15 -0400 |
|---|---|---|
| committer | Wes Bos <wesbos@gmail.com> | 2018-03-22 21:11:15 -0400 |
| commit | 169b0953ad91f22bb3b2bf2d80d87ebfbe30d45d (patch) | |
| tree | e66454fb1055440996ae01cb980394d84715bf59 /frontend/lib | |
| parent | a6af043686e4375d7944e91cae3d5b63c59edab0 (diff) | |
yay
Diffstat (limited to 'frontend/lib')
| -rw-r--r-- | frontend/lib/catchError.js | 8 | ||||
| -rw-r--r-- | frontend/lib/initApollo-OLD.js | 92 |
2 files changed, 0 insertions, 100 deletions
diff --git a/frontend/lib/catchError.js b/frontend/lib/catchError.js deleted file mode 100644 index 581d2f3..0000000 --- a/frontend/lib/catchError.js +++ /dev/null @@ -1,8 +0,0 @@ -const catchError = function(fn) { - return (...args) => - fn(...args).catch(error => { - this.setState({ error }); - }); -}; - -export default catchError; 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; -} |
