@@ -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}
2857GraphQLClient 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+ ///
55109GraphQLClient 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