Skip to content

Commit 6180841

Browse files
committed
fix(graphql): add query timeout argument when create client.
# Conflicts: # packages/graphql/lib/src/core/query_manager.dart # packages/graphql/lib/src/graphql_client.dart
1 parent 59bb1d5 commit 6180841

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

packages/graphql/lib/src/core/query_manager.dart

+5-2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class QueryManager {
3535
this.alwaysRebroadcast = false,
3636
DeepEqualsFn? deepEquals,
3737
bool deduplicatePollers = false,
38+
this.requestTimeout = const Duration(seconds: 5),
3839
}) {
3940
scheduler = QueryScheduler(
4041
queryManager: this,
@@ -51,6 +52,9 @@ class QueryManager {
5152
/// Whether to skip deep equality checks in [maybeRebroadcastQueries]
5253
final bool alwaysRebroadcast;
5354

55+
/// The timeout for resolving a query
56+
final Duration requestTimeout;
57+
5458
QueryScheduler? scheduler;
5559
static final _oneOffOpId = '0';
5660
int idCounter = 1;
@@ -256,8 +260,7 @@ class QueryManager {
256260

257261
try {
258262
// execute the request through the provided link(s)
259-
response =
260-
await link.request(request).timeout(Duration(seconds: 5)).first;
263+
response = await link.request(request).timeout(this.requestTimeout).first;
261264

262265
queryResult = mapFetchResultToQueryResult(
263266
response,

packages/graphql/lib/src/graphql_client.dart

+2
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ class GraphQLClient implements GraphQLDataProxy {
2828
bool alwaysRebroadcast = false,
2929
DeepEqualsFn? deepEquals,
3030
bool deduplicatePollers = false,
31+
Duration queryRequestTimeout = const Duration(seconds: 5),
3132
}) : defaultPolicies = defaultPolicies ?? DefaultPolicies(),
3233
queryManager = QueryManager(
3334
link: link,
3435
cache: cache,
3536
alwaysRebroadcast: alwaysRebroadcast,
3637
deepEquals: deepEquals,
3738
deduplicatePollers: deduplicatePollers,
39+
requestTimeout: queryRequestTimeout,
3840
);
3941

4042
/// The default [Policies] to set for each client action

0 commit comments

Comments
 (0)