lib/graphql/introspection.rb in graphql-1.11.4 vs lib/graphql/introspection.rb in graphql-1.11.5
- old
+ new
@@ -1,7 +1,103 @@
# frozen_string_literal: true
module GraphQL
module Introspection
+ def self.query(include_deprecated_args: false)
+ # The introspection query to end all introspection queries, copied from
+ # https://github.com/graphql/graphql-js/blob/master/src/utilities/introspectionQuery.js
+ <<-QUERY
+query IntrospectionQuery {
+ __schema {
+ queryType { name }
+ mutationType { name }
+ subscriptionType { name }
+ types {
+ ...FullType
+ }
+ directives {
+ name
+ description
+ locations
+ args {
+ ...InputValue
+ }
+ }
+ }
+}
+fragment FullType on __Type {
+ kind
+ name
+ description
+ 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
end
end
require "graphql/introspection/base_object"
require "graphql/introspection/input_value_type"