Linter rulesGraphQLknown-directive-locations
known-directive-locations
Since 0.9.0
This rule checks that directives are used at one of the locations of their definition, as the GraphQL specification requires.
Rule Details
The rule reports the issues of the validation rule of the same name, with the messages of graphql-js. A document that breaks it is rejected by GraphQL servers and tools, so the rule should stay enabled with the error severity.
Configuration
This rule has no options.
version: "1.0"
commands:
lint:
graphql:
rules:
known-directive-locations: warning
The rule can be disabled for a node and everything nested in it with an # apigenie-lint-disable known-directive-locations comment on the node, or for a whole file with the comment at the top of the file, separated from the first definition by a blank line. It applies to definitions.
Examples
Good.
directive @auth on FIELD_DEFINITION
type Query { a: Int @auth }
Bad. The linter reports Directive "@auth" may not be used on OBJECT..
directive @auth on FIELD_DEFINITION
type Query @auth { a: Int }
Compatibility
The rule applies to schemas and to operations. The built-in directives and those defined in the document are known; other directives are not checked.