@theguild/federation-composition
Version:
Open Source Composition library for Apollo Federation
32 lines (31 loc) • 982 B
JavaScript
import { Kind, visit } from 'graphql';
export function isDirectiveDefinition(node) {
return node.kind === Kind.DIRECTIVE_DEFINITION;
}
export function stripFederationFromSupergraph(supergraph) {
function remove() {
return null;
}
return visit(supergraph, {
DirectiveDefinition: remove,
Directive: remove,
SchemaDefinition: remove,
SchemaExtension: remove,
EnumTypeDefinition: node => {
if (node.name.value === 'core__Purpose' ||
node.name.value === 'join__Graph' ||
node.name.value === 'link__Purpose') {
return null;
}
return node;
},
ScalarTypeDefinition: node => {
if (node.name.value === '_FieldSet' ||
node.name.value === 'link__Import' ||
node.name.value === 'join__FieldSet') {
return null;
}
return node;
},
});
}