mirror of
https://github.com/swc-project/swc.git
synced 2024-12-25 14:43:33 +03:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
// 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;
|