Releases: gmac/graphql-stitching-ruby
GraphQL Ruby 2.4 compatibility
Mundane housekeeping to organize library and keep pace with GraphQL Ruby updates. Also fixes CI tests that were not actually running against minor versions of the GraphQL Ruby gem; drops support for GraphQL 1.13 which hasn't actually been compatible.
Fix abstract resolver mappings
Subscriptions support
Adds support for subscription operations in #152, with a Rails example in #153. Minimally disruptive API changes:
-
Stitching now returns a
GraphQL::Query::Result
rather than a raw hash, just like a standard GraphQL execution. If this causes problems in a test, callto_h
on the result for the raw hash. -
Stitching
Client.execute
can now be invoked with the query as a positional argument rather than aquery:
kwarg (for parity with GraphQL Ruby). The old kwarg is also still supported.
Fix planner key deduplication
Small updates from #150. Fixes the new key deduplication process from v1.4.0 that isn't compatible with fragments.
Restore non-resolver key matching
The recent v1.4.0
release compromised key matching for outbound-only types, or, merged types without a resolver that can still provide keys. This restores the dynamic field match that made these types work. See #149.
Thanks to @thomasmarshall for the report.
Fix fragment shaping bug
Composite keys and arguments
Large rewrite of resolver internals to support composite key selections and complex argument shapes. See #141.
⚠️ Minor breaking changes:
- Resolver key argument aliases require a simple rewrite into arguments templates:
- old syntax:
@stitch(key: "myArg:myKey")
- new syntax:
@stitch(key: "myKey", arguments: "myArg: $.myKey")
.
- old syntax:
- Regenerate all supergraph exports for latest schema formats.
- Bust all query plan caches for latest plan format.
Send consistent documents + refactors
Better support for merged types without resolvers
See #135, thanks to @thomasmarshall for the suggestion.
Improved handling of resolver types
- #130: Fixes abstract resolver definitions passing through Supergraph import/export. Thanks @thomasmarshall.
- #131: Improvements to
@stitch
directive resolver mappings:- Multiple arguments attempt to match by name to the key used.
- Abstract resolvers may specify a
typeName
to target specific types with specific keys.