@graphql-tools/batch-execute | @graphql-tools/delegate | @graphql-tools/links | @graphql-tools/utils | @graphql-tools/wrap |
---|---|---|---|---|
major |
major |
major |
major |
major |
BREAKING CHANGES;
- Rename
Request
toExecutionRequest
- Drop unnecessary
GraphQLResolveInfo
inExecutionRequest
- 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-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38
Improvements;
- 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