import com.kobylynskyi.graphql.codegen.model.GeneratedLanguage import io.github.kobylynskyi.graphql.codegen.gradle.GraphQLCodegenGradleTask plugins { id "java" id "org.jetbrains.kotlin.jvm" version "1.8.10" id "io.github.kobylynskyi.graphql.codegen" version "5.7.3-SNAPSHOT" } def graphqlCodegenClientKotlinVersion = '5.7.3-SNAPSHOT' // Variable used in the automatic release process group = 'io.github.dreamylost' version = graphqlCodegenClientKotlinVersion sourceSets { main.kotlin.srcDirs += "$buildDir/generated-server" } repositories { maven { url 'https://repo.gradle.org/gradle/libs-releases-local' } mavenCentral() mavenLocal() } dependencies { // use the latest available version: // https://search.maven.org/artifact/io.github.kobylynskyi/graphql-java-codegen implementation "io.github.kobylynskyi:graphql-java-codegen:5.7.3-SNAPSHOT" implementation "javax.validation:validation-api:2.0.1.Final" implementation "com.squareup.okhttp3:okhttp:4.10.0" implementation "com.fasterxml.jackson.core:jackson-core:2.14.2" implementation "com.fasterxml.jackson.core:jackson-databind:2.14.2" implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.14.2" implementation "com.fasterxml.jackson.core:jackson-annotations:2.14.2" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" testImplementation "org.junit.jupiter:junit-jupiter-api:5.9.2" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.9.2" } /** * Generate apis and models in Kotlin */ compileKotlin.dependsOn "graphqlCodegenKotlinService" sourceSets.main.java.srcDir "$buildDir/generated-server" task graphqlCodegenKotlinService(type: GraphQLCodegenGradleTask) { graphqlSchemas.includePattern = "schema\\.graphqls" outputDir = new File("$buildDir/generated-server") generateClient = true generateApis = true generatedLanguage = GeneratedLanguage.KOTLIN generateBuilder = false generateImmutableModels = true apiPackageName = "io.github.dreamylost.api" modelPackageName = "io.github.dreamylost.model" generateModelOpenClasses = true generateSealedInterfaces = true customAnnotationsMapping = [ "Character": ["@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")", "@com.fasterxml.jackson.annotation.JsonSubTypes(value = arrayOf(" + System.lineSeparator() + " com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanTO::class, name = \"Human\"), " + System.lineSeparator() + " com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidTO::class, name = \"Droid\")))"], ] modelNameSuffix = "TO" supportUnknownFields = true }