Skip to content

Commit b7e65a5

Browse files
committed
Improve Schema Transformation
Do not pass the query, mutation and subscription also in additionalTypes when constructing the schema. This avoids problems with duplicate types when transforming the schema. Fixes #300
1 parent bc6dedb commit b7e65a5

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/main/kotlin/com/coxautodev/graphql/tools/SchemaParser.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,16 @@ class SchemaParser internal constructor(scanResult: ScannedSchemaObjects, privat
119119
val mutationName = rootInfo.getMutationName()
120120
val subscriptionName = rootInfo.getSubscriptionName()
121121

122-
val query = objects.find { it.name == queryName }
122+
val query : GraphQLObjectType= objects.find { it.name == queryName }
123123
?: throw SchemaError("Expected a Query object with name '$queryName' but found none!")
124124
val mutation = objects.find { it.name == mutationName }
125125
?: if (rootInfo.isMutationRequired()) throw SchemaError("Expected a Mutation object with name '$mutationName' but found none!") else null
126126
val subscription = objects.find { it.name == subscriptionName }
127127
?: if (rootInfo.isSubscriptionRequired()) throw SchemaError("Expected a Subscription object with name '$subscriptionName' but found none!") else null
128128

129-
return SchemaObjects(query, mutation, subscription, (objects + inputObjects + enums + interfaces + unions).toSet(), codeRegistryBuilder)
129+
val additionalObjects = objects.filter { o -> o != query || o != subscription || o != mutation }
130+
131+
return SchemaObjects(query, mutation, subscription, (additionalObjects + inputObjects + enums + interfaces + unions).toSet(), codeRegistryBuilder)
130132
}
131133

132134
/**

0 commit comments

Comments
 (0)