[Scala 3] Add annotation to derive all case class methods as graphql fields #2306
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the
@GQLMethodsAsFields
annotation that can be used to decorate a case class / case object to have all its public methods derived as fields (unless a method is annotated with@GQLExcluded
.We could potentially reuse the
@GQLField
annotation, although after staring at it for too long it really didn't make sense to me. I think we should be quite explicit and make it very clear to the user when looking at a case class definition that the public methods are going to be derived as fields. Let me know what you think @ghostdogpr!/cc @paulpdaniels since I know you're migrating service(s) to Scala 3 you might be interested in this