@theguild/federation-composition
Version:
Open Source Composition library for Apollo Federation
37 lines (36 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stripFederationFromSupergraph = exports.isDirectiveDefinition = void 0;
const graphql_1 = require("graphql");
function isDirectiveDefinition(node) {
return node.kind === graphql_1.Kind.DIRECTIVE_DEFINITION;
}
exports.isDirectiveDefinition = isDirectiveDefinition;
function stripFederationFromSupergraph(supergraph) {
function remove() {
return null;
}
return (0, graphql_1.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;
},
});
}
exports.stripFederationFromSupergraph = stripFederationFromSupergraph;