UNPKG

2.1 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.withFilter = void 0;
4var iterall_1 = require("iterall");
5var withFilter = function (asyncIteratorFn, filterFn) {
6 return function (rootValue, args, context, info) {
7 var _a;
8 var asyncIterator = asyncIteratorFn(rootValue, args, context, info);
9 var getNextPromise = function () {
10 return new Promise(function (resolve, reject) {
11 var inner = function () {
12 asyncIterator
13 .next()
14 .then(function (payload) {
15 if (payload.done === true) {
16 resolve(payload);
17 return;
18 }
19 Promise.resolve(filterFn(payload.value, args, context, info))
20 .catch(function () { return false; })
21 .then(function (filterResult) {
22 if (filterResult === true) {
23 resolve(payload);
24 return;
25 }
26 inner();
27 return;
28 });
29 })
30 .catch(function (err) {
31 reject(err);
32 return;
33 });
34 };
35 inner();
36 });
37 };
38 var asyncIterator2 = (_a = {
39 next: function () {
40 return getNextPromise();
41 },
42 return: function () {
43 return asyncIterator.return();
44 },
45 throw: function (error) {
46 return asyncIterator.throw(error);
47 }
48 },
49 _a[iterall_1.$$asyncIterator] = function () {
50 return this;
51 },
52 _a);
53 return asyncIterator2;
54 };
55};
56exports.withFilter = withFilter;
57//# sourceMappingURL=with-filter.js.map
\No newline at end of file