Skip to content

Commit 6f92fdc

Browse files
authored
feat: add new package arguments for better control (#176)
* feat: add new package arguments for better control * chore(refactor): remove unnecessary whitespaces
1 parent bbcc862 commit 6f92fdc

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

packages/nhost_graphql_adapter/lib/src/create_client.dart

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,59 @@ import '../nhost_graphql_adapter.dart';
2525
/// requests made by the Nhost APIs, which can be useful for proxy configuration
2626
/// and debugging.
2727
/// {@endtemplate}
28+
///
29+
/// {@template nhost.graphqlClient.defaultPolicies}
30+
/// [defaultPolicies] (optional) default fetch and error policies for queries,
31+
/// mutations, and subscriptions.
32+
/// {@endtemplate}
33+
///
34+
/// {@template nhost.graphqlClient.alwaysRebroadcast}
35+
/// [alwaysRebroadcast] (optional) if true, always rebroadcasts changes to
36+
/// listeners, even if data is unchanged.
37+
/// {@endtemplate}
38+
///
39+
/// {@template nhost.graphqlClient.deepEquals}
40+
/// [deepEquals] (optional) function to compare query results for deep equality.
41+
/// {@endtemplate}
42+
///
43+
/// {@template nhost.graphqlClient.asyncDeepEquals}
44+
/// [asyncDeepEquals] (optional) async function to compare query results for
45+
/// deep equality.
46+
/// {@endtemplate}
47+
///
48+
/// {@template nhost.graphqlClient.deduplicatePollers}
49+
/// [deduplicatePollers] (optional) if true, deduplicates polling queries to
50+
/// avoid duplicate requests.
51+
/// {@endtemplate}
52+
///
53+
/// {@template nhost.graphqlClient.queryRequestTimeout}
54+
/// [queryRequestTimeout] (optional) timeout duration for query requests.
55+
/// Defaults to 1 minute.
56+
/// {@endtemplate}
2857
GraphQLClient createNhostGraphQLClient(
2958
NhostClientBase nhostClient, {
3059
GraphQLCache? gqlCache,
3160
Map<String, String>? defaultHeaders,
3261
http.Client? httpClientOverride,
62+
DefaultPolicies? defaultPolicies,
63+
bool alwaysRebroadcast = false,
64+
DeepEqualsFn? deepEquals,
65+
AsyncDeepEqualsFn? asyncDeepEquals,
66+
bool deduplicatePollers = false,
67+
Duration? queryRequestTimeout = const Duration(minutes: 1),
3368
}) {
3469
return createNhostGraphQLClientForAuth(
3570
nhostClient.gqlEndpointUrl,
3671
nhostClient.auth,
3772
gqlCache: gqlCache,
3873
defaultHeaders: defaultHeaders,
3974
httpClientOverride: httpClientOverride,
75+
defaultPolicies: defaultPolicies,
76+
alwaysRebroadcast: alwaysRebroadcast,
77+
deepEquals: deepEquals,
78+
asyncDeepEquals: asyncDeepEquals,
79+
deduplicatePollers: deduplicatePollers,
80+
queryRequestTimeout: queryRequestTimeout,
4081
);
4182
}
4283

@@ -52,12 +93,31 @@ GraphQLClient createNhostGraphQLClient(
5293
/// {@macro nhost.graphqlClient.defaultHeaders}
5394
///
5495
/// {@macro nhost.graphqlClient.httpClientOverride}
96+
///
97+
/// {@macro nhost.graphqlClient.defaultPolicies}
98+
///
99+
/// {@macro nhost.graphqlClient.alwaysRebroadcast}
100+
///
101+
/// {@macro nhost.graphqlClient.deepEquals}
102+
///
103+
/// {@macro nhost.graphqlClient.asyncDeepEquals}
104+
///
105+
/// {@macro nhost.graphqlClient.deduplicatePollers}
106+
///
107+
/// {@macro nhost.graphqlClient.queryRequestTimeout}
108+
///
55109
GraphQLClient createNhostGraphQLClientForAuth(
56110
String nhostGqlEndpointUrl,
57111
HasuraAuthClient nhostAuth, {
58112
GraphQLCache? gqlCache,
59113
Map<String, String>? defaultHeaders,
60114
http.Client? httpClientOverride,
115+
DefaultPolicies? defaultPolicies,
116+
bool alwaysRebroadcast = false,
117+
DeepEqualsFn? deepEquals,
118+
AsyncDeepEqualsFn? asyncDeepEquals,
119+
bool deduplicatePollers = false,
120+
Duration? queryRequestTimeout = const Duration(minutes: 1),
61121
}) {
62122
return GraphQLClient(
63123
link: combinedLinkForNhostAuth(
@@ -67,5 +127,11 @@ GraphQLClient createNhostGraphQLClientForAuth(
67127
httpClientOverride: httpClientOverride,
68128
),
69129
cache: gqlCache ?? GraphQLCache(),
130+
defaultPolicies: defaultPolicies,
131+
alwaysRebroadcast: alwaysRebroadcast,
132+
deepEquals: deepEquals,
133+
asyncDeepEquals: asyncDeepEquals,
134+
deduplicatePollers: deduplicatePollers,
135+
queryRequestTimeout: queryRequestTimeout,
70136
);
71137
}

0 commit comments

Comments
 (0)