このプロジェクトについて

GraphQL.jsは、もともとFacebookで作成されたAPI用クエリ言語であるGraphQLのJavaScriptリファレンス実装です。READMEでは、言語の全般的な概要についてGraphQL仕様リポジトリを参照するように案内しており、そこで説明されている例はこのリポジトリ内のテストとして実装されているため、初心者は概要と対応するテストを併せて読むことが推奨されています。 主な機能 このライブラリは、型スキーマの構築と、そのスキーマに対するクエリの提供という2つの中心的な機能を提供します。スキーマはGraphQLSchemaとGraphQLObjectTypeで定義され、フィールドの型にはGraphQLStringなどの組み込みスカラーが使用されます。各フィールドにはresolve関数を指定でき、リゾルバーは値、Promise、またはPromiseの配列を返すことができます。クエリはgraphql関数を通じて実行され、この関数はスキーマとソース文字列を受け取り、結果のPromiseを返します。実行前に、関数はクエリが構文的および意味的に有効であるかを確認し、そうでない場合はエラーを報告します。これについては、位置情報とともに"Cannot query field"エラーを返す例で示されています。 インストール GraphQL.jsは、npm、yarn、またはbunを使用して、npmパッケージ`graphql`としてインストールされます。また、READMEでは、すべてのテストに合格した17.x.xラインの最新コミットを追跡する、自動的にメンテナンスされたnpmブランチについても言及されています。未リリースのコードを使用する方法としてこのブランチへの直接的な依存が提示されていますが、READMEでは公開済みのnpmビルドの使用が推奨されています。 ブラウザおよびバンドラーでの利用 READMEでは、このライブラリが汎用的なものであり、Nodeサーバーとブラウザの両方で使用できることが述べられており、構築例としてGraphiQLが挙げられています。GraphQL.jsはCommonJS (`require()`) とESModule (`import`) の両方のファイルで配布されているため、webpackやrollupを使用するプロジェクトでは、特別な設定なしに動作し、使用するライブラリの一部のみが含まれるようになります。`package.json`の`exports`マップがランタイムやバンドラーを適切なファイルに誘導します。`exports`をサポートしていないツールは、`.js`ファイルからCommonJSビルドを、`.mjs`ファイルからESModuleビルドを見つけます。 プロジェクトのガバナンスとサポート プルリクエストによる貢献が歓迎されており、リポジトリはEasyCLAによって管理されています。参加者は貢献する前に、個人または雇用主を通じてGraphQL Specification Membership合意書に署名する必要があります。また、コミュニティを財政的に支援する方法として、GraphQL Foundationへのメンバーシップについても言及されています。 変更はGitHubリリースとして追跡されます。プロジェクトはMITライセンスで提供されています。セマンティックバージョニングに従い、最新のメジャーバージョンには完全なサポート(バグ修正とセキュリティアップデート)が提供され、前のメジャーバージョンには新メジャーリリース後12ヶ月間機能サポート(仕様変更のバックポートは破壊的変更でない場合のみ)が提供されます。それ以前のバージョンについては、リリースから1年未満である場合を除き、アクティブなメンテナンスは行われません。現在、長期サポート(LTS)リリースはなく、ユーザーは最新の安定版へのアップグレードが推奨されています。メジャーバージョンのサポート終了日は少なくとも6ヶ月前に発表され、その後はそのバージョンに対して重大なセキュリティ問題であってもアップデートは提供されません。重大なセキュリティアップデートは、現在のメジャーバージョンと前のメジャーバージョンの両方に適用されます。アップグレードの支援は、バージョンごとのリリースノート、ドキュメントサイトの移行ガイド、およびコミュニティのDiscordチャンネルを通じて提供されています。