Module: GraphQL::Introspection
- Defined in:
- lib/graphql/introspection.rb,
lib/graphql/introspection/type_type.rb,
lib/graphql/introspection/field_type.rb,
lib/graphql/introspection/base_object.rb,
lib/graphql/introspection/schema_type.rb,
lib/graphql/introspection/entry_points.rb,
lib/graphql/introspection/directive_type.rb,
lib/graphql/introspection/dynamic_fields.rb,
lib/graphql/introspection/type_kind_enum.rb,
lib/graphql/introspection/enum_value_type.rb,
lib/graphql/introspection/input_value_type.rb,
lib/graphql/introspection/directive_location_enum.rb
Defined Under Namespace
Classes: BaseObject, DirectiveLocationEnum, DirectiveType, DynamicFields, EntryPoints, EnumValueType, FieldType, InputValueType, SchemaType, TypeKindEnum, TypeType
Constant Summary collapse
- INTROSPECTION_QUERY =
This query is used by graphql-client so don't add the includeDeprecated argument for inputFields since the server may not support it. Two stage introspection queries will be required to handle this in clients.
GraphQL::Introspection.query
Class Method Summary collapse
Class Method Details
.query(include_deprecated_args: false, include_schema_description: false, include_is_repeatable: false, include_specified_by_url: false, include_is_one_of: false) ⇒ Object
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) # The introspection query to end all introspection queries, copied from # https://github.com/graphql/graphql-js/blob/master/src/utilities/introspectionQuery.js "query IntrospectionQuery {\n __schema {\n\#{include_schema_description ? \"description\" : \"\"}\nqueryType { name }\nmutationType { name }\nsubscriptionType { name }\ntypes {\n ...FullType\n}\ndirectives {\n name\n description\n locations\n \#{include_is_repeatable ? \"isRepeatable\" : \"\"}\n args\#{include_deprecated_args ? '(includeDeprecated: true)' : ''} {\n ...InputValue\n }\n}\n }\n}\nfragment FullType on __Type {\n kind\n name\n description\n \#{include_specified_by_url ? \"specifiedByURL\" : \"\"}\n \#{include_is_one_of ? \"isOneOf\" : \"\"}\n fields(includeDeprecated: true) {\nname\ndescription\nargs\#{include_deprecated_args ? '(includeDeprecated: true)' : ''} {\n ...InputValue\n}\ntype {\n ...TypeRef\n}\nisDeprecated\ndeprecationReason\n }\n inputFields\#{include_deprecated_args ? '(includeDeprecated: true)' : ''} {\n...InputValue\n }\n interfaces {\n...TypeRef\n }\n enumValues(includeDeprecated: true) {\nname\ndescription\nisDeprecated\ndeprecationReason\n }\n possibleTypes {\n...TypeRef\n }\n}\nfragment InputValue on __InputValue {\n name\n description\n type { ...TypeRef }\n defaultValue\n \#{include_deprecated_args ? 'isDeprecated' : ''}\n \#{include_deprecated_args ? 'deprecationReason' : ''}\n}\nfragment TypeRef on __Type {\n kind\n name\n ofType {\nkind\nname\nofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n}\n }\n}\n QUERY\nend\n".gsub(/\n{2,}/, "\n") |