UNPKG

annotated-graphql

Version:

Annotated GraphQL

53 lines (40 loc) 1.79 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (mapSchemaAnnotations, clientSchema) { var visitor = createQueryRewriteVisitor(mapSchemaAnnotations, clientSchema); return function (query) { if (query) { console.log('QUERY BEFORE:', query); query = (0, _graphql.print)((0, _graphql.visit)((0, _graphql.parse)(query), visitor)); console.log('QUERY AFTER:', query); } return query; }; function createQueryRewriteVisitor(mapSchemaAnnotations, clientSchema) { var queryRewriters = mapSchemaAnnotations.reduce(extendQueryRewriters, []); return { OperationDefinition: function OperationDefinition(operationDefinitionNode) { if (operationDefinitionNode.operation === 'query') { queryRewriters.forEach(function (queryRewriter) { return queryRewriter(operationDefinitionNode); }); } } }; function extendQueryRewriters(queryRewriters, mapSchemaAnnotation) { [_queryFieldnameRewriter2.default].forEach(function (rewriterClass) { var queryRewriter = rewriterClass.apply(mapSchemaAnnotation, clientSchema); if (queryRewriter) { queryRewriters.push(queryRewriter); } }); return queryRewriters; } } }; var _graphql = require('graphql'); var _queryFieldnameRewriter = require('./rewriters/query-fieldname-rewriter'); var _queryFieldnameRewriter2 = _interopRequireDefault(_queryFieldnameRewriter); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }