mirror of https://github.com/lukechilds/docs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
var _curry2 = require('./internal/_curry2');
|
|
var equals = require('./equals');
|
|
var map = require('./map');
|
|
var where = 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.where
|
|
* @example
|
|
*
|
|
* // pred :: Object -> Boolean
|
|
* var 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
|
|
*/
|
|
module.exports = _curry2(function whereEq(spec, testObj) {
|
|
return where(map(equals, spec), testObj);
|
|
});
|
|
|