graphql-composition 0.12.2

An implementation of GraphQL federated schema composition
Documentation
use super::*;

pub(super) fn validate(context: &mut ValidateContext<'_>) {
    for (_, directive) in context.subgraphs.iter_extra_directives_on_schema_definition() {
        let subgraphs::DirectiveProvenance::Linked {
            linked_schema_id,
            is_composed_directive,
        } = directive.provenance
        else {
            continue;
        };

        if let Some(extension_id) = context.get_extension_for_linked_schema(linked_schema_id) {
            context.mark_used_extension(extension_id);
        } else if !is_composed_directive {
            context.diagnostics.push_warning(format!(
                "Directive `{}` is not defined in any extension or composed directive",
                &context[directive.name]
            ));
        }
    }
}