@aeolun/graphql-redis-subscriptions
Version:
A graphql-subscriptions PubSub Engine using redis
41 lines • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withFilter = void 0;
var withFilter = function (asyncIteratorFn, filterFn) {
return function (rootValue, args, context, info) {
var _a;
var asyncIterator = asyncIteratorFn();
var getNextPromise = function () {
return asyncIterator
.next()
.then(function (payload) { return Promise.all([
payload,
Promise.resolve(filterFn(payload.value, args, context, info)).catch(function () { return false; }),
]); })
.then(function (_a) {
var payload = _a[0], filterResult = _a[1];
if (filterResult === true) {
return payload;
}
return getNextPromise();
});
};
return _a = {
next: function () {
return getNextPromise();
},
return: function () {
return asyncIterator.return();
},
throw: function (error) {
return asyncIterator.throw(error);
}
},
_a[Symbol.asyncIterator] = function () {
return this;
},
_a;
};
};
exports.withFilter = withFilter;
//# sourceMappingURL=with-filter.js.map