Releases: ExpediaGroup/graphql-component
v2.0.0-rc3
[DOCS] added basic documentation for delegateToComponent
[FEATURE] added targetRootField option to delegateToComponent
[CLEANUP] use fieldNodes to build sub-operation document in delegateToComponent such that the original operation document isn't unintentionally modified
v2.0.0-rc2
- [CLEANUP] additional refactoring of resolver importation
v2.0.0-rc1
[FIXED] Memoizing resolvers didn't take into account aliased requests
[CLEANUP] Refactor how imports are merged together to be optimized and only run when a schema is requested
[CLEANUP] Moved tests alongside source code
[BREAKING] removed fragment helpers
[BREAKING] schemaDirectives (which returned merged directives) removed from component api
[BREAKING] removed proxyImportedResolvers feature flag
[BREAKING] removed execute
[FEATURE] added a new feature for delegateToComponent to replace execute
v1.3.1
- Fixed exclude mapping in GraphQLComponent constructor - Array.map was erroniously changed to Array.filter
v1.3.0
- Resolver memoize key includes the info.path.key to keep different aliases from colliding
- Imported resolvers will delegate to the imported component schema to which they belong.
- Remove this._context as default value for context in execute() requiring execute() users to pass in context from a calling resolver.
- Remove binding of GraphQLComponent class context to Subscription resolvers.
- Apply proxyImportedResolvers regardless of how the way a component is imported and whether or not exclusions are provided. proxyImportedResolvers can still be turned off for an imported component if the component is passed via config object.
v1.3.0-rc2
- Resolver
memoize
key includes theinfo.path.key
to keep different aliases from colliding - Imported resolvers will delegate to the imported component schema to which they belong.
- Remove
this._context
as default value for context inexecute()
requiringexecute()
users to pass in context from a calling resolver. - Remove binding of
GraphQLComponent
class context to Subscription resolvers. - Fixed proxyImportedResolvers option to include exclude scenario
v1.3.0-rc1
- Imported resolvers will delegate to the imported component schema to which they belong (see below).
- Remove
this._context
as default value for context inexecute()
requiringexecute()
users to pass in context from a calling resolver.
When a component imports another component, it imports the types as well as both root and type resolvers. If the parent component is utilizing execute
, type resolvers will run twice because the sub-component will execute type resolvers to complete query and the parent component, which has imported the type resolvers will rerun them when it encounters the type.
This change keeps type resolvers from being imported and replaces imported root type resolvers with resolvers that delegate to the imported component schema as a sub-query.
There is a flag to disable this default behavior.