Skip to content

acomagu/graphql-codegen-typescript-schema

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraphQL Codegen TypeScript Schema Plugin

This plugin for GraphQL Code Generator allows you to import the schema from generated file(like typescript-document-nodes plugin, but for schema).

Traditionally, working with .graphql files required configuring a bundler loader and adjusting tsconfig settings. With this plugin, you can bypass those steps. You can just import schema object from the generated TypeScript file.

Installation

npm i -D graphql-codegen-typescript-schema

Usage

Add the plugin to your GraphQL Codegen configuration file:

schema: schema.graphql
generates:
  schema.ts:
    plugins:
      - typescript-schema # <-- this

It can be used with other typescript-* plugins;

schema: schema.graphql
generates:
  generated.ts:
    plugins:
      - typescript
      - typescript-resolvers
      - typescript-schema # <-- this

This will add an named export as schema to generated.ts.

import { schema } from './generated.ts';

Options

schemaRepresentation

This option specifies how the schema should be coded in the generated TypeScript file. It accepts two values:

  • ast (default): Coded the schema as an AST object.
  • dsl: Coded the schema as a DSL string.

For example,

- typescript-schema
    schemaRepresentation: ast

This configuration will generate a file that looks like:

import { buildASTSchema } from 'graphql';

export const schema = buildASTSchema({
  kind: 'Document',
  definitions: [ ... ]
} as any);

Also,

- typescript-schema
    schemaRepresentation: dsl

This configuration will generate a file that looks like:

import { buildSchema } from 'graphql';

export const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

The former style makes the generated file size bigger, but CPU time is considered slightly shorter. The latter style has a smaller file size, but requires parsing on loading.

About

graphql-codegen plugin exports the GraphQLSchema object

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published