Major Changes
-
dae6dc7: refactor: ExecutionParams type replaced by Request type
rootValue property is now a part of the Request type.
When delegating with delegateToSchema, rootValue can be set multiple ways:
- when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
- when using the default executor (execute/subscribe from graphql-js):
-- rootValue can be passed to delegateToSchema via a named option
-- rootValue can be included within a subschemaConfig
-- otherwise, rootValue is inferred from the originating schema
When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.
-
c42e811: BREAKING CHANGES;
- Rename
Request
toExecutionRequest
- Add required
operationType: OperationTypeNode
field inExecutionRequest
- Add
context
increateRequest
andcreateRequestInfo
instead ofdelegateToSchema
It doesn't rely on info.operation.operationType to allow the user to call an operation from different root type.
And it doesn't call getOperationAST again and again to get operation type from the document/operation because we have it in Request and ExecutionParams
https://github.com/ardatan/graphql-tools/pull/3166/files#diff-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38Improvements;
- Memoize
defaultExecutor
for a singleGraphQLSchema
so allowgetBatchingExecutor
to memoizebatchingExecutor
correctly. - And there is no different
defaultExecutor
is created forsubscription
and other operation types. Only one executor is used.
Batch executor is memoized by
executor
reference butcreateDefaultExecutor
didn't memoize the default executor so this memoization wasn't working correctly onbatch-execute
side.
https://github.com/ardatan/graphql-tools/blob/remove-info-executor/packages/batch-execute/src/getBatchingExecutor.ts#L9 - Rename
-
c0ca319: BREAKING CHANGE
- Remove Subscriber and use only Executor
-
- Now
Executor
can receiveAsyncIterable
and subscriptions will also be handled byExecutor
. This is a future-proof change for defer, stream and live queries
- Now
Patch Changes
- Updated dependencies [af9a78d]
- Updated dependencies [9c26b84]
- Updated dependencies [7d3e300]
- Updated dependencies [7d3e300]
- Updated dependencies [dae6dc7]
- Updated dependencies [6877b91]
- Updated dependencies [c42e811]
- Updated dependencies [7d3e300]
- Updated dependencies [8c8d4fc]
- Updated dependencies [7d3e300]
- Updated dependencies [7d3e300]
- Updated dependencies [74581cf]
- Updated dependencies [c0ca319]
- Updated dependencies [982c8f5]
- Updated dependencies [7d3e300]
- Updated dependencies [7d3e300]
- @graphql-tools/utils@8.0.0