New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@stackup/codegen

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@stackup/codegen

Generate types for a GraphQL API

Source
npmnpm
Version
0.10.0-beta.2
Version published
Weekly downloads
6
-92.77%
Maintainers
1
Weekly downloads
 
Created
Source

@stackup/codegen

Build Version License

A zero-config CLI tool to generate GraphQL type definitions and React Hooks. It's a thin wrapper around GraphQL code generator.

Install

$ yarn add @stackup/codegen --dev
$ yarn codegen --help
Generate type definitions from GraphQL queries.

USAGE
  $ @stackup/codegen ROOT

ARGUMENTS
  ROOT  directory where your GraphQL queries live

OPTIONS
  -s, --schema=schema  (required) URL or file path to the GraphQL schema
  -t, --types=types    declare type for a custom scalar
  --colocate=colocate  generate files adjacent to their GraphQL source
  --help               show CLI help
  --immutable          generate readonly types
  --show-config        show the generated configuration
  --suffix             append a suffix to generated types
  --version            show CLI version

Usage

You have a directory of queries:

src/
  queries/
    posts.graphql
    users.graphql

Run the code generator:

$ yarn codegen src/queries --schema http://localhost:3000/graphql

Now, you have code!

src/
  queries/
    index.ts       <- This module exports typed React Hooks
    schema.graphql <- This file contains your GraphQL schema
    posts.graphql
    users.graphql

Import the typed document node and use a query:

import { useQuery } from "@apollo/client"
import { UserDocument } from "../queries";

useQuery(UserDocument);

Colocated Queries

What if you want your queries to live next to your components?

src/
  components/
    User/
      User.tsx
      queries.graphql

Run the code generator:

$ yarn codegen src --colocate src/queries --schema http://localhost:3000/graphql

Now, your file tree should look like this:

src/
  queries/
    index.ts       <- This module exports your schema's types
    schema.graphql <- This file contains your GraphQL schema
  components/
    User/
      User.tsx
      queries.graphql
      queries.ts   <- This module exports typed React hooks

FAQs

Package last updated on 14 Jul 2021

Related posts