FreshLink<T> constructor

FreshLink<T>({
  1. required TokenStorage<T> tokenStorage,
  2. required RefreshToken<T?> refreshToken,
  3. required ShouldRefresh shouldRefresh,
  4. TokenHeaderBuilder<T?>? tokenHeader,
})

A GraphQL Link which handles manages an authentication token automatically.

A constructor that returns a Fresh interceptor that uses the OAuth2Token token, the standard token class and define the` tokenHeader as 'authorization': '${token.tokenType} ${token.accessToken}'

final freshLink = FreshLink(
  tokenStorage: InMemoryTokenStorage(),
  refreshToken: (token, client) {
    // Perform refresh and return new token
  },
);
final graphQLClient = GraphQLClient(
  cache: InMemoryCache(),
  link: Link.from([freshLink, HttpLink(uri: 'https://my.graphql.api')]),
);

Implementation

FreshLink({
  required TokenStorage<T> tokenStorage,
  required RefreshToken<T?> refreshToken,
  required ShouldRefresh shouldRefresh,
  TokenHeaderBuilder<T?>? tokenHeader,
})  : _refreshToken = refreshToken,
      _tokenHeader = (tokenHeader ?? (_) => <String, String>{}),
      _shouldRefresh = shouldRefresh {
  this.tokenStorage = tokenStorage;
}