mirror of
https://github.com/swc-project/swc.git
synced 2024-12-29 16:42:28 +03:00
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
// Loaded from https://deno.land/x/ramda@v0.27.2/source/propOr.js
|
|
|
|
|
|
import _curry3 from './internal/_curry3.js';
|
|
import defaultTo from './defaultTo.js';
|
|
import prop from './prop.js';
|
|
|
|
|
|
/**
|
|
* Return the specified property of the given non-null object if the property
|
|
* is present and it's value is not `null`, `undefined` or `NaN`.
|
|
*
|
|
* Otherwise the first argument is returned.
|
|
*
|
|
* @func
|
|
* @memberOf R
|
|
* @since v0.6.0
|
|
* @category Object
|
|
* @sig a -> String -> Object -> a
|
|
* @param {*} val The default value.
|
|
* @param {String} p The name of the property to return.
|
|
* @param {Object} obj The object to query.
|
|
* @return {*} The value of given property of the supplied object or the default value.
|
|
* @example
|
|
*
|
|
* const alice = {
|
|
* name: 'ALICE',
|
|
* age: 101
|
|
* };
|
|
* const favorite = R.prop('favoriteLibrary');
|
|
* const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');
|
|
*
|
|
* favorite(alice); //=> undefined
|
|
* favoriteWithDefault(alice); //=> 'Ramda'
|
|
*/
|
|
var propOr = _curry3(function propOr(val, p, obj) {
|
|
return defaultTo(val, prop(p, obj));
|
|
});
|
|
export default propOr;
|