graphql codegen apollo next ssr
v1.5.1
swrとgql-requestに基づく代替ソリューションはこちらにあります
NextJS SSRのApolloコードを生成します
NextJSは最近、公式のApollo GraphQLプラグイン( getInitialPropsに基づく)で採用されたHOCパターンを使用することを許可しないgetServerSidePropsを導入しました。同時に、Apolloクライアント( getDataFromTree )が提供するSSRメソッドは、Reactアプリを実施して複数回レンダリングして、関連するすべてのクエリを収集およびフェッチします。トップレベルのクエリを宣言することにより、レンダリング時間を節約し、 getServerSidePropsで動作するよりシンプルなパターンを提供できます。このプラグインは、各サーバークエリのgetServerSidePropsの型バージョンと、対応するHOCを生成し、キャッシュ結果を返すReactコンポーネントをラップします。このソリューションの制限/利点は、内側の反応成分に埋め込まれたすべてのクエリが、上位レベルのキャッシュでカバーされない限り無視されることです。
excludePatterns (デフォルト:null):操作名を除外するregexpexcludePatternsOptions (デフォルト: ''):操作名を除外するregexpフラグreactApolloVersion (デフォルト:2):ApolloクライアントバージョンapolloCacheImportFrom (デフォルト:Apollo-Cache-Inmemory):Apollo-Cache-Inmemory依存関係apolloImportFrom (デフォルト:apollo-client v2または @apollo/client v3):apolloクライアント依存関係apolloCacheImportFrom (デフォルト:apollo-cache-inmemory v2または @apollo/client v3):apolloキャッシュクライアント依存関係apolloStateKey (デフォルト:Apollostate):Apollo Stateの保存に使用されるキーwithHooks (デフォルト:false):生成された反応フックを有効/無効にすることにより、出力をカスタマイズしました。withHOC (デフォルト:TRUE):HOCを有効/無効にすることにより、出力をカスタマイズしました。customImports (デフォルト: ''):完全なカスタムインポート宣言contextType (デフォルト: 'any'):getApolloclientに渡されたcontexタイプcontextTypeRequired (デフォルト:FALSE):GetServerSidePropsから呼び出されたときにコンテキストが必要な場合pre (デフォルト: ''):各関数の前のカスタムコードpost (デフォルト: ''):各関数後のカスタムコードapolloClientInstanceImport (デフォルト: ''):Apolloclientインスタンスのインポートを追加しますreplaceQuery (デフォルト:false):生成された操作内の「クエリ」キーワードを交換しますreplacePage (デフォルト:false):生成された操作内の「ページ」キーワードを置き換えるreactImport (デフォルト:インポートタイプ「React」からのReact;):カスタムReactインポート overwrite: true
schema:
- 'https://myschema/graphql'
documents:
- 'src/**/*.graphql'
generates:
src/@types/codegen/graphql.tsx:
plugins:
- 'typescript'
- 'typescript-operations'
- 'typescript-react-apollo'
src/@types/codegen/page.tsx:
config:
documentMode: external
importDocumentNodeExternallyFrom: ./graphql
preset: import-types
presetConfig:
typesPath: ./graphql
plugins:
- ./build/src/index.js
hooks:
afterAllFileWrite:
- prettier --write