UNPKG

716 BJavaScriptView Raw
1/**
2 * The base implementation of `_.conformsTo` which accepts `props` to check.
3 *
4 * @private
5 * @param {Object} object The object to inspect.
6 * @param {Object} source The object of property predicates to conform to.
7 * @returns {boolean} Returns `true` if `object` conforms, else `false`.
8 */
9function baseConformsTo(object, source, props) {
10 var length = props.length;
11 if (object == null) {
12 return !length;
13 }
14 object = Object(object);
15 while (length--) {
16 var key = props[length],
17 predicate = source[key],
18 value = object[key];
19
20 if ((value === undefined && !(key in object)) || !predicate(value)) {
21 return false;
22 }
23 }
24 return true;
25}
26
27export default baseConformsTo;