var _curry2 = /*#__PURE__*/require('./internal/_curry2'); var equals = /*#__PURE__*/require('./equals'); var map = /*#__PURE__*/require('./map'); var where = /*#__PURE__*/require('./where'); /** * 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 = /*#__PURE__*/_curry2(function whereEq(spec, testObj) { return where(map(equals, spec), testObj); }); module.exports = whereEq;