From aba5d878d798d1b771f7cbfbb0aab4d55617d392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D0=B5=D0=BF=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 11 Jan 2021 22:11:25 +0300 Subject: [PATCH] Add workaround for BigInt field type support as string --- .../src/Plugin/Deriver/Fields/EntityFieldDeriver.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/graphql_core/src/Plugin/Deriver/Fields/EntityFieldDeriver.php b/modules/graphql_core/src/Plugin/Deriver/Fields/EntityFieldDeriver.php index 61d2a9b20..179dff2bd 100644 --- a/modules/graphql_core/src/Plugin/Deriver/Fields/EntityFieldDeriver.php +++ b/modules/graphql_core/src/Plugin/Deriver/Fields/EntityFieldDeriver.php @@ -42,6 +42,13 @@ protected function getDerivativeDefinitionsFromFieldDefinition(FieldDefinitionIn if (count($propertyDefinitions) === 1) { $propertyDefinition = reset($propertyDefinitions); $derivative['type'] = $propertyDefinition->getDataType(); + + // Workaround for BigInt field types (integer with size = big) + // Treat as String instead of Integer in GraphQL, because of lack support for 64 bit integers + // More info: https://github.com/graphql/graphql-spec/issues/73 + if($propertyDefinition->getDataType() == 'integer' && $itemDefinition->getSetting('size') == 'big') { + $derivative['type'] = 'string'; + } $derivative['property'] = key($propertyDefinitions); } else {