🍎
TypesciprtでGraphQL Code Generator を試す
概要
仕事でgraphql code generator(以下codegen)を使用するので色々と試していく。
リポジトリは以下。
こちらを参考させて頂く。
環境
- macOS Monterey ver 12.2.1
- yarn ver 1.22.19
- nuxt ver 2.15.8
codegenのインストール
yarnで追加する。codegenはtypescript専用のライブラリではなく、様々な言語に対応しており、自分の用途にあったライブラリを組み合わせていかないといけない。
今回はとりあえず@graphql-codegen/typescript
と@graphql-codegen/typescript-operations
と@graphql-codegen/typescript-graphql-request
を追加してみる。必要になったら都度他ライブラリを追加する。
yarn add @graphql-codegen/typescript @graphql-codegen/typescript-operations @graphql-codegen/typescript-graphql-request
codegenの設定
codegen.yml
に設定を書いていく。
schema: schema.graphql
documents: graphql/*.graphql
generates:
lib/generated/client.ts:
plugins:
- typescript
- typescript-operations
- typescript-graphql-request
ルートディレクトリにスキーマを書く。
type Recipe {
id: Int!
title: String!
imageUrl: String
}
type Query {
recipe(id: Int!): Recipe!
}
graphql
配下に発行するクエリを書く。
type Recipe {
id: Int!
title: String!
imageUrl: String
}
type Query {
recipe(id: Int!): Recipe!
}
これでnpx graphql-codegen
を実行すると自動生成されずはずだがされない、、
Discussion
自動生成できなかった原因
そもそも
codegen.yml
は@graphql-codegen/cli
で作れるっぽい。あとはgraphql
を追加していなかった。つまり、Typescriptのcodegenライブラリを追加する前に
で追加して
で
codegen.yml
の自動生成をしなければならなかった