// Loaded from https://deno.land/x/ramda@v0.27.2/source/pathEq.js import _curry3 from './internal/_curry3.js'; import equals from './equals.js'; import path from './path.js'; /** * Determines whether a nested path on an object has a specific value, in * [`R.equals`](#equals) terms. Most likely used to filter a list. * * @func * @memberOf R * @since v0.7.0 * @category Relation * @typedefn Idx = String | Int | Symbol * @sig [Idx] -> a -> {a} -> Boolean * @param {Array} path The path of the nested property to use * @param {*} val The value to compare the nested property with * @param {Object} obj The object to check the nested property in * @return {Boolean} `true` if the value equals the nested object property, * `false` otherwise. * @example * * const user1 = { address: { zipCode: 90210 } }; * const user2 = { address: { zipCode: 55555 } }; * const user3 = { name: 'Bob' }; * const users = [ user1, user2, user3 ]; * const isFamous = R.pathEq(['address', 'zipCode'], 90210); * R.filter(isFamous, users); //=> [ user1 ] */ var pathEq = _curry3(function pathEq(_path, val, obj) { return equals(path(_path, obj), val); }); export default pathEq;