/** * {@inheritdoc} */ public function coerceLiteral(Node $node) { if ($node instanceof StringValue || $node instanceof IntValue) { return $node->get('value'); } return NULL; }
/** * {@inheritdoc} */ public function coerceLiteral(Node $node) { if ($node instanceof IntValue) { $num = $node->get('value'); if ($num <= PHP_INT_MAX && $num >= -PHP_INT_MAX) { return intval($num); } } return NULL; }
/** * {@inheritdoc} */ public function coerceLiteral(Node $node) { if ($node instanceof IntValue || $node instanceof FloatValue) { $num = (double) $node->get('value'); if ($num <= PHP_INT_MAX && $num >= -PHP_INT_MAX) { return $num; } } return NULL; }
/** * @param \Fubhy\GraphQL\Language\Node $value * * @return string|null */ public function coerceLiteral(Node $value) { if ($value instanceof EnumValue) { $key = $value->get('value'); if (($lookup = $this->getNameLookup()) && isset($lookup[$key])) { return $lookup[$key] ? $lookup[$key]->getName() : NULL; } } return NULL; }
/** * @param Node $node */ protected function enter(Node $node) { $schema = $this->_schema; switch ($node::KIND) { case Node::KIND_SELECTION_SET: $rawType = $this->getType(); $rawType = isset($rawType) ? $rawType->getUnmodifiedType() : NULL; $compositeType = NULL; if (isset($rawType) && $rawType->isCompositeType()) { $compositeType = $rawType; } array_push($this->parentTypeStack, $compositeType); break; case Node::KIND_DIRECTIVE: $this->directive = $schema->getDirective($node->get('name')->get('value')); break; case Node::KIND_FIELD: $parentType = $this->getParentType(); $fieldDefinition = NULL; if (isset($parentType)) { $fieldDefinition = self::getFieldDefinition($schema, $parentType, $node); } array_push($this->fieldDefinitionStack, $fieldDefinition); array_push($this->typeStack, $fieldDefinition ? $fieldDefinition->getType() : NULL); break; case Node::KIND_OPERATION_DEFINITION: $type = NULL; if ($node->get('operation') === 'query') { $type = $schema->getQueryType(); } else { if ($node->get('operation') === 'mutation') { $type = $schema->getMutationType(); } } array_push($this->typeStack, $type); break; case Node::KIND_INLINE_FRAGMENT: case Node::KIND_FRAGMENT_DEFINITION: $type = $schema->getType($node->get('typeCondition')->get('value')); array_push($this->typeStack, $type); break; case Node::KIND_VARIABLE_DEFINITION: array_push($this->inputTypeStack, self::typeFromAST($schema, $node->get('type'))); break; case Node::KIND_ARGUMENT: if (!empty($this->fieldDefinitionStack)) { $field = $this->fieldDefinitionStack[count($this->fieldDefinitionStack) - 1]; } else { $field = NULL; } $argType = NULL; if ($field) { $argDefinition = NULL; foreach ($field->getArguments() as $arg) { if ($arg->getName() === $node->get('name')->get('value')) { $argDefinition = $arg; } break; } if ($argDefinition) { $argType = $argDefinition->getType(); } } array_push($this->inputTypeStack, $argType); break; case Node::KIND_ARRAY_VALUE: $arrayType = $this->getInputType(); $arrayType = isset($arrayType) ? $arrayType->getNullableType() : NULL; array_push($this->inputTypeStack, $arrayType instanceof ListModifier ? $arrayType->getWrappedType() : NULL); break; case Node::KIND_OBJECT_FIELD: $objectType = $this->getInputType(); $objectType = isset($objectType) ? $objectType->getUnmodifiedType() : NULL; $fieldType = NULL; if ($objectType instanceof InputObjectType) { $tmp = $objectType->getFields(); $inputField = isset($tmp[$node->get('name')->get('value')]) ? $tmp[$node->get('name')->get('value')] : NULL; $fieldType = $inputField ? $inputField->getType() : NULL; } array_push($this->inputTypeStack, $fieldType); break; } }
/** * {@inheritdoc} */ public function coerceLiteral(Node $node) { return $node instanceof StringValue ? $node->get('value') : NULL; }