Allows to get the actual field name and alias in ResolveInfo
. #551
This commit is contained in:
parent
3b5b0eee25
commit
1b173b7588
|
@ -365,6 +365,8 @@ pub fn generate(
|
||||||
path_node: ctx_selection_set.path_node.as_ref().unwrap(),
|
path_node: ctx_selection_set.path_node.as_ref().unwrap(),
|
||||||
parent_type: #gql_typename,
|
parent_type: #gql_typename,
|
||||||
return_type: &<<#stream_ty as #crate_name::futures_util::stream::Stream>::Item as #crate_name::Type>::qualified_type_name(),
|
return_type: &<<#stream_ty as #crate_name::futures_util::stream::Stream>::Item as #crate_name::Type>::qualified_type_name(),
|
||||||
|
name: field.node.name.node.as_str(),
|
||||||
|
alias: field.node.alias.as_ref().map(|alias| alias.node.as_str()),
|
||||||
};
|
};
|
||||||
let resolve_fut = async {
|
let resolve_fut = async {
|
||||||
#crate_name::OutputType::resolve(&msg, &ctx_selection_set, &*field)
|
#crate_name::OutputType::resolve(&msg, &ctx_selection_set, &*field)
|
||||||
|
|
|
@ -103,6 +103,12 @@ pub struct ResolveInfo<'a> {
|
||||||
|
|
||||||
/// Current return type, is qualified name.
|
/// Current return type, is qualified name.
|
||||||
pub return_type: &'a str,
|
pub return_type: &'a str,
|
||||||
|
|
||||||
|
/// Current field name
|
||||||
|
pub name: &'a str,
|
||||||
|
|
||||||
|
/// Current field alias
|
||||||
|
pub alias: Option<&'a str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
type RequestFut<'a> = &'a mut (dyn Future<Output = Response> + Send + Unpin);
|
type RequestFut<'a> = &'a mut (dyn Future<Output = Response> + Send + Unpin);
|
||||||
|
|
|
@ -204,6 +204,12 @@ impl<'a> Fields<'a> {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
name: field.node.name.node.as_str(),
|
||||||
|
alias: field
|
||||||
|
.node
|
||||||
|
.alias
|
||||||
|
.as_ref()
|
||||||
|
.map(|alias| alias.node.as_str()),
|
||||||
};
|
};
|
||||||
|
|
||||||
let resolve_fut = root.resolve_field(&ctx_field);
|
let resolve_fut = root.resolve_field(&ctx_field);
|
||||||
|
|
|
@ -23,6 +23,8 @@ pub async fn resolve_list<'a, T: OutputType + 'a>(
|
||||||
path_node: ctx_idx.path_node.as_ref().unwrap(),
|
path_node: ctx_idx.path_node.as_ref().unwrap(),
|
||||||
parent_type: &Vec::<T>::type_name(),
|
parent_type: &Vec::<T>::type_name(),
|
||||||
return_type: &T::qualified_type_name(),
|
return_type: &T::qualified_type_name(),
|
||||||
|
name: field.node.name.node.as_str(),
|
||||||
|
alias: field.node.alias.as_ref().map(|alias| alias.node.as_str()),
|
||||||
};
|
};
|
||||||
let resolve_fut = async {
|
let resolve_fut = async {
|
||||||
OutputType::resolve(&item, &ctx_idx, field)
|
OutputType::resolve(&item, &ctx_idx, field)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user