manyList() public method

public manyList ( $start, $list, $separator, $end )
Example #1
0
 public static function doPrint($ast)
 {
     return Visitor::visit($ast, array('leave' => array(Node::NAME => function ($node) {
         return $node->value . '';
     }, Node::VARIABLE => function ($node) {
         return '$' . $node->name;
     }, Node::DOCUMENT => function (Document $node) {
         return self::join($node->definitions, "\n\n") . "\n";
     }, Node::OPERATION_DEFINITION => function (OperationDefinition $node) {
         $op = $node->operation;
         $name = $node->name;
         $defs = Printer::manyList('(', $node->variableDefinitions, ', ', ')');
         $directives = self::join($node->directives, ' ');
         $selectionSet = $node->selectionSet;
         return !$name ? $selectionSet : self::join([$op, self::join([$name, $defs]), $directives, $selectionSet], ' ');
     }, Node::VARIABLE_DEFINITION => function (VariableDefinition $node) {
         return self::join([$node->variable . ': ' . $node->type, $node->defaultValue], ' = ');
     }, Node::SELECTION_SET => function (SelectionSet $node) {
         return self::blockList($node->selections, ",\n");
     }, Node::FIELD => function (Field $node) {
         $r11 = self::join([$node->alias, $node->name], ': ');
         $r1 = self::join([$r11, self::manyList('(', $node->arguments, ', ', ')')]);
         $r2 = self::join($node->directives, ' ');
         return self::join([$r1, $r2, $node->selectionSet], ' ');
     }, Node::ARGUMENT => function (Argument $node) {
         return $node->name . ': ' . $node->value;
     }, Node::FRAGMENT_SPREAD => function (FragmentSpread $node) {
         return self::join(['...' . $node->name, self::join($node->directives, '')], ' ');
     }, Node::INLINE_FRAGMENT => function (InlineFragment $node) {
         return self::join(['... on', $node->typeCondition, self::join($node->directives, ' '), $node->selectionSet], ' ');
     }, Node::FRAGMENT_DEFINITION => function (FragmentDefinition $node) {
         return self::join(['fragment', $node->name, 'on', $node->typeCondition, self::join($node->directives, ' '), $node->selectionSet], ' ');
     }, Node::INT => function (IntValue $node) {
         return $node->value;
     }, Node::FLOAT => function (FloatValue $node) {
         return $node->value;
     }, Node::STRING => function (StringValue $node) {
         return json_encode($node->value);
     }, Node::BOOLEAN => function (BooleanValue $node) {
         return $node->value ? 'true' : 'false';
     }, Node::ENUM => function (EnumValue $node) {
         return $node->value;
     }, Node::ARR => function (ArrayValue $node) {
         return '[' . self::join($node->values, ', ') . ']';
     }, Node::OBJECT => function (ObjectValue $node) {
         return '{' . self::join($node->fields, ', ') . '}';
     }, Node::OBJECT_FIELD => function (ObjectField $node) {
         return $node->name . ': ' . $node->value;
     }, Node::DIRECTIVE => function (Directive $node) {
         return self::join(['@' . $node->name, $node->value], ': ');
     }, Node::LIST_TYPE => function (ListType $node) {
         return '[' . $node->type . ']';
     }, Node::NON_NULL_TYPE => function (NonNullType $node) {
         return $node->type . '!';
     })));
 }