Skip to content

Repository files navigation

Nexus

trunknpm version

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 http://localhost:4000`)

More examples can be found in the /examples directory:

Documentation

You can find the docs for Nexus here.

Migrate from SDL

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

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages