diff options
Diffstat (limited to 'deps/npm/node_modules/lodash/internal/baseMatches.js')
-rw-r--r-- | deps/npm/node_modules/lodash/internal/baseMatches.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/deps/npm/node_modules/lodash/internal/baseMatches.js b/deps/npm/node_modules/lodash/internal/baseMatches.js new file mode 100644 index 0000000000..5f76c67dcd --- /dev/null +++ b/deps/npm/node_modules/lodash/internal/baseMatches.js @@ -0,0 +1,30 @@ +var baseIsMatch = require('./baseIsMatch'), + getMatchData = require('./getMatchData'), + toObject = require('./toObject'); + +/** + * The base implementation of `_.matches` which does not clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + var key = matchData[0][0], + value = matchData[0][1]; + + return function(object) { + if (object == null) { + return false; + } + return object[key] === value && (value !== undefined || (key in toObject(object))); + }; + } + return function(object) { + return baseIsMatch(object, matchData); + }; +} + +module.exports = baseMatches; |