Я столкнулся с сценарием, аналогичным вашему, когда вы работали в полностью пользовательских директивах с обновлением graphql-tools до v14, определение этой директивы необходимо в схеме.Вы можете указать полем, объектом, мутацией, где ваша директива будет работать.
directive @requireAuth on FIELD_DEFINITION
Для работы примерно так, на уровне поля
extend type Query {
me: String! @requireAuth
user(userId: ID!):User!
users: [User]!
}
И мой класс, который расширяет SchemaDirectiveVisitor, эточто-то вроде этого
import { SchemaDirectiveVisitor } from "apollo-server";
export class YourCustomDirective extends SchemaDirectiveVisitor {
// Your code for the directive
}
В предоставленной ссылке есть доступные методы, которые можно использовать, чтобы иметь свою собственную логику на уровне поля, объекта, скаляра и т. д.Надеюсь это поможет.
Схема Директива Посетитель