From c24898bb006d510172dee563c539681689774d2e Mon Sep 17 00:00:00 2001 From: Guilherme Date: Wed, 27 Mar 2024 14:29:10 -0300 Subject: [PATCH] Improve mutationWithClientId types with generics (#389) --- src/mutation/mutation.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mutation/mutation.ts b/src/mutation/mutation.ts index c18ac12..a9c5dcc 100644 --- a/src/mutation/mutation.ts +++ b/src/mutation/mutation.ts @@ -14,7 +14,7 @@ import type { ThunkObjMap, } from 'graphql'; -type MutationFn = (object: any, ctx: any, info: GraphQLResolveInfo) => unknown; +type MutationFn = (object: TInput, ctx: TContext, info: GraphQLResolveInfo) => TOutput; /** * A description of a mutation consumable by mutationWithClientMutationId @@ -30,22 +30,22 @@ type MutationFn = (object: any, ctx: any, info: GraphQLResolveInfo) => unknown; * input field, and it should return an Object with a key for each * output field. It may return synchronously, or return a Promise. */ -interface MutationConfig { +interface MutationConfig { name: string; description?: string; deprecationReason?: string; extensions?: GraphQLFieldExtensions; inputFields: ThunkObjMap; - outputFields: ThunkObjMap>; - mutateAndGetPayload: MutationFn; + outputFields: ThunkObjMap>; + mutateAndGetPayload: MutationFn; } /** * Returns a GraphQLFieldConfig for the mutation described by the * provided MutationConfig. */ -export function mutationWithClientMutationId( - config: MutationConfig, +export function mutationWithClientMutationId( + config: MutationConfig, ): GraphQLFieldConfig { const { name, inputFields, outputFields, mutateAndGetPayload } = config; const augmentedInputFields = () => ({