@graphql-tools/schema
Version:
A set of utils for faster development of GraphQL tools
47 lines (46 loc) • 1.65 kB
text/typescript
import { GraphQLSchema } from 'graphql';
import { IExecutableSchemaDefinition } from './types.cjs';
/**
* 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 `DocumentNode`s.
*
* Note: You can use GraphQL magic comment provide additional syntax
* highlighting in your editor (with the appropriate editor plugin).
*
* ```js
* 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](/docs/resolvers) section of the documentation for more details.
*
* ```js
* 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:
*
* ```js
* const schema = makeExecutableSchema({
* typeDefs,
* resolvers,
* })
* ```
*/
export declare function makeExecutableSchema<TContext = any>({ typeDefs, resolvers, resolverValidationOptions, inheritResolversFromInterfaces, updateResolversInPlace, schemaExtensions, defaultFieldResolver, ...otherOptions }: IExecutableSchemaDefinition<TContext>): GraphQLSchema;