Import & export definitions in GraphQL SDL (also refered to as GraphQL modules)
There is also a
graphql-import-loader
for Webpack available.
yarn add graphql-import
import { importSchema } from 'graphql-import' import { makeExecutableSchema } from 'graphql-tools' const typeDefs = importSchema('schema.graphql') const resolvers = {} const schema = makeExecutableSchema({ typeDefs, resolvers })
Assume the following directory structure:
. ├── schema.graphql ├── posts.graphql └── comments.graphql
schema.graphql
# import Post from "posts.graphql" type Query { posts: [Post] }
posts.graphql
# import Comment from 'comments.graphql' type Post { comments: [Comment] id: ID! text: String! tags: [String] }
comments.graphql
type Comment { id: ID! text: String! }
Running console.log(importSchema('schema.graphql'))
produces the following output:
type Query { posts: [Post] } type Post { comments: [Comment] id: ID! text: String! tags: [String] } type Comment { id: ID! text: String! }