41 lines
960 B
TypeScript
41 lines
960 B
TypeScript
|
|
import {
|
||
|
|
ApolloClient,
|
||
|
|
InMemoryCache,
|
||
|
|
ApolloLink,
|
||
|
|
HttpLink,
|
||
|
|
} from "@apollo/client";
|
||
|
|
import { onError } from "@apollo/client/link/error";
|
||
|
|
|
||
|
|
const errorLink = onError(
|
||
|
|
({ operation, graphQLErrors, networkError, forward }) => {
|
||
|
|
console.log("ERROR LINK", operation);
|
||
|
|
if (graphQLErrors)
|
||
|
|
graphQLErrors.map(({ message, locations, path, ...rest }) =>
|
||
|
|
console.log(
|
||
|
|
`[GraphQL error]: Message: ${message}`,
|
||
|
|
locations,
|
||
|
|
path,
|
||
|
|
rest
|
||
|
|
)
|
||
|
|
);
|
||
|
|
if (networkError) console.log(`[Network error]: ${networkError}`);
|
||
|
|
forward(operation);
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
export const apolloClient = new ApolloClient({
|
||
|
|
link: ApolloLink.from([errorLink, new HttpLink({ uri: "/graphql" })]),
|
||
|
|
cache: new InMemoryCache(),
|
||
|
|
/*
|
||
|
|
defaultOptions: {
|
||
|
|
watchQuery: {
|
||
|
|
fetchPolicy: "no-cache",
|
||
|
|
errorPolicy: "ignore",
|
||
|
|
},
|
||
|
|
query: {
|
||
|
|
fetchPolicy: "no-cache",
|
||
|
|
errorPolicy: "all",
|
||
|
|
},
|
||
|
|
},*/
|
||
|
|
});
|