Skip to content

Commit 4ab9e58

Browse files
committed
prints independent operation name
1 parent b470b16 commit 4ab9e58

File tree

6 files changed

+54
-11
lines changed

6 files changed

+54
-11
lines changed

packages/graphql_codegen/lib/src/printer/base/operation.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ List<Spec> printOperationSpecs(PrintContext<ContextOperation> elementContext) {
1111
final context = elementContext.context;
1212
final operation = context.operation;
1313
final clients = context.config.clients;
14+
1415
return [
1516
if (context.hasVariables) ...printVariableClasses(elementContext),
1617
printContext(elementContext),

packages/graphql_codegen/lib/src/printer/clients/graphql.dart

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ Spec printQueryOptions(PrintContext<ContextOperation> c) {
6868
)
6969
..modifier = FieldModifier.final$,
7070
),
71+
_printOperationNameDefinitionField(c),
7172
])
7273
..methods = ListBuilder([
7374
Method(
@@ -200,12 +201,24 @@ Spec printQueryOptions(PrintContext<ContextOperation> c) {
200201
}
201202

202203
Expression _printOperationName(PrintContext<ContextOperation> c) {
203-
final operationName = c.context.operation?.name?.value;
204-
if (!c.context.config.setOperationName || operationName == null) {
205-
return refer('operationName');
206-
}
207204
return refer('operationName').ifNullThen(
208-
literalString(operationName),
205+
CodeExpression(Code('operationNameDefinition')),
206+
);
207+
}
208+
209+
Field _printOperationNameDefinitionField(PrintContext<ContextOperation> c) {
210+
final operationName = c.context.operation?.name?.value;
211+
212+
return Field(
213+
(b) => b
214+
..static = true
215+
..modifier = FieldModifier.constant
216+
..type = Reference('String?')
217+
..name = 'operationNameDefinition'
218+
..assignment =
219+
(!c.context.config.setOperationName || operationName == null)
220+
? null
221+
: Code('"$operationName"'),
209222
);
210223
}
211224

@@ -218,6 +231,9 @@ Spec printSubscriptionOptions(PrintContext<ContextOperation> c) {
218231
"graphql.SubscriptionOptions",
219232
refer(c.namePrinter.printClassName(context.path)),
220233
)
234+
..fields = ListBuilder([
235+
_printOperationNameDefinitionField(c),
236+
])
221237
..constructors = ListBuilder([
222238
Constructor(
223239
(b) => b
@@ -447,6 +463,14 @@ Spec printMutationOptions(
447463
)
448464
..modifier = FieldModifier.final$,
449465
),
466+
Field(
467+
(b) => b
468+
..static = true
469+
..modifier = FieldModifier.constant
470+
..type = Reference('String')
471+
..name = 'operationNameDefinition'
472+
..assignment = Code('"${c.context.operation?.name?.value}"'),
473+
),
450474
])
451475
..methods = ListBuilder([
452476
Method(
@@ -594,6 +618,9 @@ Spec printWatchOptions(
594618
..extend = TypeReference((b) => b
595619
..symbol = "graphql.WatchQueryOptions"
596620
..types = ListBuilder([refer(c.namePrinter.printClassName(c.path))]))
621+
..fields = ListBuilder([
622+
_printOperationNameDefinitionField(c),
623+
])
597624
..constructors = ListBuilder([
598625
Constructor(
599626
(b) => b

packages/graphql_codegen/lib/src/printer/utils.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ class NamePrinter {
126126
String printGraphQLFlutterClientOperationName(Name name) =>
127127
"${printName(name)}${separator}Widget";
128128

129+
String printOperationNameDefinition(Name name) =>
130+
"operationName${printName(name)}";
131+
129132
String printGraphQLFlutterClientMutationHookResultName(Name name) =>
130133
"${printName(name)}${separator}HookResult";
131134

packages/graphql_codegen/test/assets/issue_191/mutation.graphql.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class Options$Mutation$M extends graphql.MutationOptions<Mutation$M> {
164164
graphql.OnError? onError,
165165
}) : onCompletedWithParsed = onCompleted,
166166
super(
167-
operationName: operationName ?? 'M',
167+
operationName: operationName ?? operationNameDefinition,
168168
fetchPolicy: fetchPolicy,
169169
errorPolicy: errorPolicy,
170170
cacheRereadPolicy: cacheRereadPolicy,
@@ -184,6 +184,8 @@ class Options$Mutation$M extends graphql.MutationOptions<Mutation$M> {
184184

185185
final OnMutationCompleted$Mutation$M? onCompletedWithParsed;
186186

187+
static const String operationNameDefinition = "M";
188+
187189
@override
188190
List<Object?> get properties => [
189191
...super.onCompleted == null
@@ -207,7 +209,7 @@ class WatchOptions$Mutation$M extends graphql.WatchQueryOptions<Mutation$M> {
207209
bool carryForwardDataOnException = true,
208210
bool fetchResults = false,
209211
}) : super(
210-
operationName: operationName ?? 'M',
212+
operationName: operationName ?? operationNameDefinition,
211213
fetchPolicy: fetchPolicy,
212214
errorPolicy: errorPolicy,
213215
cacheRereadPolicy: cacheRereadPolicy,
@@ -220,6 +222,8 @@ class WatchOptions$Mutation$M extends graphql.WatchQueryOptions<Mutation$M> {
220222
fetchResults: fetchResults,
221223
parserFn: _parserFn$Mutation$M,
222224
);
225+
226+
static const String? operationNameDefinition = "M";
223227
}
224228

225229
extension ClientExtension$Mutation$M on graphql.GraphQLClient {

packages/graphql_codegen/test/assets/issue_191/query.graphql.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ class Options$Query$Q extends graphql.QueryOptions<Query$Q> {
163163
graphql.OnQueryError? onError,
164164
}) : onCompleteWithParsed = onComplete,
165165
super(
166-
operationName: operationName ?? 'Q',
166+
operationName: operationName ?? operationNameDefinition,
167167
fetchPolicy: fetchPolicy,
168168
errorPolicy: errorPolicy,
169169
cacheRereadPolicy: cacheRereadPolicy,
@@ -183,6 +183,8 @@ class Options$Query$Q extends graphql.QueryOptions<Query$Q> {
183183

184184
final OnQueryComplete$Query$Q? onCompleteWithParsed;
185185

186+
static const String? operationNameDefinition = "Q";
187+
186188
@override
187189
List<Object?> get properties => [
188190
...super.onComplete == null
@@ -206,7 +208,7 @@ class WatchOptions$Query$Q extends graphql.WatchQueryOptions<Query$Q> {
206208
bool carryForwardDataOnException = true,
207209
bool fetchResults = false,
208210
}) : super(
209-
operationName: operationName ?? 'Q',
211+
operationName: operationName ?? operationNameDefinition,
210212
fetchPolicy: fetchPolicy,
211213
errorPolicy: errorPolicy,
212214
cacheRereadPolicy: cacheRereadPolicy,
@@ -219,6 +221,8 @@ class WatchOptions$Query$Q extends graphql.WatchQueryOptions<Query$Q> {
219221
fetchResults: fetchResults,
220222
parserFn: _parserFn$Query$Q,
221223
);
224+
225+
static const String? operationNameDefinition = "Q";
222226
}
223227

224228
class FetchMoreOptions$Query$Q extends graphql.FetchMoreOptions {

packages/graphql_codegen/test/assets/issue_191/subscription.graphql.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ class Options$Subscription$S
161161
Subscription$S? typedOptimisticResult,
162162
graphql.Context? context,
163163
}) : super(
164-
operationName: operationName ?? 'S',
164+
operationName: operationName ?? operationNameDefinition,
165165
fetchPolicy: fetchPolicy,
166166
errorPolicy: errorPolicy,
167167
cacheRereadPolicy: cacheRereadPolicy,
@@ -170,6 +170,8 @@ class Options$Subscription$S
170170
document: documentNodeSubscriptionS,
171171
parserFn: _parserFn$Subscription$S,
172172
);
173+
174+
static const String? operationNameDefinition = "S";
173175
}
174176

175177
class WatchOptions$Subscription$S
@@ -187,7 +189,7 @@ class WatchOptions$Subscription$S
187189
bool carryForwardDataOnException = true,
188190
bool fetchResults = false,
189191
}) : super(
190-
operationName: operationName ?? 'S',
192+
operationName: operationName ?? operationNameDefinition,
191193
fetchPolicy: fetchPolicy,
192194
errorPolicy: errorPolicy,
193195
cacheRereadPolicy: cacheRereadPolicy,
@@ -200,6 +202,8 @@ class WatchOptions$Subscription$S
200202
fetchResults: fetchResults,
201203
parserFn: _parserFn$Subscription$S,
202204
);
205+
206+
static const String? operationNameDefinition = "S";
203207
}
204208

205209
class FetchMoreOptions$Subscription$S extends graphql.FetchMoreOptions {

0 commit comments

Comments
 (0)