KotlinSchemaCodegenOptions
Inheritors
Properties
Whether to add default arguments for input objects.
Whether to generate kotlin constructors with @JvmOverloads
for more graceful Java interop experience when default values are present. Note: when enabled in a multi-platform setup, the generated code can only be used in the common or JVM sourcesets.
Whether to add the unknown value for enums. Unknown is used for clients when a new enum is added on the server but is not always useful on servers
Whether to decapitalize fields (for instance FooBar
->fooBar
). This is useful if your schema has fields starting with an uppercase as it may create name clashes with models that use PascalCase
Whether to generate Kotlin models with internal
visibility modifier.
Class name to use when generating the Schema class.
Kotlin native generates Any? for optional types Setting generateFilterNotNull generates extra filterNotNull
functions that help keep the type information.
Whether to generate builders in addition to constructors for operations and input types. Constructors are more concise but require passing an instance of Optional
always, making them more verbose for the cases where there are a lot of optional input parameters.
Specifies which methods will be auto generated on operations, models, fragments and input objects.
Whether to generate the Schema class.
Whether to add the JsExport annotation to generated models. This is useful to be able to cast JSON parsed responses into Kotlin classes using unsafeCast.
The format to output for the operation manifest. Valid values are:
The package name for generated classes. Operations use the package name directly. Other classes like fragments and schema types use sub-packages to avoid name clashes:
The annotation to use for @requiresOptIn
fields/inputFields/enumValues
If non-null, get the package names from the normalized file paths and prepend rootPackageName
A list of Regex patterns for GraphQL enums that should be generated as Kotlin sealed classes instead of the default Kotlin enums.
The target language to use to generate the sources
When true, the operation class names are suffixed with their operation type like ('Query', 'Mutation' ot 'Subscription'). For an example, query getDroid { ... }
GraphQL query generates the 'GetDroidQuery' class.