Skip to Content
GraphQL Tools
DocumentationAPI@graphql-tools/executorsrcinterfacesExecutionContext

Interface: ExecutionContext<TVariables, TContext>

Defined in: packages/executor/src/execution/execute.ts:295 

Data that must be available at all points during query execution.

Namely, schema of the type system that is currently executing, and the fragments defined in the query document

Type Parameters

TVariables

TVariables = any

TContext

TContext = any

Properties

collectFieldsDependsOnVariables

collectFieldsDependsOnVariables: boolean

Defined in: packages/executor/src/execution/execute.ts:307 

True when collected field sets can change with variableValues because @skip / @include / @defer use a variable if (or @defer label) in this document.


contextValue

contextValue: TContext

Defined in: packages/executor/src/execution/execute.ts:299 


deferUsageByFieldNode?

optional deferUsageByFieldNode?: WeakMap<FieldNode, DeferUsage | undefined>

Defined in: packages/executor/src/execution/execute.ts:326 

Per-execution FieldNode → DeferUsage. Document AST nodes are reused across requests, so this must not live at module scope.


deferUsagesForFieldNodes?

optional deferUsagesForFieldNodes?: WeakMap<readonly FieldNode[], DeferUsageSet>

Defined in: packages/executor/src/execution/execute.ts:332 

Field-node arrays from a planned group → that group’s DeferUsageSet. List items share the same array identity, so overlapping sibling usages stay stable across async item completion.


errors

errors: GraphQLError[]

Defined in: packages/executor/src/execution/execute.ts:313 


fieldResolver

fieldResolver: GraphQLFieldResolver<any, TContext>

Defined in: packages/executor/src/execution/execute.ts:310 


fragments

fragments: Record<string, FragmentDefinitionNode>

Defined in: packages/executor/src/execution/execute.ts:297 


getAbortSignal

getAbortSignal: () => AbortSignal | undefined

Defined in: packages/executor/src/execution/execute.ts:344 

Returns

AbortSignal | undefined


getAsyncHelpers

getAsyncHelpers: () => object

Defined in: packages/executor/src/execution/execute.ts:345 

Returns

promiseAll

promiseAll: {<T>(values): Promise<Awaited<T>[]>; <T>(values): Promise<{ -readonly [P in string | number | symbol]: Awaited<T[P]> }>; }

Call Signature

<T>(values): Promise<Awaited<T>[]>

Creates a Promise that is resolved with an array of results when all of the provided Promises resolve, or rejected when any Promise is rejected.

Type Parameters
T

T

Parameters
values

Iterable<T | PromiseLike<T>>

An iterable of Promises.

Returns

Promise<Awaited<T>[]>

A new Promise.

Call Signature

<T>(values): Promise<{ -readonly [P in string | number | symbol]: Awaited<T[P]> }>

Creates a Promise that is resolved with an array of results when all of the provided Promises resolve, or rejected when any Promise is rejected.

Type Parameters
T

T extends [] | readonly unknown[]

Parameters
values

T

An array of Promises.

Returns

Promise<{ -readonly [P in string | number | symbol]: Awaited<T[P]> }>

A new Promise.

track

track: (maybePromises) => void

Parameters
maybePromises

readonly unknown[]

Returns

void


incrementalSpec

incrementalSpec: IncrementalSpec

Defined in: packages/executor/src/execution/execute.ts:315 


incrementalSubfieldCache?

optional incrementalSubfieldCache?: WeakMap<readonly FieldNode[], WeakMap<GraphQLObjectType<any, any, any>, { groupedFieldSet: GroupedFieldSet; newDeferUsages: readonly DeferUsage[]; }>>

Defined in: packages/executor/src/execution/execute.ts:339 

Memoize incremental subfield collect per fieldNodes array and concrete return type so list items of the same type reuse DeferUsage objects without sharing type-conditioned selections across a heterogeneous interface or union list.


nulledPaths?

optional nulledPaths?: (readonly (string | number)[])[]

Defined in: packages/executor/src/execution/execute.ts:321 

Allocated only when the operation actually uses @defer/@stream so default execution does not pay for null-bubble bookkeeping.


operation

operation: OperationDefinitionNode

Defined in: packages/executor/src/execution/execute.ts:300 


publisher?

optional publisher?: IncrementalPublisherState

Defined in: packages/executor/src/execution/execute.ts:316 


resolveInfoVariableValues

resolveInfoVariableValues: VariableValues

Defined in: packages/executor/src/execution/execute.ts:309 

Precomputed for GraphQLResolveInfo (GQL16 coerced map vs GQL17 VariableValues).


rootValue

rootValue: unknown

Defined in: packages/executor/src/execution/execute.ts:298 


schema

schema: GraphQLSchema

Defined in: packages/executor/src/execution/execute.ts:296 


schemaCoordinateInErrors?

optional schemaCoordinateInErrors?: boolean

Defined in: packages/executor/src/execution/execute.ts:352 


signal?

optional signal?: AbortSignal

Defined in: packages/executor/src/execution/execute.ts:343 


signalPromise?

optional signalPromise?: Promise<never>

Defined in: packages/executor/src/execution/execute.ts:351 


subscribeFieldResolver

subscribeFieldResolver: GraphQLFieldResolver<any, TContext>

Defined in: packages/executor/src/execution/execute.ts:312 


subsequentPayloads

subsequentPayloads: Set<AsyncPayloadRecord>

Defined in: packages/executor/src/execution/execute.ts:314 


typeResolver

typeResolver: GraphQLTypeResolver<any, TContext>

Defined in: packages/executor/src/execution/execute.ts:311 


variableValues

variableValues: VariableValues<TVariables>

Defined in: packages/executor/src/execution/execute.ts:301 

Methods

detachSignalListener()?

optional detachSignalListener(): void

Defined in: packages/executor/src/execution/execute.ts:350 

Returns

void


onSignalAbort()?

optional onSignalAbort(handler): void

Defined in: packages/executor/src/execution/execute.ts:349 

Parameters

handler

() => void

Returns

void