Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a25d8ba

Browse files
authoredMar 1, 2022
Merge pull request #342 from Netflix/allow-null-for-input-args
Add info logs for better debuggability of schema issues during generation.
2 parents 30cb2ca + 8f6b671 commit a25d8ba

File tree

6 files changed

+43
-2
lines changed

6 files changed

+43
-2
lines changed
 

‎graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/java/DataTypeGenerator.kt

+10-2
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,21 @@ import com.netflix.graphql.dgs.codegen.shouldSkip
2525
import com.squareup.javapoet.*
2626
import graphql.language.*
2727
import graphql.language.TypeName
28+
import org.slf4j.Logger
29+
import org.slf4j.LoggerFactory
2830
import javax.lang.model.element.Modifier
2931

3032
class DataTypeGenerator(private val config: CodeGenConfig, private val document: Document) : BaseDataTypeGenerator(config.packageNameTypes, config, document) {
33+
private val logger: Logger = LoggerFactory.getLogger(DataTypeGenerator::class.java)
34+
3135
fun generate(definition: ObjectTypeDefinition, extensions: List<ObjectTypeExtensionDefinition>): CodeGenResult {
3236
if (definition.shouldSkip(config)) {
3337
return CodeGenResult()
3438
}
3539

36-
val name = definition.name
40+
logger.info("Generating data type ${definition.name}")
3741

42+
val name = definition.name
3843
val unionTypes = document.getDefinitionsOfType(UnionTypeDefinition::class.java).filter { union ->
3944
union.memberTypes.asSequence().map { it as TypeName }.any { it.name == name }
4045
}.map { it.name }
@@ -97,13 +102,16 @@ class DataTypeGenerator(private val config: CodeGenConfig, private val document:
97102
}
98103

99104
class InputTypeGenerator(private val config: CodeGenConfig, document: Document) : BaseDataTypeGenerator(config.packageNameTypes, config, document) {
105+
private val logger: Logger = LoggerFactory.getLogger(InputTypeGenerator::class.java)
106+
100107
fun generate(definition: InputObjectTypeDefinition, extensions: List<InputObjectTypeExtensionDefinition>): CodeGenResult {
101108
if (definition.shouldSkip(config)) {
102109
return CodeGenResult()
103110
}
104111

105-
val name = definition.name
112+
logger.info("Generating input type ${definition.name}")
106113

114+
val name = definition.name
107115
val fieldDefinitions = definition.inputValueDefinitions.map {
108116
val defaultValue = it.defaultValue?.let { defVal ->
109117
when (defVal) {

‎graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/java/EnumTypeGenerator.kt

+6
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,20 @@ import com.netflix.graphql.dgs.codegen.shouldSkip
2424
import com.squareup.javapoet.JavaFile
2525
import com.squareup.javapoet.TypeSpec
2626
import graphql.language.EnumTypeDefinition
27+
import org.slf4j.Logger
28+
import org.slf4j.LoggerFactory
2729
import javax.lang.model.element.Modifier
2830

2931
class EnumTypeGenerator(private val config: CodeGenConfig) {
32+
private val logger: Logger = LoggerFactory.getLogger(EnumTypeGenerator::class.java)
33+
3034
fun generate(definition: EnumTypeDefinition, extensions: List<EnumTypeDefinition>): CodeGenResult {
3135
if (definition.shouldSkip(config)) {
3236
return CodeGenResult()
3337
}
3438

39+
logger.info("Generating enum type ${definition.name}")
40+
3541
val javaType =
3642
TypeSpec
3743
.enumBuilder(definition.name)

‎graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/java/InterfaceGenerator.kt

+4
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,16 @@ import com.squareup.javapoet.JavaFile
2828
import com.squareup.javapoet.MethodSpec
2929
import com.squareup.javapoet.TypeSpec
3030
import graphql.language.*
31+
import org.slf4j.Logger
32+
import org.slf4j.LoggerFactory
3133
import javax.lang.model.element.Modifier
3234

3335
class InterfaceGenerator(private val config: CodeGenConfig, private val document: Document) {
3436

3537
private val packageName = config.packageNameTypes
3638
private val typeUtils = TypeUtils(packageName, config, document)
3739
private val useInterfaceType = config.generateInterfaces
40+
private val logger: Logger = LoggerFactory.getLogger(InterfaceGenerator::class.java)
3841

3942
fun generate(
4043
definition: InterfaceTypeDefinition,
@@ -45,6 +48,7 @@ class InterfaceGenerator(private val config: CodeGenConfig, private val document
4548
return CodeGenResult()
4649
}
4750

51+
logger.info("Generating type ${definition.name}")
4852
val javaType = TypeSpec.interfaceBuilder(definition.name)
4953
.addModifiers(Modifier.PUBLIC)
5054

‎graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/kotlin/KotlinDataTypeGenerator.kt

+11
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ package com.netflix.graphql.dgs.codegen.generators.kotlin
2121
import com.netflix.graphql.dgs.codegen.CodeGenConfig
2222
import com.netflix.graphql.dgs.codegen.CodeGenResult
2323
import com.netflix.graphql.dgs.codegen.filterSkipped
24+
import com.netflix.graphql.dgs.codegen.generators.java.InputTypeGenerator
2425
import com.netflix.graphql.dgs.codegen.shouldSkip
2526
import com.squareup.kotlinpoet.BOOLEAN
2627
import com.squareup.kotlinpoet.ClassName
@@ -38,14 +39,20 @@ import com.squareup.kotlinpoet.PropertySpec
3839
import com.squareup.kotlinpoet.STRING
3940
import com.squareup.kotlinpoet.TypeSpec
4041
import graphql.language.*
42+
import org.slf4j.Logger
43+
import org.slf4j.LoggerFactory
4144
import com.squareup.kotlinpoet.TypeName as KtTypeName
4245

4346
class KotlinDataTypeGenerator(private val config: CodeGenConfig, private val document: Document) : AbstractKotlinDataTypeGenerator(config.packageNameTypes, config) {
47+
private val logger: Logger = LoggerFactory.getLogger(InputTypeGenerator::class.java)
48+
4449
fun generate(definition: ObjectTypeDefinition, extensions: List<ObjectTypeExtensionDefinition>): CodeGenResult {
4550
if (definition.shouldSkip(config)) {
4651
return CodeGenResult()
4752
}
4853

54+
logger.info("Generating data type ${definition.name}")
55+
4956
val fields = definition.fieldDefinitions
5057
.filterSkipped()
5158
.filter(ReservedKeywordFilter.filterInvalidNames)
@@ -63,11 +70,15 @@ class KotlinDataTypeGenerator(private val config: CodeGenConfig, private val doc
6370
}
6471

6572
class KotlinInputTypeGenerator(private val config: CodeGenConfig, private val document: Document) : AbstractKotlinDataTypeGenerator(config.packageNameTypes, config) {
73+
private val logger: Logger = LoggerFactory.getLogger(InputTypeGenerator::class.java)
74+
6675
fun generate(definition: InputObjectTypeDefinition, extensions: List<InputObjectTypeExtensionDefinition>): CodeGenResult {
6776
if (definition.shouldSkip(config)) {
6877
return CodeGenResult()
6978
}
7079

80+
logger.info("Generating input type ${definition.name}")
81+
7182
val fields = definition.inputValueDefinitions
7283
.filter(ReservedKeywordFilter.filterInvalidNames)
7384
.map {

‎graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/kotlin/KotlinEnumTypeGenerator.kt

+7
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,25 @@ package com.netflix.graphql.dgs.codegen.generators.kotlin
2020

2121
import com.netflix.graphql.dgs.codegen.CodeGenConfig
2222
import com.netflix.graphql.dgs.codegen.CodeGenResult
23+
import com.netflix.graphql.dgs.codegen.generators.java.EnumTypeGenerator
2324
import com.netflix.graphql.dgs.codegen.shouldSkip
2425
import com.squareup.kotlinpoet.FileSpec
2526
import com.squareup.kotlinpoet.KModifier
2627
import com.squareup.kotlinpoet.TypeSpec
2728
import graphql.language.EnumTypeDefinition
29+
import org.slf4j.Logger
30+
import org.slf4j.LoggerFactory
2831

2932
class KotlinEnumTypeGenerator(private val config: CodeGenConfig) {
33+
private val logger: Logger = LoggerFactory.getLogger(EnumTypeGenerator::class.java)
34+
3035
fun generate(definition: EnumTypeDefinition, extensions: List<EnumTypeDefinition>): CodeGenResult {
3136
if (definition.shouldSkip(config)) {
3237
return CodeGenResult()
3338
}
3439

40+
logger.info("Generating enum type ${definition.name}")
41+
3542
val kotlinType = TypeSpec.classBuilder(definition.name).addModifiers(KModifier.ENUM)
3643

3744
if (definition.description != null) {

‎graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/kotlin/KotlinInterfaceTypeGenerator.kt

+5
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,14 @@ import com.netflix.graphql.dgs.codegen.shouldSkip
2424
import com.squareup.kotlinpoet.*
2525
import graphql.language.*
2626
import graphql.language.TypeName
27+
import org.slf4j.Logger
28+
import org.slf4j.LoggerFactory
2729

2830
class KotlinInterfaceTypeGenerator(private val config: CodeGenConfig) {
2931

3032
private val packageName = config.packageNameTypes
3133
private val typeUtils = KotlinTypeUtils(packageName, config)
34+
private val logger: Logger = LoggerFactory.getLogger(KotlinInterfaceTypeGenerator::class.java)
3235

3336
fun generate(
3437
definition: InterfaceTypeDefinition,
@@ -39,6 +42,8 @@ class KotlinInterfaceTypeGenerator(private val config: CodeGenConfig) {
3942
return CodeGenResult()
4043
}
4144

45+
logger.info("Generating type ${definition.name}")
46+
4247
val interfaceBuilder = TypeSpec.interfaceBuilder(definition.name)
4348
if (definition.description != null) {
4449
interfaceBuilder.addKdoc("%L", definition.description.sanitizeKdoc())

0 commit comments

Comments
 (0)
Please sign in to comment.