Skip to content

Releases: ExpediaGroup/graphql-component

v2.0.0-rc3

04 Aug 15:20
Compare
Choose a tag to compare
v2.0.0-rc3 Pre-release
Pre-release

[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

27 Jul 18:31
Compare
Choose a tag to compare
v2.0.0-rc2 Pre-release
Pre-release
  • [CLEANUP] additional refactoring of resolver importation

v2.0.0-rc1

22 Jul 19:57
4f66693
Compare
Choose a tag to compare
v2.0.0-rc1 Pre-release
Pre-release

[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

11 Jun 21:44
Compare
Choose a tag to compare
  • Fixed exclude mapping in GraphQLComponent constructor - Array.map was erroniously changed to Array.filter

v1.3.0

10 Jun 19:36
Compare
Choose a tag to compare
  • 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

05 Jun 02:26
Compare
Choose a tag to compare
v1.3.0-rc2 Pre-release
Pre-release
  • 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.
  • Fixed proxyImportedResolvers option to include exclude scenario

v1.3.0-rc1

09 Apr 20:01
88a1ab8
Compare
Choose a tag to compare
v1.3.0-rc1 Pre-release
Pre-release
  • Imported resolvers will delegate to the imported component schema to which they belong (see below).
  • Remove this._context as default value for context in execute() requiring execute() 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.