getFromInstance static method
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,
);
}