Generate & scaffold type-safe resolvers based on your GraphQL Schema in TypeScript, Flow & Reason
- Getting started
- Schema-first Design in SDL to derive ideal types
- Type-safety Resolvers with precise signatures including
argsand return type
- DX Precise resolver types puts your editor intellisense to work
- Ecosystem Interop codegen suitable for Yoga 1 or Apollo Server and supports prettier and graphql-import out of the box
Programming in type-safe environments can contribute toward great confidence in your code's integrity.
graphqlgen aims to leverage the GraphQL type system to make your resolvers completely type-safe. This is important because resolvers are the heart of any graphql service and yet the hardest to statically type due to their dynaminism.
Others under discussion:
Try out a project initializer
yarn create graphqlgen my-app # npm init graphqlgen my-app cd my-app yarn start # npm run start
./my-app/src/schema.graphqlto your heart's content.
Add to existing project
yarn add --dev graphqlgen # npm install --save-dev graphqlgen
Then you will have access to the cli (
yarn -s gg --help # npm run gg --help
Usage: graphqlgen or gg Options: -i, --init Initialize a graphqlgen.yml file -v, --version Show version number [boolean] -h, --help Show help [boolean]
gg depends on the presence of a
graphqlgen.yml config located in the directory where
gg is invoked. Here is an example:
language: typescript schema: ./src/schema.graphql context: ./src/context.ts:Context output: ./src/generated/graphqlgen.ts models: files: - ./src/generated/prisma-client/index.ts
Join us at
#graphqlgen in our Slack group and if you have more fleshed out ideas, bug reports etc. create a Github issue:
graphqlgen is still in early stage development where breaking changes and tool design are a fluid matter. Feedback is deeply appreciated. You may feel comfortable giving it a try on production systems since there is no runtime aspect and hence quite safe to do so (save for a few optional default resolvers).
- 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