• Docs
  • API Reference
  • Packages
  • schema

@graphql-tools/schema

Table of contents

References

Interfaces

Type Aliases

Functions

References

extractExtensionsFromSchema

Re-exports extractExtensionsFromSchema

Type Aliases

MergeSchemasConfig

Ƭ MergeSchemasConfig<T>: Partial<IExecutableSchemaDefinition<T>> & { schemas?: GraphQLSchema[] }

Configuration object for schema merging

Type parameters

NameType
Tany

Defined in

packages/schema/src/merge-schemas.ts:16

Functions

addResolversToSchema

addResolversToSchema(«destructured»): GraphQLSchema

Parameters

NameType
«destructured»IAddResolversToSchemaOptions

Returns

GraphQLSchema

Defined in

packages/schema/src/addResolversToSchema.ts:34


assertResolversPresent

assertResolversPresent(schema, resolverValidationOptions?): void

Parameters

NameType
schemaGraphQLSchema
resolverValidationOptionsIResolverValidationOptions

Returns

void

Defined in

packages/schema/src/assertResolversPresent.ts:5


chainResolvers

chainResolvers<TArgs>(resolvers): (root: any, args: TArgs, ctx: any, info: GraphQLResolveInfo) => any

Type parameters

NameType
TArgsextends Object

Parameters

NameType
resolversMaybe<GraphQLFieldResolver<any, any, TArgs, unknown>>[]

Returns

fn

▸ (root, args, ctx, info): any

Parameters
NameType
rootany
argsTArgs
ctxany
infoGraphQLResolveInfo
Returns

any

Defined in

packages/schema/src/chainResolvers.ts:4


checkForResolveTypeResolver

checkForResolveTypeResolver(schema, requireResolversForResolveType?): void

Parameters

NameType
schemaGraphQLSchema
requireResolversForResolveType?ValidatorBehavior

Returns

void

Defined in

packages/schema/src/checkForResolveTypeResolver.ts:6


extendResolversFromInterfaces

extendResolversFromInterfaces(schema, resolvers): IResolvers

Parameters

NameType
schemaGraphQLSchema
resolversIResolvers<any, any, Record<string, any>, any>

Returns

IResolvers

Defined in

packages/schema/src/extendResolversFromInterfaces.ts:5


makeExecutableSchema

makeExecutableSchema<TContext>(«destructured»): GraphQLSchema

Builds a schema from the provided type definitions and resolvers.

The type definitions are written using Schema Definition Language (SDL). They can be provided as a string, a DocumentNode, a function, or an array of any of these. If a function is provided, it will be passed no arguments and should return an array of strings or DocumentNodes.

Note: You can use GraphQL magic comment provide additional syntax highlighting in your editor (with the appropriate editor plugin).

const typeDefs = /* GraphQL */ `
  type Query {
    posts: [Post]
    author(id: Int!): Author
  }
`;

The resolvers object should be a map of type names to nested object, which themselves map the type's fields to their appropriate resolvers. See the Resolvers section of the documentation for more details.

const resolvers = {
  Query: {
    posts: (obj, args, ctx, info) => getAllPosts(),
    author: (obj, args, ctx, info) => getAuthorById(args.id)
  }
};

Once you've defined both the typeDefs and resolvers, you can create your schema:

const schema = makeExecutableSchema({
  typeDefs,
  resolvers,
})

Type parameters

NameType
TContextany

Parameters

NameType
«destructured»IExecutableSchemaDefinition<TContext>

Returns

GraphQLSchema

Defined in

packages/schema/src/makeExecutableSchema.ts:53


mergeSchemas

mergeSchemas(config): GraphQLSchema

Synchronously merges multiple schemas, typeDefinitions and/or resolvers into a single schema.

Parameters

NameTypeDescription
configMergeSchemasConfig<any>Configuration object

Returns

GraphQLSchema

Defined in

packages/schema/src/merge-schemas.ts:27