Skip to content

Commit e8d62af

Browse files
committed
Pass services to definition transformer
1 parent 812c2dd commit e8d62af

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

lib/src/main/java/graphql/nadel/NadelSchemas.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,8 @@ data class NadelSchemas(
234234

235235
private fun createEngineSchema(services: List<Service>): GraphQLSchema {
236236
val overallSchemaGenerator = OverallSchemaGenerator()
237-
val serviceRegistries = services.map(Service::definitionRegistry)
238237
val schema = overallSchemaGenerator.buildOverallSchema(
239-
serviceRegistries,
238+
services,
240239
builder.overallWiringFactory,
241240
builder.schemaDefinitionTransformationHook,
242241
)
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package graphql.nadel.schema
22

3+
import graphql.nadel.Service
34
import graphql.nadel.util.AnySDLDefinition
45

56
fun interface NadelSchemaDefinitionTransformationHook {
6-
operator fun invoke(definitions: List<AnySDLDefinition>): List<AnySDLDefinition>
7+
operator fun invoke(
8+
services: List<Service>,
9+
definitions: List<AnySDLDefinition>,
10+
): List<AnySDLDefinition>
711

812
companion object {
9-
val Identity = NadelSchemaDefinitionTransformationHook { originalSchema -> originalSchema }
13+
val Identity = NadelSchemaDefinitionTransformationHook { _, definitions -> definitions }
1014
}
1115
}

lib/src/main/java/graphql/nadel/schema/OverallSchemaGenerator.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import graphql.language.SchemaDefinition
99
import graphql.language.SourceLocation
1010
import graphql.nadel.NadelOperationKind
1111
import graphql.nadel.NadelTypeDefinitionRegistry
12+
import graphql.nadel.Service
1213
import graphql.nadel.util.AnyNamedNode
1314
import graphql.nadel.util.AnySDLDefinition
1415
import graphql.nadel.util.AnySDLNamedDefinition
@@ -22,10 +23,11 @@ import graphql.schema.idl.WiringFactory
2223

2324
internal class OverallSchemaGenerator {
2425
fun buildOverallSchema(
25-
serviceRegistries: List<NadelTypeDefinitionRegistry>,
26+
services: List<Service>,
2627
wiringFactory: WiringFactory,
2728
schemaDefinitionTransformationHook: NadelSchemaDefinitionTransformationHook,
2829
): GraphQLSchema {
30+
val serviceRegistries = services.map(Service::definitionRegistry)
2931
val schemaGenerator = SchemaGenerator()
3032
val runtimeWiring = RuntimeWiring.newRuntimeWiring()
3133
.wiringFactory(wiringFactory)
@@ -34,7 +36,7 @@ internal class OverallSchemaGenerator {
3436

3537
val definitions = getDefinitions(serviceRegistries)
3638
.let {
37-
schemaDefinitionTransformationHook.invoke(it)
39+
schemaDefinitionTransformationHook.invoke(services, it)
3840
}
3941

4042
val typeRegistry = createTypeRegistry(definitions)

0 commit comments

Comments
 (0)