1 | var keys = require('./keys')
|
2 | var findIndexOf = require('./findIndexOf')
|
3 | var isEqual = require('./isEqual')
|
4 |
|
5 | var some = require('./some')
|
6 | var includeArrays = require('./includeArrays')
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | function isMatch (obj, source) {
|
16 | var objKeys = keys(obj)
|
17 | var sourceKeys = keys(source)
|
18 | if (sourceKeys.length) {
|
19 | if (includeArrays(objKeys, sourceKeys)) {
|
20 | return some(sourceKeys, function (key2) {
|
21 | return findIndexOf(objKeys, function (key1) {
|
22 | return key1 === key2 && isEqual(obj[key1], source[key2])
|
23 | }) > -1
|
24 | })
|
25 | }
|
26 | } else {
|
27 | return true
|
28 | }
|
29 | return isEqual(obj, source)
|
30 | }
|
31 |
|
32 | module.exports = isMatch
|