/** * 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) { let length = props.length; if (object == null) { return !length; } object = Object(object); while (length--) { const key = props[length]; const predicate = source[key]; const value = object[key]; if ((value === undefined && !(key in object)) || !predicate(value)) { return false; } } return true; } export default baseConformsTo;