Fix the problem when generating Federation SDL. #283

This commit is contained in:
Sunli 2020-09-27 18:49:04 +08:00
parent 397650bb0d
commit e9efad4479
3 changed files with 9 additions and 5 deletions

View File

@ -115,8 +115,14 @@ impl Registry {
description,
..
} => {
if name == &self.query_type && self.is_empty_query {
return;
if name == &self.query_type {
if federation && fields.len() <= 4 {
// Is empty query root, only __schema, __type, _service, _entities fields
return;
} else if !federation && fields.len() <= 2 {
// Is empty query root, only __schema, __type
return;
}
}
if let Some(subscription_type) = &self.subscription_type {

View File

@ -257,7 +257,6 @@ pub struct Registry {
pub directives: HashMap<String, MetaDirective>,
pub implements: HashMap<String, HashSet<String>>,
pub query_type: String,
pub is_empty_query: bool,
pub mutation_type: Option<String>,
pub subscription_type: Option<String>,
}

View File

@ -214,12 +214,11 @@ where
}
}
fn create_registry() -> Registry {
pub fn create_registry() -> Registry {
let mut registry = Registry {
types: Default::default(),
directives: Default::default(),
implements: Default::default(),
is_empty_query: Query::is_empty(),
query_type: Query::type_name().to_string(),
mutation_type: if Mutation::is_empty() {
None