Skip to content

graphql-nexus/nexus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9e5c27c · Mar 16, 2023
May 15, 2022
Aug 22, 2019
Mar 16, 2023
May 15, 2022
Dec 14, 2020
Jul 2, 2022
Jul 2, 2022
Sep 30, 2020
Jul 2, 2022
Oct 3, 2020
Nov 23, 2020
Nov 4, 2018
Feb 2, 2023
Mar 16, 2023
Oct 7, 2020
Oct 3, 2020
Nov 21, 2020
Jul 2, 2022
Mar 27, 2021
Aug 3, 2020
Aug 3, 2020
Feb 17, 2022
Aug 3, 2020
Sep 30, 2020
Jul 2, 2022

Repository files navigation

Nexus

trunk npm 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'

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:

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.