项目作者: graphql-nexus

项目描述 :
Code-First, Type-Safe, GraphQL Schema Construction
高级语言: TypeScript
项目地址: git://github.com/graphql-nexus/nexus.git
创建时间: 2018-11-02T21:11:33Z
项目社区:https://github.com/graphql-nexus/nexus

开源协议:MIT License

下载


Nexus

trunk
npm version

Declarative, code-first and strongly typed GraphQL schema construction for TypeScript & JavaScript.

Installation

  1. 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

  1. import { queryType, stringArg, makeSchema } from 'nexus'
  2. import { GraphQLServer } from 'graphql-yoga'
  3. const Query = queryType({
  4. definition(t) {
  5. t.string('hello', {
  6. args: { name: stringArg() },
  7. resolve: (parent, { name }) => `Hello ${name || 'World'}!`,
  8. })
  9. },
  10. })
  11. const schema = makeSchema({
  12. types: [Query],
  13. outputs: {
  14. schema: __dirname + '/generated/schema.graphql',
  15. typegen: __dirname + '/generated/typings.ts',
  16. },
  17. })
  18. const server = new GraphQLServer({
  19. schema,
  20. })
  21. 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.