diff --git a/Definition/Builder/SchemaBuilder.php b/Definition/Builder/SchemaBuilder.php index cbf4c7234..858b9b1e3 100644 --- a/Definition/Builder/SchemaBuilder.php +++ b/Definition/Builder/SchemaBuilder.php @@ -11,8 +11,7 @@ namespace Overblog\GraphQLBundle\Definition\Builder; -use GraphQL\Schema; -use GraphQL\Type\Definition\Config; +use GraphQL\Type\Schema; use Overblog\GraphQLBundle\Resolver\ResolverInterface; class SchemaBuilder @@ -40,17 +39,20 @@ public function __construct(ResolverInterface $typeResolver, $enableValidation = */ public function create($queryAlias = null, $mutationAlias = null, $subscriptionAlias = null) { - $this->enableValidation ? Config::enableValidation() : Config::disableValidation(); - $query = $this->typeResolver->resolve($queryAlias); $mutation = $this->typeResolver->resolve($mutationAlias); $subscription = $this->typeResolver->resolve($subscriptionAlias); - return new Schema([ + $schema = new Schema([ 'query' => $query, 'mutation' => $mutation, 'subscription' => $subscription, 'types' => $this->typeResolver->getSolutions(), ]); + if ($this->enableValidation) { + $schema->assertValid(); + } + + return $schema; } } diff --git a/DependencyInjection/OverblogGraphQLExtension.php b/DependencyInjection/OverblogGraphQLExtension.php index 1d974c27a..8646cb1e5 100644 --- a/DependencyInjection/OverblogGraphQLExtension.php +++ b/DependencyInjection/OverblogGraphQLExtension.php @@ -11,7 +11,7 @@ namespace Overblog\GraphQLBundle\DependencyInjection; -use GraphQL\Schema; +use GraphQL\Type\Schema; use Overblog\GraphQLBundle\Config\TypeWithOutputFieldsDefinition; use Symfony\Component\Cache\Adapter\ArrayAdapter; use Symfony\Component\Config\FileLocator; diff --git a/Error/ErrorHandler.php b/Error/ErrorHandler.php index 360136c2c..7c5b90f3f 100644 --- a/Error/ErrorHandler.php +++ b/Error/ErrorHandler.php @@ -157,6 +157,7 @@ public function logException($exception, $errorLevel = LogLevel::ERROR) public function handleErrors(ExecutionResult $executionResult, $throwRawException = false) { + $executionResult->setErrorFormatter(sprintf('\%s::formatError', GraphQLError::class)); $exceptions = $this->treatExceptions($executionResult->errors, $throwRawException); $executionResult->errors = $exceptions['errors']; if (!empty($exceptions['extensions']['warnings'])) { diff --git a/Executor/Executor.php b/Executor/Executor.php index 54ffdf200..acda75b1b 100644 --- a/Executor/Executor.php +++ b/Executor/Executor.php @@ -14,10 +14,16 @@ use GraphQL\Executor\ExecutionResult; use GraphQL\Executor\Promise\Promise; use GraphQL\Executor\Promise\PromiseAdapter; -use GraphQL\Schema; +use GraphQL\GraphQL; +use GraphQL\Type\Schema; class Executor implements ExecutorInterface { + /** + * @var PromiseAdapter + */ + private $promiseAdapter; + /** * @param Schema $schema * @param string $requestString @@ -30,7 +36,16 @@ class Executor implements ExecutorInterface */ public function execute(Schema $schema, $requestString, $rootValue = null, $contextValue = null, $variableValues = null, $operationName = null) { - return call_user_func_array('GraphQL\GraphQL::executeAndReturnResult', func_get_args()); + $args = func_get_args(); + + if (null === $this->promiseAdapter) { + $method = 'executeQuery'; + } else { + array_unshift($args, $this->promiseAdapter); + $method = 'promiseToExecute'; + } + + return call_user_func_array(sprintf('\%s::%s', GraphQL::class, $method), $args); } /** @@ -38,6 +53,6 @@ public function execute(Schema $schema, $requestString, $rootValue = null, $cont */ public function setPromiseAdapter(PromiseAdapter $promiseAdapter = null) { - call_user_func_array('GraphQL\GraphQL::setPromiseAdapter', func_get_args()); + $this->promiseAdapter = $promiseAdapter; } } diff --git a/Executor/ExecutorInterface.php b/Executor/ExecutorInterface.php index e51056ecb..588863e6c 100644 --- a/Executor/ExecutorInterface.php +++ b/Executor/ExecutorInterface.php @@ -14,7 +14,7 @@ use GraphQL\Executor\ExecutionResult; use GraphQL\Executor\Promise\Promise; use GraphQL\Executor\Promise\PromiseAdapter; -use GraphQL\Schema; +use GraphQL\Type\Schema; interface ExecutorInterface { diff --git a/Request/Executor.php b/Request/Executor.php index 81c5148a2..b1fbbdc4d 100644 --- a/Request/Executor.php +++ b/Request/Executor.php @@ -13,7 +13,7 @@ use GraphQL\Executor\ExecutionResult; use GraphQL\Executor\Promise\PromiseAdapter; -use GraphQL\Schema; +use GraphQL\Type\Schema; use GraphQL\Validator\DocumentValidator; use GraphQL\Validator\Rules\QueryComplexity; use GraphQL\Validator\Rules\QueryDepth; @@ -176,7 +176,7 @@ public function execute(array $data, array $context = [], $schemaName = null) isset($data[ParserInterface::PARAM_OPERATION_NAME]) ? $data[ParserInterface::PARAM_OPERATION_NAME] : null ); - if ($this->promiseAdapter && $this->promiseAdapter->isThenable($result)) { + if ($this->promiseAdapter) { $result = $this->promiseAdapter->wait($result); } @@ -189,6 +189,13 @@ public function execute(array $data, array $context = [], $schemaName = null) return $this->prepareResult($result, $startTime, $startMemoryUsage); } + /** + * @param ExecutionResult $result + * @param int $startTime + * @param int $startMemoryUsage + * + * @return ExecutionResult + */ private function prepareResult($result, $startTime, $startMemoryUsage) { if ($this->hasDebugInfo()) { diff --git a/Tests/Functional/App/config/global/mapping/global.types.yml b/Tests/Functional/App/config/global/mapping/global.types.yml index c37e882cb..372b34ec1 100644 --- a/Tests/Functional/App/config/global/mapping/global.types.yml +++ b/Tests/Functional/App/config/global/mapping/global.types.yml @@ -54,6 +54,7 @@ PhotoAndPost: type: union config: types: [Photo, Post] + resolveType: '@=service("overblog_graphql.test.resolver.global").typeResolver(value)' PhotoInput: type: input-object diff --git a/Tests/Functional/Command/fixtures/schema.json b/Tests/Functional/Command/fixtures/schema.json index 20cb80072..ee52cc149 100644 --- a/Tests/Functional/Command/fixtures/schema.json +++ b/Tests/Functional/Command/fixtures/schema.json @@ -7,145 +7,133 @@ "subscriptionType": null, "types": [ { - "kind": "OBJECT", - "name": "Query", - "fields": [ - { - "name": "user", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], + "kind": "SCALAR", + "name": "ID", + "fields": null, "inputFields": null, - "interfaces": [], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Float", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Int", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Boolean", + "fields": null, + "inputFields": null, + "interfaces": null, "enumValues": null, "possibleTypes": null }, { "kind": "OBJECT", - "name": "User", + "name": "__Schema", "fields": [ { - "name": "name", + "name": "types", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "friends", - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null + "name": "queryType", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null } - ], + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mutationType", + "args": [], "type": { "kind": "OBJECT", - "name": "friendConnection", + "name": "__Type", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "friendsForward", - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], + "name": "subscriptionType", + "args": [], "type": { "kind": "OBJECT", - "name": "userConnection", + "name": "__Type", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "friendsBackward", - "args": [ - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], + "name": "directives", + "args": [], "type": { - "kind": "OBJECT", - "name": "userConnection", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Directive", + "ofType": null + } + } + } }, "isDeprecated": false, "deprecationReason": null @@ -156,126 +144,168 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "SCALAR", - "name": "String", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Int", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "OBJECT", - "name": "friendConnection", + "name": "__Type", "fields": [ { - "name": "totalCount", + "name": "kind", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__TypeKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", "args": [], "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "pageInfo", + "name": "description", "args": [], "type": { - "kind": "NON_NULL", + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fields", + "args": [ + { + "name": "includeDeprecated", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Field", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "edges", + "name": "interfaces", "args": [], "type": { "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "friendEdge", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PageInfo", - "fields": [ + }, { - "name": "hasNextPage", + "name": "possibleTypes", "args": [], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "hasPreviousPage", - "args": [], + "name": "enumValues", + "args": [ + { + "name": "includeDeprecated", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__EnumValue", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "startCursor", + "name": "inputFields", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "endCursor", + "name": "ofType", "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "__Type", "ofType": null }, "isDeprecated": false, @@ -288,74 +318,117 @@ "possibleTypes": null }, { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "__TypeKind", "fields": null, "inputFields": null, "interfaces": null, - "enumValues": null, + "enumValues": [ + { + "name": "SCALAR", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OBJECT", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INTERFACE", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_OBJECT", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LIST", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NON_NULL", + "isDeprecated": false, + "deprecationReason": null + } + ], "possibleTypes": null }, { "kind": "OBJECT", - "name": "friendEdge", + "name": "__Field", "fields": [ { - "name": "friendshipTime", + "name": "name", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "node", + "name": "description", "args": [], "type": { - "kind": "OBJECT", - "name": "User", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "cursor", + "name": "args", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } } }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "userConnection", - "fields": [ + }, { - "name": "pageInfo", + "name": "type", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "PageInfo", + "name": "__Type", "ofType": null } }, @@ -363,19 +436,30 @@ "deprecationReason": null }, { - "name": "edges", + "name": "isDeprecated", "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "userEdge", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "deprecationReason", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -385,33 +469,59 @@ }, { "kind": "OBJECT", - "name": "userEdge", + "name": "__InputValue", "fields": [ { - "name": "node", + "name": "name", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", "args": [], "type": { - "kind": "OBJECT", - "name": "User", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "cursor", + "name": "type", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "__Type", "ofType": null } }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "defaultValue", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -421,40 +531,17 @@ }, { "kind": "OBJECT", - "name": "__Schema", + "name": "__EnumValue", "fields": [ { - "name": "types", - "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 - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", + "name": "name", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "__Type", + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -462,46 +549,38 @@ "deprecationReason": null }, { - "name": "mutationType", + "name": "description", "args": [], "type": { - "kind": "OBJECT", - "name": "__Type", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "subscriptionType", + "name": "isDeprecated", "args": [], "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "directives", + "name": "deprecationReason", "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 - } - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -514,34 +593,23 @@ }, { "kind": "OBJECT", - "name": "__Type", + "name": "__Directive", "fields": [ { - "name": "kind", + "name": "name", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "ENUM", - "name": "__TypeKind", + "kind": "SCALAR", + "name": "String", "ofType": null } }, "isDeprecated": false, "deprecationReason": null }, - { - "name": "name", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "description", "args": [], @@ -554,28 +622,22 @@ "deprecationReason": null }, { - "name": "fields", - "args": [ - { - "name": "includeDeprecated", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], + "name": "locations", + "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__DirectiveLocation", + "ofType": null + } } } }, @@ -583,18 +645,22 @@ "deprecationReason": null }, { - "name": "interfaces", + "name": "args", "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } } } }, @@ -602,96 +668,103 @@ "deprecationReason": null }, { - "name": "possibleTypes", + "name": "onOperation", "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use `locations`." }, { - "name": "enumValues", - "args": [ - { - "name": "includeDeprecated", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" + "name": "onFragment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } - ], + }, + "isDeprecated": true, + "deprecationReason": "Use `locations`." + }, + { + "name": "onField", + "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } }, + "isDeprecated": true, + "deprecationReason": "Use `locations`." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "__DirectiveLocation", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "QUERY", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MUTATION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUBSCRIPTION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FIELD", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_DEFINITION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_SPREAD", "isDeprecated": false, "deprecationReason": null }, { - "name": "inputFields", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, + "name": "INLINE_FRAGMENT", "isDeprecated": false, "deprecationReason": null }, { - "name": "ofType", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, + "name": "SCHEMA", "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ + }, { "name": "SCALAR", "isDeprecated": false, @@ -702,6 +775,16 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "FIELD_DEFINITION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ARGUMENT_DEFINITION", + "isDeprecated": false, + "deprecationReason": null + }, { "name": "INTERFACE", "isDeprecated": false, @@ -718,17 +801,17 @@ "deprecationReason": null }, { - "name": "INPUT_OBJECT", + "name": "ENUM_VALUE", "isDeprecated": false, "deprecationReason": null }, { - "name": "LIST", + "name": "INPUT_OBJECT", "isDeprecated": false, "deprecationReason": null }, { - "name": "NON_NULL", + "name": "INPUT_FIELD_DEFINITION", "isDeprecated": false, "deprecationReason": null } @@ -737,25 +820,31 @@ }, { "kind": "OBJECT", - "name": "__Field", + "name": "Query", "fields": [ { - "name": "name", + "name": "user", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "OBJECT", + "name": "User", + "ofType": null }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "User", + "fields": [ { - "name": "description", + "name": "name", "args": [], "type": { "kind": "SCALAR", @@ -766,64 +855,108 @@ "deprecationReason": null }, { - "name": "args", - "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 - } - } + "name": "friends", + "args": [ + { + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "args": [], + ], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } + "kind": "OBJECT", + "name": "friendConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "isDeprecated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "name": "friendsForward", + "args": [ + { + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null } + ], + "type": { + "kind": "OBJECT", + "name": "userConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "deprecationReason", - "args": [], + "name": "friendsBackward", + "args": [ + { + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "userConnection", "ofType": null }, "isDeprecated": false, @@ -837,43 +970,28 @@ }, { "kind": "OBJECT", - "name": "__InputValue", + "name": "friendConnection", "fields": [ { - "name": "name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", + "name": "totalCount", "args": [], "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "type", + "name": "pageInfo", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "__Type", + "name": "PageInfo", "ofType": null } }, @@ -881,12 +999,16 @@ "deprecationReason": null }, { - "name": "defaultValue", + "name": "edges", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "friendEdge", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -899,17 +1021,17 @@ }, { "kind": "OBJECT", - "name": "__EnumValue", + "name": "PageInfo", "fields": [ { - "name": "name", + "name": "hasNextPage", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, @@ -917,18 +1039,7 @@ "deprecationReason": null }, { - "name": "description", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", + "name": "hasPreviousPage", "args": [], "type": { "kind": "NON_NULL", @@ -943,7 +1054,18 @@ "deprecationReason": null }, { - "name": "deprecationReason", + "name": "startCursor", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endCursor", "args": [], "type": { "kind": "SCALAR", @@ -961,246 +1083,124 @@ }, { "kind": "OBJECT", - "name": "__Directive", + "name": "friendEdge", "fields": [ { - "name": "name", + "name": "friendshipTime", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "description", + "name": "node", "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "User", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "locations", + "name": "cursor", "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 - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "userConnection", + "fields": [ { - "name": "args", + "name": "pageInfo", "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 - } - } + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "onOperation", + "name": "edges", "args": [], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "OBJECT", + "name": "userEdge", "ofType": null } }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." - }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "userEdge", + "fields": [ { - "name": "onFragment", + "name": "node", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "OBJECT", + "name": "User", + "ofType": null }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." + "isDeprecated": false, + "deprecationReason": null }, { - "name": "onField", + "name": "cursor", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Boolean", + "name": "String", "ofType": null } }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", "isDeprecated": false, "deprecationReason": null } ], - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Float", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "ID", - "fields": null, "inputFields": null, - "interfaces": null, + "interfaces": [], "enumValues": null, "possibleTypes": null } diff --git a/Tests/Functional/Command/fixtures/schema.modern.json b/Tests/Functional/Command/fixtures/schema.modern.json index b17eaa297..106b8c98e 100644 --- a/Tests/Functional/Command/fixtures/schema.modern.json +++ b/Tests/Functional/Command/fixtures/schema.modern.json @@ -8,145 +8,133 @@ "subscriptionType": null, "types": [ { - "kind": "OBJECT", - "name": "Query", - "fields": [ - { - "name": "user", - "args": [], - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], + "kind": "SCALAR", + "name": "ID", + "fields": null, "inputFields": null, - "interfaces": [], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Float", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Int", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Boolean", + "fields": null, + "inputFields": null, + "interfaces": null, "enumValues": null, "possibleTypes": null }, { "kind": "OBJECT", - "name": "User", + "name": "__Schema", "fields": [ { - "name": "name", + "name": "types", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "friends", - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null + "name": "queryType", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null } - ], + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mutationType", + "args": [], "type": { "kind": "OBJECT", - "name": "friendConnection", + "name": "__Type", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "friendsForward", - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], + "name": "subscriptionType", + "args": [], "type": { "kind": "OBJECT", - "name": "userConnection", + "name": "__Type", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "friendsBackward", - "args": [ - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null - } - ], + "name": "directives", + "args": [], "type": { - "kind": "OBJECT", - "name": "userConnection", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Directive", + "ofType": null + } + } + } }, "isDeprecated": false, "deprecationReason": null @@ -157,126 +145,168 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "SCALAR", - "name": "String", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Int", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "OBJECT", - "name": "friendConnection", + "name": "__Type", "fields": [ { - "name": "totalCount", + "name": "kind", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__TypeKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", "args": [], "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "pageInfo", + "name": "description", "args": [], "type": { - "kind": "NON_NULL", + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fields", + "args": [ + { + "name": "includeDeprecated", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Field", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "edges", + "name": "interfaces", "args": [], "type": { "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "friendEdge", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PageInfo", - "fields": [ + }, { - "name": "hasNextPage", + "name": "possibleTypes", "args": [], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "hasPreviousPage", - "args": [], + "name": "enumValues", + "args": [ + { + "name": "includeDeprecated", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__EnumValue", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "startCursor", + "name": "inputFields", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "endCursor", + "name": "ofType", "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "__Type", "ofType": null }, "isDeprecated": false, @@ -289,74 +319,117 @@ "possibleTypes": null }, { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "__TypeKind", "fields": null, "inputFields": null, "interfaces": null, - "enumValues": null, + "enumValues": [ + { + "name": "SCALAR", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OBJECT", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INTERFACE", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_OBJECT", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LIST", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NON_NULL", + "isDeprecated": false, + "deprecationReason": null + } + ], "possibleTypes": null }, { "kind": "OBJECT", - "name": "friendEdge", + "name": "__Field", "fields": [ { - "name": "friendshipTime", + "name": "name", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "node", + "name": "description", "args": [], "type": { - "kind": "OBJECT", - "name": "User", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "cursor", + "name": "args", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } } }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "userConnection", - "fields": [ + }, { - "name": "pageInfo", + "name": "type", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "PageInfo", + "name": "__Type", "ofType": null } }, @@ -364,19 +437,30 @@ "deprecationReason": null }, { - "name": "edges", + "name": "isDeprecated", "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "userEdge", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "deprecationReason", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -386,33 +470,59 @@ }, { "kind": "OBJECT", - "name": "userEdge", + "name": "__InputValue", "fields": [ { - "name": "node", + "name": "name", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", "args": [], "type": { - "kind": "OBJECT", - "name": "User", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "cursor", + "name": "type", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "__Type", "ofType": null } }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "defaultValue", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -422,40 +532,17 @@ }, { "kind": "OBJECT", - "name": "__Schema", + "name": "__EnumValue", "fields": [ { - "name": "types", - "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 - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", + "name": "name", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "__Type", + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -463,46 +550,38 @@ "deprecationReason": null }, { - "name": "mutationType", + "name": "description", "args": [], "type": { - "kind": "OBJECT", - "name": "__Type", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "subscriptionType", + "name": "isDeprecated", "args": [], "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "directives", + "name": "deprecationReason", "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 - } - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -515,34 +594,23 @@ }, { "kind": "OBJECT", - "name": "__Type", + "name": "__Directive", "fields": [ { - "name": "kind", + "name": "name", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "ENUM", - "name": "__TypeKind", + "kind": "SCALAR", + "name": "String", "ofType": null } }, "isDeprecated": false, "deprecationReason": null }, - { - "name": "name", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "description", "args": [], @@ -555,28 +623,22 @@ "deprecationReason": null }, { - "name": "fields", - "args": [ - { - "name": "includeDeprecated", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], + "name": "locations", + "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__DirectiveLocation", + "ofType": null + } } } }, @@ -584,18 +646,22 @@ "deprecationReason": null }, { - "name": "interfaces", + "name": "args", "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } } } }, @@ -603,96 +669,103 @@ "deprecationReason": null }, { - "name": "possibleTypes", + "name": "onOperation", "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use `locations`." }, { - "name": "enumValues", - "args": [ - { - "name": "includeDeprecated", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" + "name": "onFragment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } - ], + }, + "isDeprecated": true, + "deprecationReason": "Use `locations`." + }, + { + "name": "onField", + "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } }, + "isDeprecated": true, + "deprecationReason": "Use `locations`." + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "__DirectiveLocation", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "QUERY", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MUTATION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUBSCRIPTION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FIELD", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_DEFINITION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_SPREAD", "isDeprecated": false, "deprecationReason": null }, { - "name": "inputFields", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, + "name": "INLINE_FRAGMENT", "isDeprecated": false, "deprecationReason": null }, { - "name": "ofType", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, + "name": "SCHEMA", "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ + }, { "name": "SCALAR", "isDeprecated": false, @@ -703,6 +776,16 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "FIELD_DEFINITION", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ARGUMENT_DEFINITION", + "isDeprecated": false, + "deprecationReason": null + }, { "name": "INTERFACE", "isDeprecated": false, @@ -719,17 +802,17 @@ "deprecationReason": null }, { - "name": "INPUT_OBJECT", + "name": "ENUM_VALUE", "isDeprecated": false, "deprecationReason": null }, { - "name": "LIST", + "name": "INPUT_OBJECT", "isDeprecated": false, "deprecationReason": null }, { - "name": "NON_NULL", + "name": "INPUT_FIELD_DEFINITION", "isDeprecated": false, "deprecationReason": null } @@ -738,25 +821,31 @@ }, { "kind": "OBJECT", - "name": "__Field", + "name": "Query", "fields": [ { - "name": "name", + "name": "user", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "OBJECT", + "name": "User", + "ofType": null }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "User", + "fields": [ { - "name": "description", + "name": "name", "args": [], "type": { "kind": "SCALAR", @@ -767,64 +856,108 @@ "deprecationReason": null }, { - "name": "args", - "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 - } - } + "name": "friends", + "args": [ + { + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "args": [], + ], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } + "kind": "OBJECT", + "name": "friendConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "isDeprecated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "name": "friendsForward", + "args": [ + { + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null } + ], + "type": { + "kind": "OBJECT", + "name": "userConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "deprecationReason", - "args": [], + "name": "friendsBackward", + "args": [ + { + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "userConnection", "ofType": null }, "isDeprecated": false, @@ -838,43 +971,28 @@ }, { "kind": "OBJECT", - "name": "__InputValue", + "name": "friendConnection", "fields": [ { - "name": "name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", + "name": "totalCount", "args": [], "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "type", + "name": "pageInfo", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "__Type", + "name": "PageInfo", "ofType": null } }, @@ -882,12 +1000,16 @@ "deprecationReason": null }, { - "name": "defaultValue", + "name": "edges", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "friendEdge", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -900,17 +1022,17 @@ }, { "kind": "OBJECT", - "name": "__EnumValue", + "name": "PageInfo", "fields": [ { - "name": "name", + "name": "hasNextPage", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, @@ -918,18 +1040,7 @@ "deprecationReason": null }, { - "name": "description", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", + "name": "hasPreviousPage", "args": [], "type": { "kind": "NON_NULL", @@ -944,7 +1055,18 @@ "deprecationReason": null }, { - "name": "deprecationReason", + "name": "startCursor", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endCursor", "args": [], "type": { "kind": "SCALAR", @@ -962,246 +1084,124 @@ }, { "kind": "OBJECT", - "name": "__Directive", + "name": "friendEdge", "fields": [ { - "name": "name", + "name": "friendshipTime", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "description", + "name": "node", "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "User", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "locations", + "name": "cursor", "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 - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "userConnection", + "fields": [ { - "name": "args", + "name": "pageInfo", "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 - } - } + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "onOperation", + "name": "edges", "args": [], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "OBJECT", + "name": "userEdge", "ofType": null } }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." - }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "userEdge", + "fields": [ { - "name": "onFragment", + "name": "node", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "OBJECT", + "name": "User", + "ofType": null }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." + "isDeprecated": false, + "deprecationReason": null }, { - "name": "onField", + "name": "cursor", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Boolean", + "name": "String", "ofType": null } }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", "isDeprecated": false, "deprecationReason": null } ], - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Float", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "ID", - "fields": null, "inputFields": null, - "interfaces": null, + "interfaces": [], "enumValues": null, "possibleTypes": null } diff --git a/Tests/Functional/Type/DefinitionTest.php b/Tests/Functional/Type/DefinitionTest.php index 3ea60283f..a1a282e98 100644 --- a/Tests/Functional/Type/DefinitionTest.php +++ b/Tests/Functional/Type/DefinitionTest.php @@ -35,7 +35,7 @@ public function testDefinesEnumTypeWithDeprecatedValue() 'description' => null, 'deprecationReason' => 'Just because', 'value' => 'foo', - ], (array) $value); + ], $value->config); $this->assertEquals(true, $this->isDeprecated($value)); } diff --git a/Tests/Request/ExecutorTest.php b/Tests/Request/ExecutorTest.php index db85bf69b..735bfd173 100644 --- a/Tests/Request/ExecutorTest.php +++ b/Tests/Request/ExecutorTest.php @@ -12,9 +12,9 @@ namespace Overblog\GraphQLBundle\Tests\Request; use GraphQL\Executor\Promise\Adapter\ReactPromiseAdapter; -use GraphQL\Schema; use GraphQL\Type\Definition\ObjectType; use GraphQL\Type\Definition\Type; +use GraphQL\Type\Schema; use Overblog\GraphQLBundle\Executor\Executor; use Overblog\GraphQLBundle\Request\Executor as RequestExecutor; diff --git a/composer.json b/composer.json index e005e8c46..689904bf5 100644 --- a/composer.json +++ b/composer.json @@ -31,13 +31,13 @@ "require": { "php": ">=5.5.9", "doctrine/doctrine-cache-bundle": "^1.2", - "overblog/graphql-php-generator": "^0.4.1", + "overblog/graphql-php-generator": "^0.5.0", "symfony/cache": "^3.1", "symfony/expression-language": "^2.8 || ^3.0", "symfony/framework-bundle": "^2.8 || ^3.0", "symfony/options-resolver": "^2.8 || ^3.0", "symfony/property-access": "^2.8 || ^3.0", - "webonyx/graphql-php": "^0.9.4" + "webonyx/graphql-php": "^0.10.1" }, "suggest": { "nelmio/cors-bundle": "For more flexibility when using CORS prefight",