Module

x/lodash/_baseMatchesProperty.js

A modern JavaScript utility library delivering modularity, performance, & extras.
Extremely Popular
Go to Latest
File
import baseIsEqual from './_baseIsEqual.js';import get from './get.js';import hasIn from './hasIn.js';import isKey from './_isKey.js';import isStrictComparable from './_isStrictComparable.js';import matchesStrictComparable from './_matchesStrictComparable.js';import toKey from './_toKey.js';
/** Used to compose bitmasks for value comparisons. */var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
/** * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. * * @private * @param {string} path The path of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new spec function. */function baseMatchesProperty(path, srcValue) { if (isKey(path) && isStrictComparable(srcValue)) { return matchesStrictComparable(toKey(path), srcValue); } return function(object) { var objValue = get(object, path); return (objValue === undefined && objValue === srcValue) ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); };}
export default baseMatchesProperty;