Skip to content

Commit 3c0cd0d

Browse files
committed
prints independent operation name
1 parent b470b16 commit 3c0cd0d

File tree

6 files changed

+54
-7
lines changed

6 files changed

+54
-7
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 & 1 deletion
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(
@@ -205,7 +206,23 @@ Expression _printOperationName(PrintContext<ContextOperation> c) {
205206
return refer('operationName');
206207
}
207208
return refer('operationName').ifNullThen(
208-
literalString(operationName),
209+
CodeExpression(Code('operationNameDefinition')),
210+
);
211+
}
212+
213+
Field _printOperationNameDefinitionField(PrintContext<ContextOperation> c) {
214+
final operationName = c.context.operation?.name?.value;
215+
216+
return Field(
217+
(b) => b
218+
..static = true
219+
..modifier = FieldModifier.constant
220+
..type = Reference('String?')
221+
..name = 'operationNameDefinition'
222+
..assignment =
223+
(!c.context.config.setOperationName || operationName == null)
224+
? null
225+
: Code('"$operationName"'),
209226
);
210227
}
211228

@@ -218,6 +235,9 @@ Spec printSubscriptionOptions(PrintContext<ContextOperation> c) {
218235
"graphql.SubscriptionOptions",
219236
refer(c.namePrinter.printClassName(context.path)),
220237
)
238+
..fields = ListBuilder([
239+
_printOperationNameDefinitionField(c),
240+
])
221241
..constructors = ListBuilder([
222242
Constructor(
223243
(b) => b
@@ -447,6 +467,14 @@ Spec printMutationOptions(
447467
)
448468
..modifier = FieldModifier.final$,
449469
),
470+
Field(
471+
(b) => b
472+
..static = true
473+
..modifier = FieldModifier.constant
474+
..type = Reference('String')
475+
..name = 'operationNameDefinition'
476+
..assignment = Code('"${c.context.operation?.name?.value}"'),
477+
),
450478
])
451479
..methods = ListBuilder([
452480
Method(
@@ -594,6 +622,9 @@ Spec printWatchOptions(
594622
..extend = TypeReference((b) => b
595623
..symbol = "graphql.WatchQueryOptions"
596624
..types = ListBuilder([refer(c.namePrinter.printClassName(c.path))]))
625+
..fields = ListBuilder([
626+
_printOperationNameDefinitionField(c),
627+
])
597628
..constructors = ListBuilder([
598629
Constructor(
599630
(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)