40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
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 =
|
|
/*#__PURE__*/
|
|
_curry2(function whereEq(spec, testObj) {
|
|
return where(map(equals, spec), testObj);
|
|
});
|
|
|
|
export default whereEq; |