9
9
from graphene import ObjectType , String , Field , Schema
10
10
11
11
from .extend import get_extended_types
12
- from .provides import get_provides_parent_types
12
+ from .provides import get_provides_parent_types , get_provides_fields
13
13
14
14
from .entity import get_entities
15
15
from .tag import get_tagged_fields
@@ -103,6 +103,7 @@ def get_sdl(schema: Schema) -> str:
103
103
shareable_types = get_shareable_types (schema )
104
104
inaccessible_types = get_inaccessible_types (schema )
105
105
provides_parent_types = get_provides_parent_types (schema )
106
+ provides_fields = get_provides_fields (schema )
106
107
entities = get_entities (schema )
107
108
shareable_fields = get_shareable_fields (schema )
108
109
tagged_fields = get_tagged_fields (schema )
@@ -120,7 +121,7 @@ def get_sdl(schema: Schema) -> str:
120
121
_schema_import .append ('"@requires"' )
121
122
if entities :
122
123
_schema_import .append ('"@key"' )
123
- if provides_parent_types :
124
+ if provides_parent_types or provides_fields :
124
125
_schema_import .append ('"@provides"' )
125
126
if inaccessible_types or inaccessible_fields :
126
127
_schema_import .append ('"@inaccessible"' )
@@ -143,7 +144,8 @@ def get_sdl(schema: Schema) -> str:
143
144
# Add fields directives (@external, @provides, @requires, @shareable, @inaccessible)
144
145
for entity in set (provides_parent_types .values ()) | set (extended_types .values ()) | set (
145
146
shareable_types .values ()) | set (inaccessible_types .values ()) | set (
146
- entities .values ()) | set (shareable_fields .values ()) | set (tagged_fields .values ()):
147
+ entities .values ()) | set (inaccessible_fields .values ()) | set (shareable_fields .values ()) | set (
148
+ tagged_fields .values ()) | set (required_fields .values ()) | set (provides_fields .values ()):
147
149
string_schema = add_entity_fields_decorators (entity , schema , string_schema )
148
150
149
151
# Prepend `extend` keyword to the type definition of extended types
0 commit comments