@graphql-tools/optimize
Version:
A set of utils for faster development of GraphQL tools
32 lines (31 loc) • 1.06 kB
JavaScript
import { visit } from 'graphql';
/**
* This optimizer removes "description" fields from schema and executable AST nodes.
* @param input
*/
export const removeDescriptions = input => {
function transformNode(node) {
if (!node.description) {
return node;
}
const { description, ...rest } = node;
return rest;
}
return visit(input, {
ScalarTypeDefinition: transformNode,
ObjectTypeDefinition: transformNode,
InterfaceTypeDefinition: transformNode,
UnionTypeDefinition: transformNode,
EnumTypeDefinition: transformNode,
EnumValueDefinition: transformNode,
InputObjectTypeDefinition: transformNode,
InputValueDefinition: transformNode,
FieldDefinition: transformNode,
DirectiveDefinition: transformNode,
OperationDefinition: transformNode,
VariableDefinition: transformNode,
FragmentDefinition: transformNode,
SchemaDefinition: transformNode,
SchemaExtension: transformNode,
});
};