iter-tools-es
Version:
The iterable toolbox
29 lines (23 loc) • 742 B
JavaScript
const {
asyncEnsureIterable
} = require('../../internal/async-iterable.js');
const {
curry
} = require('../../internal/curry.js');
const {
__asyncZip
} = require('../$zip/async-zip.js');
const {
__asyncFilter
} = require('../$filter/async-filter.js');
const {
__asyncMap
} = require('../$map/async-map.js');
function __asyncCompress(source, included) {
return __asyncMap(__asyncFilter(__asyncZip([source, included]), ([, isIncluded]) => isIncluded), ([value]) => value);
}
exports.__asyncCompress = __asyncCompress;
const asyncCompress = /*#__PURE__*/curry(function $compress(source, included) {
return __asyncCompress(asyncEnsureIterable(source), asyncEnsureIterable(included));
});
exports.asyncCompress = asyncCompress;