Skip to content

Commit a64ed41

Browse files
committed
sort fields to ensure consistency in resolver generation
1 parent bfc7491 commit a64ed41

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

graphql-resolver-generator/generator.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ def generate(input_file, output_dir):
5353
continue
5454
if is_schema_defined_object_type(inner_field_type) or is_interface_type(inner_field_type):
5555
t['edgeFields'].append((pascalCase(field_name), inner_field_type))
56+
57+
sort_before_rendering(t)
5658
data['types'].append(t)
5759

5860
# sort
@@ -68,6 +70,21 @@ def generate(input_file, output_dir):
6870
f.write(template.render(data=data))
6971

7072

73+
def sort_before_rendering(d: dict):
74+
"""
75+
Sort all list values in the dictionary to allow consistent generation of resolver files.
76+
:param d:
77+
:return:
78+
"""
79+
for k in d:
80+
if type(d[k]) is not list or not len(d[k]):
81+
continue
82+
if type(d[k][0] == tuple):
83+
d[k].sort(key=lambda x: x[0].replace("_", "}"))
84+
else:
85+
d[k].sort(key=lambda x: x.replace("_", "}"))
86+
87+
7188
def cmd(args):
7289
generate(args.input, args.output)
7390

0 commit comments

Comments
 (0)