public function __invoke(ValidationContext $context)
{
return ['enter' => function (Node $node) use($context) {
if (isset($node->directives)) {
$knownDirectives = [];
foreach ($node->directives as $directive) {
/** @var DirectiveNode $directive */
$directiveName = $directive->name->value;
if (isset($knownDirectives[$directiveName])) {
$context->reportError(new Error(self::duplicateDirectiveMessage($directiveName), [$knownDirectives[$directiveName], $directive]));
} else {
$knownDirectives[$directiveName] = $directive;
}
}
}
}];
}