UNPKG

react-blips

Version:
70 lines (45 loc) 2.96 kB
'use strict'; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.operationsMap = operationsMap; var _graphql = require('graphql'); var _createDocumentAST = require('./createDocumentAST'); var _isOperationDefinition = require('./isOperationDefinition'); var _isFragmentDefinition = require('./isFragmentDefinition'); var _getOperationName = require('./getOperationName'); var _getOperationType = require('./getOperationType'); var _getRequiredFragments = require('./getRequiredFragments'); var _mapObject = require('./mapObject'); var _isNil = require('./isNil'); var _hasDirectives = require('./hasDirectives'); var _rejectDirectives = require('./rejectDirectives'); function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var operationsCache = new Map(); function getExecutableOperation(fragments) { return function (def) { return (0, _graphql.concatAST)([(0, _createDocumentAST.createDocumentAST)(def)].concat((0, _getRequiredFragments.getRequiredFragments)(def).map(function (f) { return (0, _createDocumentAST.createDocumentAST)(fragments[f]); }))); }; } function operationsMap(document) { var operations = operationsCache.get(document); if (!operations) { var _document$definitions = document.definitions.reduce(function (acc, node) { var _extends2, _extends3; var sanitizedNode = void 0; var _ref = (0, _isOperationDefinition.isOperationDefinition)(node) ? (0, _hasDirectives.hasDirectives)(['fetch'], node) ? (sanitizedNode = _extends({}, node, { directives: (0, _rejectDirectives.rejectDirectives)(['fetch'], node) }), ['fetch', (0, _getOperationName.getOperationName)(node)]) : [(0, _getOperationType.getOperationType)(node), (0, _getOperationName.getOperationName)(node)] : (0, _isFragmentDefinition.isFragmentDefinition)(node) ? ['fragment', (0, _getOperationName.getOperationName)(node)] : [null, null], key = _ref[0], name = _ref[1]; if ((0, _isNil.isNil)(key) || (0, _isNil.isNil)(name)) return acc; return _extends({}, acc, (_extends3 = {}, _extends3[key] = _extends({}, acc[key] || {}, (_extends2 = {}, _extends2[name] = sanitizedNode || node, _extends2)), _extends3)); }, {}), fragment = _document$definitions.fragment, definitionsObject = _objectWithoutProperties(_document$definitions, ['fragment']); operations = (0, _mapObject.mapObject)((0, _mapObject.mapObject)(getExecutableOperation(fragment)))(definitionsObject); operationsCache.set(document, operations); } return operations; }