UNPKG

1.38 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var iterall_1 = require("iterall");
4exports.withFilter = function (asyncIterator, filterFn) {
5 return function (rootValue, args, context, info) {
6 var getNextPromise = function () {
7 return asyncIterator
8 .next()
9 .then(function (payload) { return Promise.all([
10 payload,
11 Promise.resolve(filterFn(payload.value, args, context, info)).catch(function () { return false; }),
12 ]); })
13 .then(function (_a) {
14 var payload = _a[0], filterResult = _a[1];
15 if (filterResult === true) {
16 return payload;
17 }
18 return getNextPromise();
19 });
20 };
21 return _a = {
22 next: function () {
23 return getNextPromise();
24 },
25 return: function () {
26 return Promise.resolve({ value: undefined, done: true });
27 },
28 throw: function (error) {
29 return Promise.reject(error);
30 }
31 },
32 _a[iterall_1.$$asyncIterator] = function () {
33 return this;
34 },
35 _a;
36 var _a;
37 };
38};
39//# sourceMappingURL=with-filter.js.map
\No newline at end of file