conforms.js 827 B

1234567891011121314151617181920212223242526272829
  1. var baseClone = require('./_baseClone'),
  2. baseConforms = require('./_baseConforms');
  3. /**
  4. * Creates a function that invokes the predicate properties of `source` with
  5. * the corresponding property values of a given object, returning `true` if
  6. * all predicates return truthy, else `false`.
  7. *
  8. * @static
  9. * @memberOf _
  10. * @since 4.0.0
  11. * @category Util
  12. * @param {Object} source The object of property predicates to conform to.
  13. * @returns {Function} Returns the new spec function.
  14. * @example
  15. *
  16. * var users = [
  17. * { 'user': 'barney', 'age': 36 },
  18. * { 'user': 'fred', 'age': 40 }
  19. * ];
  20. *
  21. * _.filter(users, _.conforms({ 'age': function(n) { return n > 38; } }));
  22. * // => [{ 'user': 'fred', 'age': 40 }]
  23. */
  24. function conforms(source) {
  25. return baseConforms(baseClone(source, true));
  26. }
  27. module.exports = conforms;