* fix: #921 wrong typegen for nullable values w/ default * refactor: make the conditional easier to follow |
||
|---|---|---|
| .github | ||
| .vscode | ||
| docs | ||
| examples | ||
| scripts | ||
| src | ||
| tests | ||
| tmp | ||
| .gitignore | ||
| .prettierrc | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE.md | ||
| README.md | ||
| codecov.yml | ||
| gulpfile.js | ||
| jest.config.js | ||
| package.json | ||
| tsconfig.build.json | ||
| tsconfig.cjs.json | ||
| tsconfig.esm.json | ||
| tsconfig.json | ||
| tsconfig.spec.types.json | ||
| tslint.json | ||
| yarn.lock | ||
README.md
Nexus
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-jstypes, and it's just aGraphQLSchema
So it fits in just fine with existing community solutions ofapollo-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.