You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Declarative, code-first and strongly typed GraphQL schema construction for TypeScript & JavaScript.
Installation
npm install nexus graphql
Note you must also add graphql. Nexus pins to it as a peer dependency.
Features
Expressive, declarative API for building schemas
Full type-safety for free
Powerful plugin system
No need to re-declare interface fields per-object
Optionally possible to reference types by name (with autocomplete)
Rather than needing to import every single piece of the schema
Interoperable with vanilla graphql-js types, and it's just a GraphQLSchema
So it fits in just fine with existing community solutions of apollo-server, graphql-middleware, etc.
Inline function resolvers
For when you need to do simple field aliasing
Auto-generated graphql SDL schema
Great for when seeing how any code changes affected the schema
DRY-up schema design
Create higher level "functions" which wrap common fields
Example
import{queryType,stringArg,makeSchema}from'nexus'import{GraphQLServer}from'graphql-yoga'constQuery=queryType({definition(t){t.string('hello',{args: {name: stringArg()},resolve: (parent,{ name })=>`Hello ${name||'World'}!`,})},})constschema=makeSchema({types: [Query],outputs: {schema: __dirname+'/generated/schema.graphql',typegen: __dirname+'/generated/typings.ts',},})constserver=newGraphQLServer({
schema,})server.start(()=>`Server is running on https://localhost:4000`)
More examples can be found in the /examples directory:
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.
About
Code-First, Type-Safe, GraphQL Schema Construction