From 7862d5acbfaab4c11ff201d28f2ccb50894ed831 Mon Sep 17 00:00:00 2001 From: Takeru Chuganji Date: Fri, 14 Jun 2024 18:43:11 +0900 Subject: [PATCH 1/3] Make variables in WatchOptions optional --- .../graphql_codegen/lib/src/printer/clients/graphql.dart | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/graphql_codegen/lib/src/printer/clients/graphql.dart b/packages/graphql_codegen/lib/src/printer/clients/graphql.dart index c02fdfcc..12eab417 100644 --- a/packages/graphql_codegen/lib/src/printer/clients/graphql.dart +++ b/packages/graphql_codegen/lib/src/printer/clients/graphql.dart @@ -594,7 +594,6 @@ Spec printWatchOptions( printOptionsParameter( 'variables', c.namePrinter.printVariableClassName(context.path), - isRequired: context.isVariablesRequired, ), printOptionsParameter( 'fetchPolicy', @@ -642,9 +641,7 @@ Spec printWatchOptions( ) ..initializers = ListBuilder([ refer('super').call([], { - if (hasVariables && context.isVariablesRequired) - 'variables': refer('variables').property('toJson').call([]) - else if (hasVariables) + if (hasVariables) 'variables': refer('variables') .nullSafeProperty('toJson') .call([]).ifNullThen(literalMap({})), From 817240b71cffb2ce9cd0d0c9e03cb0783ea1710c Mon Sep 17 00:00:00 2001 From: Takeru Chuganji Date: Fri, 14 Jun 2024 18:54:42 +0900 Subject: [PATCH 2/3] Make `useWatch`'s option optional --- .../lib/src/printer/clients/graphql_flutter.dart | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/graphql_codegen/lib/src/printer/clients/graphql_flutter.dart b/packages/graphql_codegen/lib/src/printer/clients/graphql_flutter.dart index 802ef5c3..2427b344 100644 --- a/packages/graphql_codegen/lib/src/printer/clients/graphql_flutter.dart +++ b/packages/graphql_codegen/lib/src/printer/clients/graphql_flutter.dart @@ -365,24 +365,20 @@ Spec printMutationHook(PrintContext context) { } Spec printWatchHook(PrintContext context, String libraryHookName) { - final isOptionsRequried = context.context.isVariablesRequired; final parameter = Parameter( (b) => b ..type = TypeReference( (b) => b ..symbol = context.namePrinter .printGraphQLClientWatchOptionsName(context.path) - ..isNullable = !isOptionsRequried, + ..isNullable = true, ) ..name = 'options', ); return Method( (b) => b - ..requiredParameters = ListBuilder([ - if (isOptionsRequried) parameter, - ]) ..optionalParameters = ListBuilder([ - if (!isOptionsRequried) parameter, + parameter, ]) ..returns = TypeReference( (b) => b @@ -393,11 +389,9 @@ Spec printWatchHook(PrintContext context, String libraryHookName) { ..name = context.namePrinter .printGraphQLFlutterClientWatchHookName(context.path) ..body = refer('graphql_flutter').property(libraryHookName).call([ - isOptionsRequried - ? refer('options') - : refer('options').ifNullThen(refer(context.namePrinter - .printGraphQLClientWatchOptionsName(context.path)) - .newInstance([])) + refer('options').ifNullThen(refer(context.namePrinter + .printGraphQLClientWatchOptionsName(context.path)) + .newInstance([])) ]).code, ); } From ea32f77414aec3bfb582bddd7bb9e9a8b0f86413 Mon Sep 17 00:00:00 2001 From: Takeru Chuganji Date: Fri, 14 Jun 2024 18:54:56 +0900 Subject: [PATCH 3/3] Update test --- .../graphql_codegen/example/lib/main.graphql.dart | 12 ++++++------ .../assets/fragment_variables_2/schema.graphql.dart | 4 ++-- .../test/assets/graphql_client/document.graphql.dart | 8 ++++---- .../document.graphql.dart | 9 +++++---- .../document.graphql.dart | 9 +++++---- .../schema.graphql.dart | 4 ++-- 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/packages/graphql_codegen/example/lib/main.graphql.dart b/packages/graphql_codegen/example/lib/main.graphql.dart index 6e03b884..223a860d 100644 --- a/packages/graphql_codegen/example/lib/main.graphql.dart +++ b/packages/graphql_codegen/example/lib/main.graphql.dart @@ -388,7 +388,7 @@ class WatchOptions$Query$FetchPerson extends graphql.WatchQueryOptions { WatchOptions$Query$FetchPerson({ String? operationName, - required Variables$Query$FetchPerson variables, + Variables$Query$FetchPerson? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -400,7 +400,7 @@ class WatchOptions$Query$FetchPerson bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy, @@ -466,8 +466,8 @@ graphql_flutter.QueryHookResult useQuery$FetchPerson( Options$Query$FetchPerson options) => graphql_flutter.useQuery(options); graphql.ObservableQuery useWatchQuery$FetchPerson( - WatchOptions$Query$FetchPerson options) => - graphql_flutter.useWatchQuery(options); + [WatchOptions$Query$FetchPerson? options]) => + graphql_flutter.useWatchQuery(options ?? WatchOptions$Query$FetchPerson()); class Query$FetchPerson$Widget extends graphql_flutter.Query { @@ -1566,7 +1566,7 @@ class WatchOptions$Mutation$UpdatePerson extends graphql.WatchQueryOptions { WatchOptions$Mutation$UpdatePerson({ String? operationName, - required Variables$Mutation$UpdatePerson variables, + Variables$Mutation$UpdatePerson? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -1578,7 +1578,7 @@ class WatchOptions$Mutation$UpdatePerson bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy, diff --git a/packages/graphql_codegen/test/assets/fragment_variables_2/schema.graphql.dart b/packages/graphql_codegen/test/assets/fragment_variables_2/schema.graphql.dart index ff2811cc..e8807014 100644 --- a/packages/graphql_codegen/test/assets/fragment_variables_2/schema.graphql.dart +++ b/packages/graphql_codegen/test/assets/fragment_variables_2/schema.graphql.dart @@ -802,7 +802,7 @@ class Options$Query$Q extends graphql.QueryOptions { class WatchOptions$Query$Q extends graphql.WatchQueryOptions { WatchOptions$Query$Q({ String? operationName, - required Variables$Query$Q variables, + Variables$Query$Q? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -814,7 +814,7 @@ class WatchOptions$Query$Q extends graphql.WatchQueryOptions { bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy, diff --git a/packages/graphql_codegen/test/assets/graphql_client/document.graphql.dart b/packages/graphql_codegen/test/assets/graphql_client/document.graphql.dart index cc1c8465..c26c38d9 100644 --- a/packages/graphql_codegen/test/assets/graphql_client/document.graphql.dart +++ b/packages/graphql_codegen/test/assets/graphql_client/document.graphql.dart @@ -1475,7 +1475,7 @@ class WatchOptions$Query$FetchSRequired extends graphql.WatchQueryOptions { WatchOptions$Query$FetchSRequired({ String? operationName, - required Variables$Query$FetchSRequired variables, + Variables$Query$FetchSRequired? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -1487,7 +1487,7 @@ class WatchOptions$Query$FetchSRequired bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy, @@ -2389,7 +2389,7 @@ class WatchOptions$Mutation$UpdateSRequired extends graphql.WatchQueryOptions { WatchOptions$Mutation$UpdateSRequired({ String? operationName, - required Variables$Mutation$UpdateSRequired variables, + Variables$Mutation$UpdateSRequired? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -2401,7 +2401,7 @@ class WatchOptions$Mutation$UpdateSRequired bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy, diff --git a/packages/graphql_codegen/test/assets/graphql_flutter_client_mutation_required_arguments/document.graphql.dart b/packages/graphql_codegen/test/assets/graphql_flutter_client_mutation_required_arguments/document.graphql.dart index d91f92b1..a849ba69 100644 --- a/packages/graphql_codegen/test/assets/graphql_flutter_client_mutation_required_arguments/document.graphql.dart +++ b/packages/graphql_codegen/test/assets/graphql_flutter_client_mutation_required_arguments/document.graphql.dart @@ -464,7 +464,7 @@ class WatchOptions$Mutation$UpdateSRequired extends graphql.WatchQueryOptions { WatchOptions$Mutation$UpdateSRequired({ String? operationName, - required Variables$Mutation$UpdateSRequired variables, + Variables$Mutation$UpdateSRequired? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -476,7 +476,7 @@ class WatchOptions$Mutation$UpdateSRequired bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy, @@ -529,8 +529,9 @@ Mutation$UpdateSRequired$HookResult useMutation$UpdateSRequired( graphql.ObservableQuery useWatchMutation$UpdateSRequired( - WatchOptions$Mutation$UpdateSRequired options) => - graphql_flutter.useWatchMutation(options); + [WatchOptions$Mutation$UpdateSRequired? options]) => + graphql_flutter.useWatchMutation( + options ?? WatchOptions$Mutation$UpdateSRequired()); class WidgetOptions$Mutation$UpdateSRequired extends graphql.MutationOptions { diff --git a/packages/graphql_codegen/test/assets/graphql_flutter_client_query_required_arguments/document.graphql.dart b/packages/graphql_codegen/test/assets/graphql_flutter_client_query_required_arguments/document.graphql.dart index c0107d11..bb76515e 100644 --- a/packages/graphql_codegen/test/assets/graphql_flutter_client_query_required_arguments/document.graphql.dart +++ b/packages/graphql_codegen/test/assets/graphql_flutter_client_query_required_arguments/document.graphql.dart @@ -458,7 +458,7 @@ class WatchOptions$Query$FetchSRequired extends graphql.WatchQueryOptions { WatchOptions$Query$FetchSRequired({ String? operationName, - required Variables$Query$FetchSRequired variables, + Variables$Query$FetchSRequired? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -470,7 +470,7 @@ class WatchOptions$Query$FetchSRequired bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy, @@ -537,8 +537,9 @@ graphql_flutter.QueryHookResult useQuery$FetchSRequired( Options$Query$FetchSRequired options) => graphql_flutter.useQuery(options); graphql.ObservableQuery useWatchQuery$FetchSRequired( - WatchOptions$Query$FetchSRequired options) => - graphql_flutter.useWatchQuery(options); + [WatchOptions$Query$FetchSRequired? options]) => + graphql_flutter + .useWatchQuery(options ?? WatchOptions$Query$FetchSRequired()); class Query$FetchSRequired$Widget extends graphql_flutter.Query { diff --git a/packages/graphql_codegen/test/assets/graphql_flutter_client_subscription/schema.graphql.dart b/packages/graphql_codegen/test/assets/graphql_flutter_client_subscription/schema.graphql.dart index e07ebea6..a0e0afef 100644 --- a/packages/graphql_codegen/test/assets/graphql_flutter_client_subscription/schema.graphql.dart +++ b/packages/graphql_codegen/test/assets/graphql_flutter_client_subscription/schema.graphql.dart @@ -908,7 +908,7 @@ class WatchOptions$Subscription$RequiredArg extends graphql.WatchQueryOptions { WatchOptions$Subscription$RequiredArg({ String? operationName, - required Variables$Subscription$RequiredArg variables, + Variables$Subscription$RequiredArg? variables, graphql.FetchPolicy? fetchPolicy, graphql.ErrorPolicy? errorPolicy, graphql.CacheRereadPolicy? cacheRereadPolicy, @@ -920,7 +920,7 @@ class WatchOptions$Subscription$RequiredArg bool carryForwardDataOnException = true, bool fetchResults = false, }) : super( - variables: variables.toJson(), + variables: variables?.toJson() ?? {}, operationName: operationName, fetchPolicy: fetchPolicy, errorPolicy: errorPolicy,