react-collection-helpers
Version:
React Collection Helpers Component
36 lines (27 loc) • 1.32 kB
JavaScript
;
exports.__esModule = true;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports.default = applyPredicateToCollectionWith;
var _errorMessage = require('../helpers/error-message.helpers');
function applyPredicateToCollectionWith(matcher) {
return function (_ref) {
var collection = _ref.collection,
predicate = _ref.predicate,
component = _ref.component;
// For now, we don't accept predicates that aren't objects or functions.
var type = Array.isArray(predicate) ? 'array' : typeof predicate === 'undefined' ? 'undefined' : _typeof(predicate);
switch (type) {
case 'function':
return matcher(collection, predicate);
case 'object':
return matcher(collection, function (item) {
return Object.keys(predicate).every(function (key) {
return predicate[key] === item[key];
});
});
default:
throw new Error((0, _errorMessage.invalidTypeSuppliedAsPredicate)({ type: type, predicate: predicate, component: component }));
}
};
}
module.exports = exports['default'];