Skip to content

Commit

Permalink
feat: add generic context type
Browse files Browse the repository at this point in the history
  • Loading branch information
plantain-00 committed Nov 11, 2018
1 parent 8443c25 commit d6fc17d
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
8 changes: 4 additions & 4 deletions demo/root-type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<MutationResult>
user(input: { id: string }, context: any, info: GraphQLResolveInfo): GetResult | Promise<GetResult>
users(input: {}, context: any, info: GraphQLResolveInfo): GetResult | Promise<GetResult>
export interface Root<TContext = any> {
create(input: { input: CreateInput }, context: TContext, info: GraphQLResolveInfo): MutationResult | Promise<MutationResult>
user(input: { id: string }, context: TContext, info: GraphQLResolveInfo): GetResult | Promise<GetResult>
users(input: {}, context: TContext, info: GraphQLResolveInfo): GetResult | Promise<GetResult>
}

export interface ResolveResult {
Expand Down
4 changes: 2 additions & 2 deletions src/graphql-root-type-generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ 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}`)
}
}
}
const referenceTypeImports = getReferenceTypeImports(referenceTypes, graphqlRootTypePath)
return `import { GraphQLResolveInfo } from 'graphql'
` + referenceTypeImports + `export interface Root {
` + referenceTypeImports + `export interface Root<TContext = any> {
${rootTypes.join('\n')}
}
Expand Down

0 comments on commit d6fc17d

Please sign in to comment.