// Loaded from https://deno.land/x/ramda@v0.27.2/source/whereEq.js import _curry2 from './internal/_curry2.js'; import equals from './equals.js'; import map from './map.js'; import where from './where.js'; /** * Takes a spec object and a test object; returns true if the test satisfies * the spec, false otherwise. An object satisfies the spec if, for each of the * spec's own properties, accessing that property of the object gives the same * value (in [`R.equals`](#equals) terms) as accessing that property of the * spec. * * `whereEq` is a specialization of [`where`](#where). * * @func * @memberOf R * @since v0.14.0 * @category Object * @sig {String: *} -> {String: *} -> Boolean * @param {Object} spec * @param {Object} testObj * @return {Boolean} * @see R.propEq, R.where * @example * * // pred :: Object -> Boolean * const pred = R.whereEq({a: 1, b: 2}); * * pred({a: 1}); //=> false * pred({a: 1, b: 2}); //=> true * pred({a: 1, b: 2, c: 3}); //=> true * pred({a: 1, b: 1}); //=> false */ var whereEq = _curry2(function whereEq(spec, testObj) { return where(map(equals, spec), testObj); }); export default whereEq;