TL;DR
- GraphQL Tools の
loadSchemaSyncとGraphQLFileLoaderを使うと、.graphqlファイルに書いた GraphQL Schema を TypeScript のコードから読み込める。 - 読み込んだ Schema には、
addResolversToSchemaで Resolver を追加できる。
検証
GraphQL Tools のドキュメントに沿って、必要なパッケージをインストールする。
$ npm i @graphql-tools/graphql-file-loader @graphql-tools/load @graphql-tools/schemaloadSchemaSync に Schema ファイルのパスと、ローダとして GraphQLFileLoader を渡して読み込む。
// src/index.ts
import { GraphQLFileLoader } from "@graphql-tools/graphql-file-loader"
import { loadSchemaSync } from "@graphql-tools/load"
const schema = loadSchemaSync("schema.graphql", {
loaders: [new GraphQLFileLoader()],
})読み込んだ Schema に、addResolversToSchema で Resolver を追加する。
// index.ts
const resolvers = {
Query: { ... },
Mutation: { ... },
};
const schemaWithResolvers = addResolversToSchema({ schema, resolvers });あとは、この schemaWithResolvers を Apollo Server などに渡せばよい。
キーワード
- GraphQL
- GraphQL Schema
- Resolver
- GraphQL Tools
- TypeScript
- Apollo Server