fix unauthenticated (#2203)

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Tom Avalexing
2023-10-24 09:54:45 +03:00
committed by GitHub
parent 2b590a1c33
commit 80d558559f

View File

@ -3,6 +3,7 @@ import {
ApolloClient,
ApolloClientOptions,
ApolloLink,
fromPromise,
ServerError,
ServerParseError,
} from '@apollo/client';
@ -22,8 +23,6 @@ import { loggerLink } from '../utils';
const logger = loggerLink(() => 'Twenty');
let isRefreshing = false;
export interface Options<TCacheShape> extends ApolloClientOptions<TCacheShape> {
onError?: (err: GraphQLErrors | undefined) => void;
onNetworkError?: (err: Error | ServerParseError | ServerError) => void;
@ -78,7 +77,6 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
retryIf: (error) => !!error,
},
});
const errorLink = onError(
({ graphQLErrors, networkError, forward, operation }) => {
if (graphQLErrors) {
@ -87,22 +85,15 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
for (const graphQLError of graphQLErrors) {
switch (graphQLError?.extensions?.code) {
case 'UNAUTHENTICATED': {
if (!isRefreshing) {
isRefreshing = true;
return fromPromise(
renewToken(uri, this.tokenPair)
.then((tokens) => {
onTokenPairChange?.(tokens);
return true;
})
.catch(() => {
onUnauthenticatedError?.();
return false;
})
.finally(() => {
isRefreshing = false;
});
}
return forward(operation);
}),
).flatMap(() => forward(operation));
}
default:
if (isDebugMode) {