react-collection-helpers
Version:
React Collection Helpers Component
29 lines (23 loc) • 1.21 kB
JavaScript
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; };
import { invalidTypeSuppliedAsPredicate } from '../helpers/error-message.helpers';
export default 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(invalidTypeSuppliedAsPredicate({ type: type, predicate: predicate, component: component }));
}
};
}