getFromInstance static method

Future<GraphQLClient> getFromInstance(
  1. dynamic instance
)

Get the GraphQL client from parent instance

Implementation

static Future<GraphQLClient> getFromInstance(dynamic instance) async {
  GraphQLClient? client;
  Duration? timeout;

  /// Get client with auth or without
  if (instance is GraphqlAuthenticate) {
    client = await GraphqlConfig.withAuth?.call();
  } else {
    client = await GraphqlConfig.withoutAuth?.call();
  }

  /// GraphQL client not found
  if (client == null) throw GraphqlClientNotFound();

  /// Custom timeout duration
  if (instance case GraphqlTimeout graphqlTimeout) {
    timeout = graphqlTimeout.duration;
  } else {
    timeout = client.queryManager.requestTimeout;
  }

  return GraphQLClient(
    link: client.link,
    cache: client.cache,
    defaultPolicies: client.defaultPolicies,
    queryRequestTimeout: timeout ?? defaultTimeout,
  );
}