Sylvain Lebresne
Sylvain Lebresne
The fact that `@shareable` applied on a type definition only applies to the field within that particular definition is kind of intentional. The rough rationales for that are that: -...
I'll note that it is part of the design (and implementation) of `@shareable` that a type may mix shareable and non-shareable. And it's actually commonly the case for entity types....
> entity fields behave as if they are shareable by default That shouldn't be the case, though one exception is entity key fields, which _are_ shareable by default (the reasoning...
Fwiw, the fact that the query planner does not include the top-level `__typename` is not specific to `@defer`: this is always true and is an historical behaviour. I'm pretty sure...
Now that I think about this a bit more, I realise that handling top level `__typename` is not necessary trivial to do, and so maybe relying on the execution side...
> Anyway, starting to wonder if the benefit of being a tad more optimal on the somewhat useless query asking only for `__typename` really outweigh the cost of adding quite...
And to continue on my monologue here: there is actually one more subtlety I initially didn't realise. As explained above, subgraphs cannot be trusted with the `__typename` of root types....
> And what would be needed for field level is to check that the type name is the expected one and replace it? I believe doing so (check the type...
@clenfest, @queerviolet: this seems related to the intersection of graph 16 upgrades and the `@apollo/core-schema` lib, could you have a look.
> I'm not seen the deprecated directive in the schema The `@deprecated` directive is special, it's a graphQL built-in, and valid graphQL implementation should know of its existence even if...