How graphdsl/graphql-kotlin-dsl works
GraphQL Kotlin DSL turns GraphQL schema files into type-safe Kotlin query and mutation builders that return GraphQL strings. The principal workflow is schema input → schema/type modeling → DSL generation → generated-source output wired into compilation; the CLI offers a separate generation entry point. The graph preserves query, mutation, input, object and interface generation as distinct capabilities. Sampled source confirms query-builder behavior, but not the full plugin/task or schema-parsing implementation, so uncertain internal wiring is omitted.
Main entry points: DslFilesBuilder.kt DSL files builder · queryDslGen.kt Query generator · mutationDslGen.kt Mutation generator · GenerateDslTask.kt Generation task
Components 20
Generation entry points
- Gradle plugin
gradle-plugins/graphdsl-plugin/src/main/kotlin/io/github/graphdsl/gradle/GraphDslPlugin.kt - Generation task
gradle-plugins/graphdsl-plugin/src/main/kotlin/io/github/graphdsl/gradle/task/GenerateDslTask.kt - CLI generator
cli/src/main/kotlin/io/github/graphdsl/cli/KotlinDslGenerator.kt
Schema and types
- Schema model
schema/src/main/kotlin/io/github/graphdsl/schema/GraphDSLSchema.kt - Schema extensions
schema/src/main/kotlin/io/github/graphdsl/schema/GraphDSLSchema.kt - Type mapper
codegen/src/main/kotlin/io/github/graphdsl/codegen/BaseTypeMapper.kt - Value mapping
mapper/src/main/kotlin/io/github/graphdsl/mapper/ValueMapper.kt
DSL generation
- DSL files builder
codegen/src/main/kotlin/io/github/graphdsl/codegen/DslFilesBuilder.kt - Query generator
codegen/src/main/kotlin/io/github/graphdsl/codegen/queryDslGen.kt - Query field generator
codegen/src/main/kotlin/io/github/graphdsl/codegen/queryFieldDslGen.kt - Mutation generator
codegen/src/main/kotlin/io/github/graphdsl/codegen/mutationDslGen.kt - Input generator
codegen/src/main/kotlin/io/github/graphdsl/codegen/inputDslGen.kt - Object generator
codegen/src/main/kotlin/io/github/graphdsl/codegen/objectDslGen.kt - Node interface generator
codegen/src/main/kotlin/io/github/graphdsl/codegen/nodeInterfaceDslGen.kt - Template utilities
shared/src/main/kotlin/io/github/graphdsl/codegen/st/STUtils.kt
Generated DSL
- Generated Kotlin DSL
- Query string builder
codegen/src/main/kotlin/io/github/graphdsl/codegen/queryDslGen.kt
Other components
- Kotlin developer
- GraphQL schema files
- GraphQL service
Connections 24
- Kotlin developer → Gradle plugin: configures
- Gradle plugin → Generation task: registers
- Kotlin developer → CLI generator: runs
- GraphQL schema files → Generation task: provides schema
- GraphQL schema files → CLI generator: provides schema
- Generation task → DSL files builder: invokes generation
- CLI generator → DSL files builder: invokes generation
- DSL files builder → Schema model: uses schema model
- DSL files builder → Query generator: generates query
- DSL files builder → Mutation generator: generates mutation
- DSL files builder → Input generator: generates input
- DSL files builder → Object generator: generates objects
- DSL files builder → Node interface generator: generates interfaces
- Query generator → Query field generator: uses field builder
- Query generator → Type mapper: maps types
- Query field generator → Type mapper: maps types
- Mutation generator → Type mapper: maps types
- Query generator → Template utilities: builds template
- Mutation generator → Template utilities: builds template
- DSL files builder → Generated Kotlin DSL: writes sources
- Generated Kotlin DSL → Query string builder: defines
- Kotlin developer → Query string builder: calls generated DSL
- Query string builder → GraphQL service: sends query
- Value mapping → Schema model: uses type definitions