GraphQL Code Generator
Introduce Type Safety for the GraphQL Schema and Documents
Need to install dependencies and dev dependencies.
npm i @graphql-tools/graphql-file-loader @graphql-tools/load @graphql-tools/load-files @graphql-tools/schema @graphql-tools/stitch graphql-scalars
npm i -D @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-resolvers
npm i -D @graphql-codegen/introspection @graphql-codegen/typed-document-node @graphql-codegen/typescript-operations
Structure:
#inputs
/data-access
- /codegen.yml #Configuration file for GrapQL Code Generator
- /graphql
- /context.ts #Type definition of the Context
- /resolvers
- index.ts #exports all resolvers to be merged into Schema
- /core/
- /graphql-tools-scalars.ts #Enables Scalars to be used
- /schema.graphql #Baseline schema
- /**/*.reslovers.ts #GraphQL Resolvers
- /**/*.graphql #Definitions of GraphQL Types,Queries,Mutations,Inputs
- /types/*.ts #Definitions of TypeScript Interfaces which Match GraphQL Types
#outputs
/data-access
- /graphql
- /generated.ts #Type file to ensure type safety for Queries/Mutations/Resolvers/Types
- /graphql.schema.json #Introspection file to Expose all GraphQL Schema to Apollo
/ui/src/generated.tsx #Type file to ensure type safety for UI side Queries/Mutations/Resolvers/Types/FragmentsThis is very simple context object - more details can be added later.
The GraphQL Tools Scalars project exposes a handful of helpful types including DateTime/Email/ObjectID. In order to make these types available we need to re-export them.
YML
Last updated
Was this helpful?