// 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;