Generate & scaffold type-safe resolvers based on your GraphQL Schema in TypeScript, Flow & Reason
🚀Schema-first: Based on your GraphQL schema (SDL) & model definitions 🤝Type-safe: Strong mapping between your GraphQL schema and resolvers, input arguments and models ♻️Codegen & scaffolding workflows: Minimal resolver boilerplate & automatically generated type definitions 😍Awesome DX: Auto-completion & Intellisense in VSCode, Webstorm, Atom, VIM & other editors 💅Ecosystem compatibility: Supports prettier and graphql-import out of the box
You can find the docs for the
graphqlgen CLI here.
Programming in type-safe environments provides a lot of benefits and gives you confidence about your code.
graphqlgen leverages the strongly typed GraphQL schema with the goal of making your backend type-safe while reducing the need to write boilerplate through code generation.
Start from scratch
Bootstrap a GraphQL server based with a ready-made
graphqlgen setup then
start the server:
npm init graphqlgen my-app cd my-app npm start
npm init requires npm version >= 6.2.0
yarn create graphqlgen my-app cd my-app yarn start
yarn create requires yarn version >= 0.25
After updating the GraphQL schema in
./my-app/src/schema.graphql, execute the
graphqlgen CLI to update all resolvers:
Add to existing project
You can install the
graphqlgen CLI with either of the following commands:
npm install -g graphqlgen
yarn global add graphqlgen
Once installed, you can invoke the CLI as follows:
The invocation of the command depends on a configuration file called
graphqlgen.yml which must be located in the directory where
graphqlgen is invoked. Here is an example:
language: typescript schema: ./src/schema.graphql context: ./src/types.ts:Context models: files: - ./src/generated/prisma-client/index.ts output: ./src/generated/graphqlgen.ts resolver-scaffolding: output: ./src/generated/tmp-resolvers/ layout: file-per-type
Learn more about the configuration in the docs.
graphqlgen in production
graphqlgen is ready to be used in production, it's still in active development and there might be breaking changes before it hits 1.0. Most changes will just affect the configuration and generated code layout but not the behaviour of the code itself.
- gqlgen is the Golang equivalent of
graphqlgenand served as a source of inspiration
- graphql-code-generator is a similar tool based on templates support both frontend & backend
#graphqlgen channel our Slack community if you run into issues or have questions. We love talking to you!