From d6fc17d207c525aada9a3449271479e2304a2ca1 Mon Sep 17 00:00:00 2001 From: york yao Date: Sun, 11 Nov 2018 21:25:32 +0800 Subject: [PATCH] feat: add generic context type --- demo/root-type.ts | 8 ++++---- src/graphql-root-type-generator.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/demo/root-type.ts b/demo/root-type.ts index a21d479..7afeffb 100644 --- a/demo/root-type.ts +++ b/demo/root-type.ts @@ -2,10 +2,10 @@ import { GraphQLResolveInfo } from 'graphql' import { MutationResult, CreateInput, GetResult } from './cases' -export interface Root { - create(input: { input: CreateInput }, context: any, info: GraphQLResolveInfo): MutationResult | Promise - user(input: { id: string }, context: any, info: GraphQLResolveInfo): GetResult | Promise - users(input: {}, context: any, info: GraphQLResolveInfo): GetResult | Promise +export interface Root { + create(input: { input: CreateInput }, context: TContext, info: GraphQLResolveInfo): MutationResult | Promise + user(input: { id: string }, context: TContext, info: GraphQLResolveInfo): GetResult | Promise + users(input: {}, context: TContext, info: GraphQLResolveInfo): GetResult | Promise } export interface ResolveResult { diff --git a/src/graphql-root-type-generator.ts b/src/graphql-root-type-generator.ts index ea57b19..7480d00 100644 --- a/src/graphql-root-type-generator.ts +++ b/src/graphql-root-type-generator.ts @@ -12,7 +12,7 @@ export function generateGraphqlRootType(declarations: TypeDeclaration[], graphql for (const member of typeDeclaration.members) { const memberType = getMemberType(member.type, referenceTypes) const parameters = getMemberParameters(referenceTypes, member.parameters) - rootTypes.push(` ${member.name}(${parameters}, context: any, info: GraphQLResolveInfo): ${memberType} | Promise<${memberType}>`) + rootTypes.push(` ${member.name}(${parameters}, context: TContext, info: GraphQLResolveInfo): ${memberType} | Promise<${memberType}>`) resolveResults.push(` ${member.name}: ${memberType}`) } } @@ -20,7 +20,7 @@ export function generateGraphqlRootType(declarations: TypeDeclaration[], graphql const referenceTypeImports = getReferenceTypeImports(referenceTypes, graphqlRootTypePath) return `import { GraphQLResolveInfo } from 'graphql' -` + referenceTypeImports + `export interface Root { +` + referenceTypeImports + `export interface Root { ${rootTypes.join('\n')} }