-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
If the root query type is named something other than Query
(i.e. query_root
), the schema does not get built correctly.
To Reproduce
Steps to reproduce the behavior:
1. Pass in an introspection query with a non-standard query root
{
"__schema": {
"queryType": {
"name": "query_root",
"__typename": "__Type"
},
"mutationType": null,
"subscriptionType": null,
"types": [
{
"kind": "SCALAR",
"name": "Boolean",
"description": null,
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "SCALAR",
"name": "Float",
"description": null,
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "SCALAR",
"name": "ID",
"description": null,
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "SCALAR",
"name": "Int",
"description": null,
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "SCALAR",
"name": "String",
"description": null,
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "OBJECT",
"name": "__Directive",
"description": null,
"fields": [
{
"name": "args",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__InputValue",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "description",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "locations",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "ENUM",
"name": "__DirectiveLocation",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "name",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "ENUM",
"name": "__DirectiveLocation",
"description": null,
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": [
{
"name": "ARGUMENT_DEFINITION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "ENUM",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "ENUM_VALUE",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "FIELD",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "FIELD_DEFINITION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "FRAGMENT_DEFINITION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "FRAGMENT_SPREAD",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "INLINE_FRAGMENT",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "INPUT_FIELD_DEFINITION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "INPUT_OBJECT",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "INTERFACE",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "MUTATION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "OBJECT",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "QUERY",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "SCALAR",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "SCHEMA",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "SUBSCRIPTION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "UNION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
}
],
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "OBJECT",
"name": "__EnumValue",
"description": null,
"fields": [
{
"name": "deprecationReason",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "description",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "isDeprecated",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "Boolean",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "name",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "OBJECT",
"name": "__Field",
"description": null,
"fields": [
{
"name": "args",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__InputValue",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "deprecationReason",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "description",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "isDeprecated",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "Boolean",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "name",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "type",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "OBJECT",
"name": "__InputValue",
"description": null,
"fields": [
{
"name": "defaultValue",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "description",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "name",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "type",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "OBJECT",
"name": "__Schema",
"description": null,
"fields": [
{
"name": "directives",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Directive",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "mutationType",
"description": null,
"args": [],
"type": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "queryType",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "subscriptionType",
"description": null,
"args": [],
"type": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "types",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "OBJECT",
"name": "__Type",
"description": null,
"fields": [
{
"name": "description",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "enumValues",
"description": null,
"args": [
{
"name": "includeDeprecated",
"description": null,
"type": {
"kind": "SCALAR",
"name": "Boolean",
"ofType": null,
"__typename": "__Type"
},
"defaultValue": "false",
"__typename": "__InputValue"
}
],
"type": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__EnumValue",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "fields",
"description": null,
"args": [
{
"name": "includeDeprecated",
"description": null,
"type": {
"kind": "SCALAR",
"name": "Boolean",
"ofType": null,
"__typename": "__Type"
},
"defaultValue": "false",
"__typename": "__InputValue"
}
],
"type": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Field",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "inputFields",
"description": null,
"args": [],
"type": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__InputValue",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "interfaces",
"description": null,
"args": [],
"type": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "kind",
"description": null,
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "ENUM",
"name": "__TypeKind",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "name",
"description": null,
"args": [],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "ofType",
"description": null,
"args": [],
"type": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
},
{
"name": "possibleTypes",
"description": null,
"args": [],
"type": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "__Type",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"__typename": "__Type"
},
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__Field"
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "ENUM",
"name": "__TypeKind",
"description": null,
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": [
{
"name": "ENUM",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "INPUT_OBJECT",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "INTERFACE",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "LIST",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "NON_NULL",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "OBJECT",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "SCALAR",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
},
{
"name": "UNION",
"description": null,
"isDeprecated": false,
"deprecationReason": null,
"__typename": "__EnumValue"
}
],
"possibleTypes": null,
"__typename": "__Type"
},
{
"kind": "OBJECT",
"name": "query_root",
"description": "query root",
"fields": [],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null,
"__typename": "__Type"
}
],
"directives": [
{
"name": "include",
"description": null,
"locations": [
"FIELD",
"FRAGMENT_SPREAD",
"INLINE_FRAGMENT"
],
"args": [
{
"name": "if",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "Boolean",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"defaultValue": null,
"__typename": "__InputValue"
}
],
"__typename": "__Directive"
},
{
"name": "skip",
"description": null,
"locations": [
"FIELD",
"FRAGMENT_SPREAD",
"INLINE_FRAGMENT"
],
"args": [
{
"name": "if",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "Boolean",
"ofType": null,
"__typename": "__Type"
},
"__typename": "__Type"
},
"defaultValue": null,
"__typename": "__InputValue"
}
],
"__typename": "__Directive"
}
],
"__typename": "__Schema"
}
}
- Run the app
- See the blank canvas.
Expected behavior
It should display the schema normally.
Package
core
Additional context
This mainly seems to be an issue with introspection queries.
Original issue: #27
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working