The de-facto GraphQL package in JavaScript, graphql.js, is a bit verbose. Use buildSchema() to make your life easier. You can use GraphQL’s schema definition language to write your schemas.
import { graphql, buildSchema } from 'graphql'
const schema = buildSchema(`
type Query {
hello: String
}
`)
const root = {
hello () { return 'world' }
}
graphql(schema, '{ hello }', root)
.then(res => { console.log(res) })
// => { data: { hello: 'world' } }
Without buildSchema(), you’ll have to write it using lower-level classes:
import {
graphql,
GraphQLSchema,
GraphQLObjectType,
GraphQLString
} from 'graphql'
var schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'RootQueryType',
fields: {
hello: {
type: GraphQLString,
resolve() { return 'world' }
}
}
})
})
graphql(schema, '{ hello }')
.then(res => { console.log(res) })
// => { data: { hello: 'world' } }
You can see an example in the graphql.js documentation’s home page.