Generate & scaffold type-safe resolvers based on your GraphQL Schema in TypeScript, Flow & Reason
graphqlgen
has been officially deprecated in favor of the The Guild's project GraphQL Code Generator. Learn more about the collaboration of Prisma and the Guild in this blog post.
- Schema-first Design in SDL to derive ideal types
- Type-safety Resolvers with precise signatures including
parent
,args
and 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.
TypeScript
Flow
Others under discussion:
-
Run initializer
yarn create graphqlgen my-app # npm init graphqlgen my-app cd my-app yarn start # npm run start
-
Edit
./my-app/src/schema.graphql
to your heart's content. -
Generate types:
yarn graphqlgen
yarn add --dev graphqlgen # npm install --save-dev graphqlgen
Then you will have access to the cli (gg
or graphqlgen
):
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
https://oss.prisma.io/graphqlgen
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
graphqlgen
and served as a source of inspiration - graphql-code-generator is a similar tool based on templates support both frontend & backend