writeNode writes a Node value to the buffer
(buf *bytes.Buffer, n *graph.Node)
| 668 | |
| 669 | // writeNode writes a Node value to the buffer |
| 670 | func writeNode(buf *bytes.Buffer, n *graph.Node) { |
| 671 | if n == nil { |
| 672 | buf.WriteString("null") |
| 673 | return |
| 674 | } |
| 675 | |
| 676 | switch n.Type { |
| 677 | case graph.NodeStr: |
| 678 | buf.WriteString("\"") |
| 679 | buf.WriteString(strings.ReplaceAll(n.Val, "\"", "\\\"")) |
| 680 | buf.WriteString("\"") |
| 681 | case graph.NodeNum, graph.NodeBool: |
| 682 | buf.WriteString(n.Val) |
| 683 | case graph.NodeVar: |
| 684 | buf.WriteString("$") |
| 685 | buf.WriteString(n.Val) |
| 686 | case graph.NodeLabel: |
| 687 | buf.WriteString(n.Val) |
| 688 | case graph.NodeList: |
| 689 | buf.WriteString("[") |
| 690 | for i, child := range n.Children { |
| 691 | if i > 0 { |
| 692 | buf.WriteString(", ") |
| 693 | } |
| 694 | writeNode(buf, child) |
| 695 | } |
| 696 | buf.WriteString("]") |
| 697 | case graph.NodeObj: |
| 698 | buf.WriteString("{") |
| 699 | for i, child := range n.Children { |
| 700 | if i > 0 { |
| 701 | buf.WriteString(", ") |
| 702 | } |
| 703 | buf.WriteString(child.Name) |
| 704 | buf.WriteString(": ") |
| 705 | writeNode(buf, child) |
| 706 | } |
| 707 | buf.WriteString("}") |
| 708 | default: |
| 709 | buf.WriteString(n.Val) |
| 710 | } |
| 711 | } |
| 712 | |
| 713 | // executeParallelRoots executes root-level queries to different databases in parallel |
| 714 | // and merges the results. This is called when a single GraphQL query references |
no test coverage detected