GraphQL-Codegen
概要
Relay は relay-compiler という独自機能があるため不要 セットアップ
インストール
code:sh
$ npm install -D @graphql-codegen/cli @graphql-codegen/client-preset
package.json の 修正
code:package.json
{
"scripts": {
"codegen": "graphql-codegen"
}
}
設定ファイル(codegen.ts )の作成
code:codegen.ts
import type { CodegenConfig } from "@graphql-codegen/cli";
const config: CodegenConfig = {
ignoreNoDocuments: true,
generates: {
"./src/gql/": {
preset: "client",
plugins: [],
},
},
};
export default config;
コマンド実行
code:sh
$ npm run codegen
実行すると、src/gql ディレクトリと型定義ファイルが生成される
warning.icon 都度生成コマンドを叩かないといけないので、自動的に実行する仕組みが必要
生成されたファイルで定義されている graphql を用いる
code:tsx
const PostQuery = graphql(`
posts(tags: $tags) {
title
body
author {
name
}
}
}
`);
戻り値として型情報を持つクエリを返すので、後は useQuery に渡せば良い
code:tsx
query: PostQuery,
variables: { tags },
});
const { data, fetching, error } = result;
data に型が付与されることも確認できる
https://scrapbox.io/files/66f3f29fbbcc8f001d5a9c0b.png