From a3c2256ddf97385c3fa19efbd06e486ed3514729 Mon Sep 17 00:00:00 2001 From: Yaacov Rydzinski Date: Tue, 22 Jun 2021 17:54:40 +0300 Subject: [PATCH] use named arguments for buildExecutionContext --- src/execution/__tests__/subscribe-test.ts | 2 +- src/execution/execute.ts | 55 ++++++++++------------- src/execution/subscribe.ts | 23 +--------- 3 files changed, 26 insertions(+), 54 deletions(-) diff --git a/src/execution/__tests__/subscribe-test.ts b/src/execution/__tests__/subscribe-test.ts index 8fb2facfab..7c02e2404d 100644 --- a/src/execution/__tests__/subscribe-test.ts +++ b/src/execution/__tests__/subscribe-test.ts @@ -410,7 +410,7 @@ describe('Subscription Initialization Phase', () => { const document = parse('subscription { foo }'); const result = await subscribe({ schema, document }); - const exeContext = buildExecutionContext(schema, document); + const exeContext = buildExecutionContext({ schema, document }); expect(await createSourceEventStream(exeContext)).to.deep.equal(result); return result; } diff --git a/src/execution/execute.ts b/src/execution/execute.ts index 8f60d1612f..c903dc7bb5 100644 --- a/src/execution/execute.ts +++ b/src/execution/execute.ts @@ -149,30 +149,11 @@ export interface ExecutionArgs { * a GraphQLError will be thrown immediately explaining the invalid input. */ export function execute(args: ExecutionArgs): PromiseOrValue { - const { - schema, - document, - rootValue, - contextValue, - variableValues, - operationName, - fieldResolver, - typeResolver, - } = args; // If a valid execution context cannot be created due to incorrect arguments, // a "Response" with only errors is returned. let exeContext: ExecutionContext; try { - exeContext = buildExecutionContext( - schema, - document, - rootValue, - contextValue, - variableValues, - operationName, - fieldResolver, - typeResolver, - ); + exeContext = buildExecutionContext(args); } catch (error) { // Note: if buildExecutionContext throws a GraphQLAggregateError, it will // be of type GraphQLAggregateError, but this is checked explicitly. @@ -261,17 +242,29 @@ function assertValidExecutionArguments( * * @internal */ -export function buildExecutionContext( - schema: GraphQLSchema, - document: DocumentNode, - rootValue?: unknown, - contextValue?: unknown, - rawVariableValues?: Maybe<{ readonly [variable: string]: unknown }>, - operationName?: Maybe, - fieldResolver?: Maybe>, - typeResolver?: Maybe>, - subscribeFieldResolver?: Maybe>, -): ExecutionContext { +export function buildExecutionContext(args: { + schema: GraphQLSchema; + document: DocumentNode; + rootValue?: unknown; + contextValue?: unknown; + variableValues?: Maybe<{ readonly [variable: string]: unknown }>; + operationName?: Maybe; + fieldResolver?: Maybe>; + typeResolver?: Maybe>; + subscribeFieldResolver?: Maybe>; +}): ExecutionContext { + const { + schema, + document, + rootValue, + contextValue, + variableValues: rawVariableValues, + operationName, + fieldResolver, + typeResolver, + subscribeFieldResolver, + } = args; + // If arguments are missing or incorrect, throw an error. assertValidExecutionArguments(schema, document, rawVariableValues); diff --git a/src/execution/subscribe.ts b/src/execution/subscribe.ts index d4a743cfb6..861c3acfac 100644 --- a/src/execution/subscribe.ts +++ b/src/execution/subscribe.ts @@ -49,32 +49,11 @@ export interface SubscriptionArgs { export async function subscribe( args: SubscriptionArgs, ): Promise | ExecutionResult> { - const { - schema, - document, - rootValue, - contextValue, - variableValues, - operationName, - fieldResolver, - typeResolver, - subscribeFieldResolver, - } = args; // If a valid execution context cannot be created due to incorrect arguments, // a "Response" with only errors is returned. let exeContext: ExecutionContext; try { - exeContext = buildExecutionContext( - schema, - document, - rootValue, - contextValue, - variableValues, - operationName, - fieldResolver, - typeResolver, - subscribeFieldResolver, - ); + exeContext = buildExecutionContext(args); } catch (error) { // Note: if buildExecutionContext throws a GraphQLAggregateError, it will // be of type GraphQLAggregateError, but this is checked explicitly.