mainKey property
TKey
mainKey
Implementation
TKey get mainKey {
final defaultOperationDefinitionMap = {
OperationType.query: 'Query',
OperationType.mutation: 'Mutation',
OperationType.subscription: 'Subscription',
};
final operationDefinitionMap = Map.fromEntries(
entries.entries.expand(
(element) =>
element.value.definitions.expand<MapEntry<OperationType, String>>(
(element) {
if (element is SchemaDefinitionNode) {
return element.operationTypes.map(
(e) => MapEntry(
e.operation,
e.type.name.value,
),
);
}
if (element is SchemaExtensionNode) {
return element.operationTypes.map(
(e) => MapEntry(
e.operation,
e.type.name.value,
),
);
}
return [];
},
),
),
);
return [
OperationType.query,
OperationType.mutation,
OperationType.subscription
].expand<TKey?>((e) {
final name =
operationDefinitionMap[e] ?? defaultOperationDefinitionMap[e];
if (name == null) {
return [];
}
return entries.entries
.where(
(element) => element.value.definitions
.whereType<ObjectTypeDefinitionNode>()
.where((element) => element.name.value == name)
.isNotEmpty,
)
.map<TKey>((documentEntry) => documentEntry.key);
}).firstWhere(
(element) => true,
orElse: () => null,
) ??
entries.keys.last;
}