Declarative, code-first and strongly typed GraphQL schema construction for TypeScript & JavaScript.
npm install nexus graphql
Note you must also add graphql
. Nexus pins to it as a peer dependency.
graphql-js
types, and it's just a GraphQLSchema
apollo-server
, graphql-middleware
, etc.import { queryType, stringArg, makeSchema } from 'nexus'
import { GraphQLServer } from 'graphql-yoga'
const Query = queryType({
definition(t) {
t.string('hello', {
args: { name: stringArg() },
resolve: (parent, { name }) => `Hello ${name || 'World'}!`,
})
},
})
const schema = makeSchema({
types: [Query],
outputs: {
schema: __dirname + '/generated/schema.graphql',
typegen: __dirname + '/generated/typings.ts',
},
})
const server = new GraphQLServer({
schema,
})
server.start(() => `Server is running on http://localhost:4000`)
More examples can be found in the /examples
directory:
You can find the docs for Nexus here.
If you've been following an SDL-first approach to build your GraphQL server and want to see what your code looks like when written with GraphQL Nexus, you can use the SDL converter.