Tags: majerm/graphql-kotlin
Tags
[plugin] better error messages when generating clients (ExpediaGroup#… …1182) * [plugin] better error messages when generating clients Adds operation name to all thrown exceptions so it is easier to find the invalid file. Resolves: ExpediaGroup#1173 * separate invalid polymorphic selection set exceptions * fix unit tests
Add valid locations annotation (ExpediaGroup#1132) * Add valid locations annotation * Update annotation input * Mark function as interna;
[plugin] fix compile dependency of test client (ExpediaGroup#1124) `GraphQLGenerateTestClientTask` was extending `GraphQLGenerateClientTask` which meant that we were configuring all task of type `GraphQLGenerateClientTask` we were also configuring test client. Moved the common client generation logic to a new `AbstractGenerateClientTask` which is used by both client generation tasks.
[docs] fix subscription docs and formatting (ExpediaGroup#1121)
[docs] fix subscription docs and formatting (ExpediaGroup#1121)
Call hooks for return type on properties (ExpediaGroup#1112) Co-authored-by: Shane Myrick <[email protected]>
[build] update release build to automatically release to nexus (Exped… …iaGroup#1093) This is a follow up to ExpediaGroup#1091 which seems to be working fine.
[client] generate enums in UPPERCASE and fix kotlinx request serializ… …ation (ExpediaGroup#1087) Update client generation logic to always generate enums in UPPERCASE and then use corresponding Jackson (`@JsonProperty`) or kotlinx-serialization (`@SerialName`) annotation to convert those back to expected schema values. This allows us to support enum values that cannot be used directly in Kotlin (i.e. `name` and `ordinal`) as they would clash with built in methods. This PR also resolves incorrect serialization of requests when using `kotlinx-serialization`. We were applying our custom `AnySerializer` to serialize the requests which was in turn incorrectly serializing enums and custom scalars. I changed the logic to construct correct `KSerializer` based on the specified request. Resolves: ExpediaGroup#1075
[plugins] update plugins to allow generation of client code using kot… …linx serialization (ExpediaGroup#1070) This is a third and final PR in a series to introduce support for both `Jackson` and `kotlinx.serialization` data formats for GraphQL Kotlin clients. This PR updates Gradle and Maven plugins to allow generating client data models supporting both formats. This PR also updates Ktor client to by default depend on `kotlinx.serialization` instead of `Jackson`. Large size of the PR is driven primarily due to the formatting fixes in the Gradle plugin integration tests (updated build scripts templates to use `trimMargin` for consistent indentation). Related: * ExpediaGroup#1048 - this is an attempt to split it up to more manageable pieces * ExpediaGroup#1066 - first PR in the series * ExpediaGroup#1069 - second PR in the series * resolves ExpediaGroup#929 - add support for generating `kotlinx.serialization` data models
PreviousNext