import { BuildSchemaOptions, GraphQLFieldResolver, GraphQLSchema } from 'graphql'; import { GraphQLParseOptions, IResolvers, IResolverValidationOptions, SchemaExtensions, TypeSource } from '@graphql-tools/utils'; export interface GraphQLSchemaWithContext extends GraphQLSchema { __context?: TContext; } /** * Configuration object for creating an executable schema */ export interface IExecutableSchemaDefinition extends BuildSchemaOptions, GraphQLParseOptions { /** * The type definitions used to create the schema */ typeDefs: TypeSource; /** * Object describing the field resolvers for the provided type definitions */ resolvers?: IResolvers | Array>; /** * Additional options for validating the provided resolvers */ resolverValidationOptions?: IResolverValidationOptions; /** * GraphQL object types that implement interfaces will inherit any missing * resolvers from their interface types defined in the `resolvers` object */ inheritResolversFromInterfaces?: boolean; /** * Do not create a schema again and use the one from `buildASTSchema` */ updateResolversInPlace?: boolean; /** * Schema extensions */ schemaExtensions?: SchemaExtensions | Array; /** * Default field resolver */ defaultFieldResolver?: GraphQLFieldResolver; }