You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a minor inconvenience for me. It's just some boilerplate that I would love not to write. Motivation:
In my own usage of @SchemaMapping I often end up deprecating and renaming fields while their schema mapping method doesn't change:
type ... {
count: Number @deprecated(reason: "use userCount"),
userCount: Number
}
I'll need two @SchemaMappings:
@SchemaMapping
int count(SOURCE s) { ... }
@SchemaMapping
int userCount(SOURCE s) { ... }
Both have the same source object. So it's possible to register the same data fetcher with both fields.
Another case is when separating types based on access:
type AdminProduct {
commonField: String
...
}
type Product {
commonField: String
...
}
In the controller:
@SchemaMapping(typeName = "AdminProduct")
int commonField(SOURCE s) { ... }
@SchemaMapping(typeName = "Product")
int commonField(SOURCE s) { ... } // COMPILE ERROR: same signature
@SchemaMapping(typeName = "Product", fieldName = "commonField")
int adminCommonField(SOURCE s) { ... } // COMPILES: but I have to specify fieldName
It's possible to share an interface between Product and AdminProduct and register the schema mapping on the interface type, but that is not often possible and it adds considerable code to the schema. Making SchemaMapping repeatable provides an ad-hoc way of achieving the same thing with much less boilerplate
The text was updated successfully, but these errors were encountered:
This is a minor inconvenience for me. It's just some boilerplate that I would love not to write. Motivation:
In my own usage of
@SchemaMapping
I often end up deprecating and renaming fields while their schema mapping method doesn't change:I'll need two
@SchemaMapping
s:Both have the same source object. So it's possible to register the same data fetcher with both fields.
Another case is when separating types based on access:
In the controller:
It's possible to share an interface between
Product
andAdminProduct
and register the schema mapping on the interface type, but that is not often possible and it adds considerable code to the schema. Making SchemaMapping repeatable provides an ad-hoc way of achieving the same thing with much less boilerplateThe text was updated successfully, but these errors were encountered: