On this page

makeExecutableSchema

The makeExecutableSchema function exported by @graphql-tools/schema.

makeExecutableSchema<TContext>(__namedParameters): GraphQLSchema

Defined in: packages/schema/src/makeExecutableSchema.ts:51

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

TContext

TContext = any

Parameters

__namedParameters

IExecutableSchemaDefinition<TContext>

Returns

GraphQLSchema