4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/graphql/introspection.rb', line 4
def self.query(include_deprecated_args: false, include_schema_description: false, include_is_repeatable: false, include_specified_by_url: false, include_is_one_of: false)
<<-QUERY.gsub(/\n{2,}/, "\n")
query IntrospectionQuery {
__schema {
#{include_schema_description ? "description" : ""}
queryType { name }
mutationType { name }
subscriptionType { name }
types {
...FullType
}
directives {
name
description
locations
#{include_is_repeatable ? "isRepeatable" : ""}
args#{include_deprecated_args ? '(includeDeprecated: true)' : ''} {
...InputValue
}
}
}
}
fragment FullType on __Type {
kind
name
description
#{include_specified_by_url ? "specifiedByURL" : ""}
#{include_is_one_of ? "isOneOf" : ""}
fields(includeDeprecated: true) {
name
description
args#{include_deprecated_args ? '(includeDeprecated: true)' : ''} {
...InputValue
}
type {
...TypeRef
}
isDeprecated
deprecationReason
}
inputFields#{include_deprecated_args ? '(includeDeprecated: true)' : ''} {
...InputValue
}
interfaces {
...TypeRef
}
enumValues(includeDeprecated: true) {
name
description
isDeprecated
deprecationReason
}
possibleTypes {
...TypeRef
}
}
fragment InputValue on __InputValue {
name
description
type { ...TypeRef }
defaultValue
#{include_deprecated_args ? 'isDeprecated' : ''}
#{include_deprecated_args ? 'deprecationReason' : ''}
}
fragment TypeRef on __Type {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
}
}
}
}
}
}
}
}
QUERY
end
|