Я пытаюсь использовать федерацию GraphQL с подходом, основанным на схеме. Перед тем, как переключиться на федерацию, я использовал ts-node и небольшой скрипт для генерации моей типизации, подобной этой:
import { GraphQLDefinitionsFactory } from '@nestjs/graphql';
import { join } from 'path';
const definitionsFactory = new GraphQLDefinitionsFactory();
definitionsFactory.generate({
typePaths: ['./src/**/*.graphql'],
path: join(process.cwd(), 'src/graphql.schema.ts'),
outputAs: 'class',
});
Это работало хорошо, пока я не переключился на подход федерации и не изменил свою схему, добавив директиву @Key () в мой файл sites.graphql
(сначала схема!):
type Site @key(fields: "siteId") {
siteId: ID!
contractId: Int
dateStart: String
siteName: String
}
type Query {
GetSite(id: ID!): Site
}
Теперь, когда я генерирую свои классы, у меня возникает следующая ошибка:
> ts-node src/tools/generate-typings.ts
(node:84388) UnhandledPromiseRejectionWarning: Error: Unknown directive "@key".
Директива @key не распознается. Я что-то упускаю?
Спасибо за помощь