1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var iterall_1 = require("iterall");
|
4 | exports.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 |
|
\ | No newline at end of file |