fun generate()

in graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/kotlin/KotlinDataTypeGenerator.kt [55:94]


    fun generate(
        definition: ObjectTypeDefinition,
        extensions: List<ObjectTypeExtensionDefinition>,
    ): CodeGenResult {
        if (definition.shouldSkip(config)) {
            return CodeGenResult.EMPTY
        }

        logger.info("Generating data type {}", definition.name)

        val fields =
            definition.fieldDefinitions
                .filterSkipped()
                .filter(ReservedKeywordFilter.filterInvalidNames)
                .map {
                    Field(
                        it.name,
                        typeUtils.findReturnType(it.type),
                        typeUtils.isNullable(it.type),
                        null,
                        it.description,
                        it.directives,
                    )
                } +
                extensions
                    .flatMap { it.fieldDefinitions }
                    .filterSkipped()
                    .map {
                        Field(
                            it.name,
                            typeUtils.findReturnType(it.type),
                            typeUtils.isNullable(it.type),
                            null,
                            it.description,
                            it.directives,
                        )
                    }
        val interfaces = definition.implements + extensions.flatMap { it.implements }
        return generate(definition.name, fields, interfaces, document, definition.description, definition.directives)
    }