- LOCATIONS =
[
QUERY = :QUERY,
MUTATION = :MUTATION,
SUBSCRIPTION = :SUBSCRIPTION,
FIELD = :FIELD,
FRAGMENT_DEFINITION = :FRAGMENT_DEFINITION,
FRAGMENT_SPREAD = :FRAGMENT_SPREAD,
INLINE_FRAGMENT = :INLINE_FRAGMENT,
SCHEMA = :SCHEMA,
SCALAR = :SCALAR,
OBJECT = :OBJECT,
FIELD_DEFINITION = :FIELD_DEFINITION,
ARGUMENT_DEFINITION = :ARGUMENT_DEFINITION,
INTERFACE = :INTERFACE,
UNION = :UNION,
ENUM = :ENUM,
ENUM_VALUE = :ENUM_VALUE,
INPUT_OBJECT = :INPUT_OBJECT,
INPUT_FIELD_DEFINITION = :INPUT_FIELD_DEFINITION,
]
- DEFAULT_DEPRECATION_REASON =
'No longer supported'
- LOCATION_DESCRIPTIONS =
{
QUERY: 'Location adjacent to a query operation.',
MUTATION: 'Location adjacent to a mutation operation.',
SUBSCRIPTION: 'Location adjacent to a subscription operation.',
FIELD: 'Location adjacent to a field.',
FRAGMENT_DEFINITION: 'Location adjacent to a fragment definition.',
FRAGMENT_SPREAD: 'Location adjacent to a fragment spread.',
INLINE_FRAGMENT: 'Location adjacent to an inline fragment.',
SCHEMA: 'Location adjacent to a schema definition.',
SCALAR: 'Location adjacent to a scalar definition.',
OBJECT: 'Location adjacent to an object type definition.',
FIELD_DEFINITION: 'Location adjacent to a field definition.',
ARGUMENT_DEFINITION: 'Location adjacent to an argument definition.',
INTERFACE: 'Location adjacent to an interface definition.',
UNION: 'Location adjacent to a union definition.',
ENUM: 'Location adjacent to an enum definition.',
ENUM_VALUE: 'Location adjacent to an enum value definition.',
INPUT_OBJECT: 'Location adjacent to an input object type definition.',
INPUT_FIELD_DEFINITION: 'Location adjacent to an input object field definition.',
}
- SkipDirective =
GraphQL::Directive.define do
name "skip"
description "Directs the executor to skip this field or fragment when the `if` argument is true."
locations([GraphQL::Directive::FIELD, GraphQL::Directive::FRAGMENT_SPREAD, GraphQL::Directive::INLINE_FRAGMENT])
argument :if, !GraphQL::BOOLEAN_TYPE, 'Skipped when true.'
end
- IncludeDirective =
GraphQL::Directive.define do
name "include"
description "Directs the executor to include this field or fragment only when the `if` argument is true."
locations([GraphQL::Directive::FIELD, GraphQL::Directive::FRAGMENT_SPREAD, GraphQL::Directive::INLINE_FRAGMENT])
argument :if, !GraphQL::BOOLEAN_TYPE, 'Included when true.'
end
- DeprecatedDirective =
GraphQL::Directive.define do
name "deprecated"
description "Marks an element of a GraphQL schema as no longer supported."
locations([GraphQL::Directive::FIELD_DEFINITION, GraphQL::Directive::ENUM_VALUE])
reason_description = "Explains why this element was deprecated, usually also including a "\
"suggestion for how to access supported similar data. Formatted "\
"in [Markdown](https://daringfireball.net/projects/markdown/)."
argument :reason, GraphQL::STRING_TYPE, reason_description, default_value: GraphQL::Directive::DEFAULT_DEPRECATION_REASON
end