|
1 | 1 | import json |
2 | 2 |
|
3 | 3 | from .visitor import Visitor, visit |
| 4 | +from ..utils.undefined import UndefinedDefaultValue |
4 | 5 |
|
5 | 6 | __all__ = ['print_ast'] |
6 | 7 |
|
@@ -34,7 +35,7 @@ def leave_OperationDefinition(self, node, *args): |
34 | 35 | return join([op, join([name, var_defs]), directives, selection_set], ' ') |
35 | 36 |
|
36 | 37 | def leave_VariableDefinition(self, node, *args): |
37 | | - return node.variable + ': ' + node.type + wrap(' = ', node.default_value) |
| 38 | + return node.variable + ': ' + node.type + wrap(' = ', node.default_value, is_default_value=True) |
38 | 39 |
|
39 | 40 | def leave_SelectionSet(self, node, *args): |
40 | 41 | return block(node.selections) |
@@ -146,7 +147,7 @@ def leave_FieldDefinition(self, node, *args): |
146 | 147 | ) |
147 | 148 |
|
148 | 149 | def leave_InputValueDefinition(self, node, *args): |
149 | | - return node.name + ': ' + node.type + wrap(' = ', node.default_value) + wrap(' ', join(node.directives, ' ')) |
| 150 | + return node.name + ': ' + node.type + wrap(' = ', node.default_value, is_default_value=True) + wrap(' ', join(node.directives, ' ')) |
150 | 151 |
|
151 | 152 | def leave_InterfaceTypeDefinition(self, node, *args): |
152 | 153 | return 'interface ' + node.name + wrap(' ', join(node.directives, ' ')) + ' ' + block(node.fields) |
@@ -184,7 +185,13 @@ def block(_list): |
184 | 185 | return '{}' |
185 | 186 |
|
186 | 187 |
|
187 | | -def wrap(start, maybe_str, end=''): |
| 188 | +def wrap(start, maybe_str, end='', is_default_value=False): |
| 189 | + if is_default_value: |
| 190 | + if maybe_str is not UndefinedDefaultValue: |
| 191 | + s = 'null' if maybe_str is None else maybe_str |
| 192 | + return start + s + end |
| 193 | + return '' |
| 194 | + |
188 | 195 | if maybe_str: |
189 | 196 | return start + maybe_str + end |
190 | 197 | return '' |
|
0 commit comments