iter-tools-es
Version:
The iterable toolbox
29 lines (23 loc) • 638 B
JavaScript
const {
ensureIterable
} = require('../../internal/iterable.js');
const {
curry
} = require('../../internal/curry.js');
const {
__zip
} = require('../$zip/zip.js');
const {
__filter
} = require('../$filter/filter.js');
const {
__map
} = require('../$map/map.js');
function __compress(source, included) {
return __map(__filter(__zip([source, included]), ([, isIncluded]) => isIncluded), ([value]) => value);
}
exports.__compress = __compress;
const compress = /*#__PURE__*/curry(function $compress(source, included) {
return __compress(ensureIterable(source), ensureIterable(included));
});
exports.compress = compress;