UNPKG

graphql-mocks

Version:

Tools for setting up graphql test resolvers

36 lines (34 loc) 1.25 kB
'use strict'; require('graphql'); var createWrapper = require('../resolver/create-wrapper.js'); var coerceToList = require('../resolver/utils/coerce-to-list.js'); var isRelayConnectionField = require('./is-relay-connection-field.js'); var paginateNodes = require('./paginate-nodes.js'); const relayWrapper = ({ cursorForNode, force }) => { var _force; force = (_force = force) !== null && _force !== void 0 ? _force : false; if (!cursorForNode) { throw new Error('cursorForNode is a required, provide it as an option to `relayWrapper`'); } return createWrapper.createWrapper('relay-wrapper', 'FIELD', resolver => { return async (parent, args, context, info) => { const { fieldName, parentType } = info; const field = parentType.getFields()[fieldName]; const isRelayPaginated = isRelayConnectionField.isRelayConnectionField(field); const result = await resolver(parent, args, context, info); if (force || isRelayPaginated) { const nodes = coerceToList.coerceToList(result); return nodes && paginateNodes.paginateNodes(nodes, args, cursorForNode); } return result; }; }); }; exports.relayWrapper = relayWrapper; //# sourceMappingURL=wrapper.js.map