UNPKG

graphql-mocks

Version:

Tools for setting up graphql test resolvers

35 lines (34 loc) 1.6 kB
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } import 'graphql'; import { WrapperFor } from '../resolver/constants.mjs'; import { createWrapper } from '../resolver/create-wrapper.mjs'; function getRandomInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.round(Math.random() * (max - min) + min); } function wait(_x) { return _wait.apply(this, arguments); } function _wait() { _wait = _asyncToGenerator(function* (ms) { return new Promise(resolve => { setTimeout(resolve, ms); }); }); return _wait.apply(this, arguments); } function latencyWrapper() { var latency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var finalLatency = Array.isArray(latency) ? getRandomInt(latency[0], latency[1]) : latency; return createWrapper('latency-wrapper', WrapperFor.ANY, function (originalResolver) { // eslint-disable-next-line @typescript-eslint/no-explicit-any return /*#__PURE__*/_asyncToGenerator(function* () { yield wait(finalLatency); return originalResolver(...arguments); }); }); } export { latencyWrapper }; //# sourceMappingURL=latency.mjs.map