Skip to content

Commit

Permalink
Properly name the root field execution functions
Browse files Browse the repository at this point in the history
The codebase should refer to functions that execute the query, mutation, and/or subscription root fields as such, rather than as functions that execute the operations themselves. Executing a query or mutation returns a map of data and errors, while executing the root fields returns the data of the root fields.
  • Loading branch information
yaacovCR committed Oct 11, 2021
1 parent 0b2bfb8 commit fdf3e33
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
21 changes: 11 additions & 10 deletions src/execution/execute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ export interface ExecutionArgs {
* a GraphQLError will be thrown immediately explaining the invalid input.
*/
export function execute(args: ExecutionArgs): PromiseOrValue<ExecutionResult> {
const { schema, document, variableValues, rootValue } = args;
const { schema, document, variableValues } = args;

// If arguments are missing or incorrect, throw an error.
assertValidExecutionArguments(schema, document, variableValues);
Expand All @@ -180,14 +180,16 @@ export function execute(args: ExecutionArgs): PromiseOrValue<ExecutionResult> {
return { errors: exeContext };
}

// Return a Promise that will eventually resolve to the data described by
// The "Response" section of the GraphQL specification.
//
// Return data or a Promise that will eventually resolve to the data described
// by the "Response" section of the GraphQL specification.

// If errors are encountered while executing a GraphQL field, only that
// field and its descendants will be omitted, and sibling fields will still
// be executed. An execution which encounters errors will still result in a
// resolved Promise.
const data = executeOperation(exeContext, exeContext.operation, rootValue);
const data = executeQueryOrMutationRootFields(exeContext);

// Return the response.
return buildResponse(exeContext, data);
}

Expand Down Expand Up @@ -329,14 +331,13 @@ export function buildExecutionContext(
}

/**
* Implements the "Executing operations" section of the spec.
* Executes the root fields specified by query or mutation operation.
*/
function executeOperation(
function executeQueryOrMutationRootFields(
exeContext: ExecutionContext,
operation: OperationDefinitionNode,
rootValue: unknown,
): PromiseOrValue<ObjMap<unknown> | null> {
const type = getOperationRootType(exeContext.schema, operation);
const { schema, operation, rootValue } = exeContext;
const type = getOperationRootType(schema, operation);
const fields = collectFields(
exeContext.schema,
exeContext.fragments,
Expand Down
4 changes: 2 additions & 2 deletions src/execution/subscribe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ export async function createSourceEventStream(
}

try {
const eventStream = await executeSubscription(exeContext);
const eventStream = await executeSubscriptionRootField(exeContext);

// Assert field returned an event stream, otherwise yield an error.
if (!isAsyncIterable(eventStream)) {
Expand All @@ -190,7 +190,7 @@ export async function createSourceEventStream(
}
}

async function executeSubscription(
async function executeSubscriptionRootField(
exeContext: ExecutionContext,
): Promise<unknown> {
const { schema, fragments, operation, variableValues, rootValue } =
Expand Down

0 comments on commit fdf3e33

Please sign in to comment.