forked from lodash/lodash
-
Notifications
You must be signed in to change notification settings - Fork 0
/
conformsTo.js
30 lines (28 loc) · 922 Bytes
/
conformsTo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import baseConformsTo from './.internal/baseConformsTo.js'
import keys from './keys.js'
/**
* Checks if `object` conforms to `source` by invoking the predicate
* properties of `source` with the corresponding property values of `object`.
*
* **Note:** This method is equivalent to `conforms` when `source` is
* partially applied.
*
* @since 4.14.0
* @category Lang
* @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`.
* @example
*
* const object = { 'a': 1, 'b': 2 }
*
* conformsTo(object, { 'b': function(n) { return n > 1 } })
* // => true
*
* conformsTo(object, { 'b': function(n) { return n > 2 } })
* // => false
*/
function conformsTo(object, source) {
return source == null || baseConformsTo(object, source, keys(source))
}
export default conformsTo