From f31e589e97003b50ed1fbb1132443ea9e2a007ed Mon Sep 17 00:00:00 2001 From: Roland Szoke Date: Thu, 19 Sep 2019 13:40:59 +0200 Subject: [PATCH] Task_1_Done --- package-lock.json | 16 ---------------- package.json | 1 - src/apollo.js | 35 +++++++++++++++++++++++++++++++---- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index ee8e9b6..e2a640f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1868,22 +1868,6 @@ "normalize-path": "^2.1.1" } }, - "apollo-boost": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.4.4.tgz", - "integrity": "sha512-ASngBvazmp9xNxXfJ2InAzfDwz65o4lswlEPrWoN35scXmCz8Nz4k3CboUXbrcN/G0IExkRf/W7o9Rg0cjEBqg==", - "requires": { - "apollo-cache": "^1.3.2", - "apollo-cache-inmemory": "^1.6.3", - "apollo-client": "^2.6.4", - "apollo-link": "^1.0.6", - "apollo-link-error": "^1.0.3", - "apollo-link-http": "^1.3.1", - "graphql-tag": "^2.4.2", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3" - } - }, "apollo-cache": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.2.tgz", diff --git a/package.json b/package.json index 5641314..461eb2f 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,6 @@ "dependencies": { "@apollo/react-components": "^3.1.1", "@apollo/react-hooks": "^3.1.0", - "apollo-boost": "^0.4.4", "apollo-cache-inmemory": "^1.6.3", "apollo-client": "^2.6.4", "apollo-link": "^1.2.13", diff --git a/src/apollo.js b/src/apollo.js index fded694..580620f 100644 --- a/src/apollo.js +++ b/src/apollo.js @@ -1,8 +1,35 @@ -import ApolloClient from 'apollo-boost'; +import { ApolloClient } from 'apollo-client'; +import { InMemoryCache } from 'apollo-cache-inmemory'; +import { HttpLink } from 'apollo-link-http'; +import { onError } from 'apollo-link-error'; +import { ApolloLink } from 'apollo-link'; -// TODO: TASK 1. migrate from apollo-boost +const globalLoader = new ApolloLink((operation, forward) => { + // Use Mobx or Redux (or other) for a global state manager + console.log('increment loading count'); + return forward(operation).map((response) => { + console.log('decrement loading count'); + return response; + }); +}); export default new ApolloClient({ - uri: 'http://localhost:8000/graphql', - credentials: 'same-origin', + link: ApolloLink.from([ + onError(({ graphQLErrors, networkError }) => { + if (graphQLErrors) { + graphQLErrors.forEach(({ message, locations, path }) => ( + console.log(`[GraphQL error]: Message: ${message}, Location: ${JSON.stringify(locations)}, Path: ${path}`) + )); + } + if (networkError) { + console.log(`[Network error]: ${networkError}`); + } + }), + globalLoader, + new HttpLink({ + uri: 'http://localhost:8000/graphql', + credentials: 'same-origin', + }), + ]), + cache: new InMemoryCache(), });