code: public static function typeFromAST(Schema $schema, $inputTypeNode)
      {
          if ($inputTypeNode instanceof ListTypeNode) {
              $innerType = self::typeFromAST($schema, $inputTypeNode->type);
  
              return $innerType ? new ListOfType($innerType) : null;
          }
          if ($inputTypeNode instanceof NonNullTypeNode) {
              $innerType = self::typeFromAST($schema, $inputTypeNode->type);
  
              return $innerType ? new NonNull($innerType) : null;
          }
          if ($inputTypeNode instanceof NamedTypeNode) {
              return $schema->getType($inputTypeNode->name->value);
          }
  
          throw new Error('Unexpected type kind: ' . $inputTypeNode->kind . '.');
      }
docs: Returns type definition for given AST Type node
  
  @param NamedTypeNode|ListTypeNode|NonNullTypeNode $inputTypeNode
  
  @return Type|null
  
  @throws Exception
  
  @api