@kitmi/utils
Version:
A JavaScript utility library for both server and browser
37 lines (36 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _reduce = /*#__PURE__*/ _interop_require_default(require("lodash/reduce"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const mapFilterReducerArray = (predicate, mapper)=>(result, value)=>{
if (predicate(value)) {
result.push(mapper(value));
}
return result;
};
const mapFilterReducerObject = (predicate, mapper)=>(result, value, key)=>{
if (predicate(value)) {
result[key] = mapper(value);
}
return result;
};
/**
* Map the filtered collection.
* @param {object} collection
* @param {function} filterPredicate
* @param {function} mapper
*/ const mapFilter = (collection, filterPredicate, mapper)=>Array.isArray(collection) ? (0, _reduce.default)(collection, mapFilterReducerArray(filterPredicate, mapper), []) : (0, _reduce.default)(collection, mapFilterReducerObject(filterPredicate, mapper), {});
const _default = mapFilter;
//# sourceMappingURL=mapFilter.js.map