diff --git a/compiler/crates/schema-print/src/print_schema.rs b/compiler/crates/schema-print/src/print_schema.rs index ebcaae36ce6bc..980672f1d3c0f 100644 --- a/compiler/crates/schema-print/src/print_schema.rs +++ b/compiler/crates/schema-print/src/print_schema.rs @@ -376,6 +376,7 @@ impl<'schema, 'writer, 'curent_writer> Printer<'schema, 'writer> { if let Some(default) = &arg.default_value { write!(self.writer(), " = {}", default,)?; } + self.print_directive_values(&arg.directives)?; } write!(self.writer(), ")") } @@ -406,6 +407,7 @@ impl<'schema, 'writer, 'curent_writer> Printer<'schema, 'writer> { if let Some(default) = &arg.default_value { write!(self.writer(), " = {}", default,)?; } + self.print_directive_values(&arg.directives)?; self.print_new_line()?; } write!(self.writer(), "}}") diff --git a/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.expected b/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.expected index e86df45097905..58895cbfc2040 100644 --- a/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.expected +++ b/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.expected @@ -3,6 +3,7 @@ directive @source(schema: String, name: String) on OBJECT | INTERFACE | ENUM directive @ref_type(schema: String, name: String) on FIELD_DEFINITION directive @extern_type(schema: String, name: String) on INTERFACE directive @fetchable(field_name: String) on OBJECT +directive @fbid on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_FIELD_DEFINITION schema { query: Query @@ -77,9 +78,25 @@ interface Image implements Resource & Node { url: String thumbnail: String } + +input UserRequest { + user_id: ID! @fbid + other_user_ids: [ID!] = [] @fbid +} + +type UserResponse { + user_id: ID! @fbid + name: String +} + +type UsernameQuery { + fetch_user_name(user_id: ID @fbid): String +} ==================================== OUTPUT =================================== directive @extern_type(schema: String, name: String) on INTERFACE +directive @fbid on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_FIELD_DEFINITION + directive @fetchable(field_name: String) on OBJECT directive @include(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT @@ -92,6 +109,8 @@ directive @source(schema: String, name: String) on OBJECT | INTERFACE | ENUM directive @extern_type(schema: String, name: String) on INTERFACE +directive @fbid on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_FIELD_DEFINITION + directive @fetchable(field_name: String) on OBJECT directive @include(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT @@ -138,6 +157,15 @@ type User implements XIGHuman @fetchable(field_name: "id") { story(story: XIGStoryInput = {id: 123, name: "instagram_story"}): XIGStory } +type UserResponse { + user_id: ID! @fbid + name: String +} + +type UsernameQuery { + fetch_user_name(user_id: ID @fbid): String +} + interface XIGHuman @source(schema: "instagram", name: "Human") { name: String } @@ -168,6 +196,11 @@ interface Resource implements Node { url: String } +input UserRequest { + user_id: ID! @fbid + other_user_ids: [ID!] = [] @fbid +} + type XIGStory @fetchable(field_name: "id") @source(schema: "instagram", name: "Story") { id: ID name: String diff --git a/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.graphql b/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.graphql index 3d364469ea7cd..e6c0a2414e695 100644 --- a/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.graphql +++ b/compiler/crates/schema-print/tests/print_schema/fixtures/kitchen-sink.graphql @@ -2,6 +2,7 @@ directive @source(schema: String, name: String) on OBJECT | INTERFACE | ENUM directive @ref_type(schema: String, name: String) on FIELD_DEFINITION directive @extern_type(schema: String, name: String) on INTERFACE directive @fetchable(field_name: String) on OBJECT +directive @fbid on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_FIELD_DEFINITION schema { query: Query @@ -76,3 +77,17 @@ interface Image implements Resource & Node { url: String thumbnail: String } + +input UserRequest { + user_id: ID! @fbid + other_user_ids: [ID!] = [] @fbid +} + +type UserResponse { + user_id: ID! @fbid + name: String +} + +type UsernameQuery { + fetch_user_name(user_id: ID @fbid): String +}