UNPKG

708 BJavaScriptView Raw
1import baseIsMatch from './_baseIsMatch.js';
2import getMatchData from './_getMatchData.js';
3import matchesStrictComparable from './_matchesStrictComparable.js';
4
5/**
6 * The base implementation of `_.matches` which doesn't clone `source`.
7 *
8 * @private
9 * @param {Object} source The object of property values to match.
10 * @returns {Function} Returns the new spec function.
11 */
12function baseMatches(source) {
13 var matchData = getMatchData(source);
14 if (matchData.length == 1 && matchData[0][2]) {
15 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
16 }
17 return function(object) {
18 return object === source || baseIsMatch(object, source, matchData);
19 };
20}
21
22export default baseMatches;