|
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