| /** |
| * The base implementation of `_.conformsTo` which accepts `props` to check. |
| * |
| * @private |
| * @param {Object} object The object to inspect. |
| * @param {Object} source The object of property predicates to conform to. |
| * @returns {boolean} Returns `true` if `object` conforms, else `false`. |
| */ |
| function baseConformsTo(object, source, props) { |
| var length = props.length; |
| if (object == null) { |
| return !length; |
| } |
| object = Object(object); |
| while (length--) { |
| var key = props[length], |
| predicate = source[key], |
| value = object[key]; |
| |
| if ((value === undefined && !(key in object)) || !predicate(value)) { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| module.exports = baseConformsTo; |