graphql-mocks
Version:
Tools for setting up graphql test resolvers
51 lines (37 loc) • 1.33 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
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
;