foop
Version:
interfaces that describe their intentions.
37 lines (35 loc) • 2.63 kB
JavaScript
/* eslint no-confusing-arrow: "OFF" */
var isNil = require('../is/nullOrUndefined')
var curry = require('./curry')
/**
* Returns a function that when supplied an object returns the indicated
* property of that object, if it exists.
*
* @version 3.0.0 <- checks isNill
* @since v5.0.0
* @memberOf fp
*
* @param {String} key The property name
* @param {Object} obj The object to query
* @return {*} The value at `obj[key]`.
*
* {@link https://github.com/ramda/ramda/blob/master/src/prop.js ramda-prop}
* @see {@link ramda-prop}
*
* @TODO could toKey here
*
* @func
* @category Object
* @sig s -> {s: a} -> a | Undefined
*
* @types fp
* @tests fp/prop
*
* @example
*
* prop('x', {x: 100}); //=> 100
* prop('x', {}); //=> undefined
*
*/
module.exports = curry(2, function (key, obj) { return isNil(obj) ? undefined : obj[key]; })
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC5qcyIsInNvdXJjZXMiOlsicHJvcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tY29uZnVzaW5nLWFycm93OiBcIk9GRlwiICovXG5jb25zdCBpc05pbCA9IHJlcXVpcmUoJy4uL2lzL251bGxPclVuZGVmaW5lZCcpXG5jb25zdCBjdXJyeSA9IHJlcXVpcmUoJy4vY3VycnknKVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IHdoZW4gc3VwcGxpZWQgYW4gb2JqZWN0IHJldHVybnMgdGhlIGluZGljYXRlZFxuICogcHJvcGVydHkgb2YgdGhhdCBvYmplY3QsIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAdmVyc2lvbiAzLjAuMCA8LSBjaGVja3MgaXNOaWxsXG4gKiBAc2luY2UgdjUuMC4wXG4gKiBAbWVtYmVyT2YgZnBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5IFRoZSBwcm9wZXJ0eSBuYW1lXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIFRoZSBvYmplY3QgdG8gcXVlcnlcbiAqIEByZXR1cm4geyp9IFRoZSB2YWx1ZSBhdCBgb2JqW2tleV1gLlxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcmFtZGEvcmFtZGEvYmxvYi9tYXN0ZXIvc3JjL3Byb3AuanMgcmFtZGEtcHJvcH1cbiAqIEBzZWUge0BsaW5rIHJhbWRhLXByb3B9XG4gKlxuICogQFRPRE8gY291bGQgdG9LZXkgaGVyZVxuICpcbiAqIEBmdW5jXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAc2lnIHMgLT4ge3M6IGF9IC0+IGEgfCBVbmRlZmluZWRcbiAqXG4gKiBAdHlwZXMgZnBcbiAqIEB0ZXN0cyBmcC9wcm9wXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIHByb3AoJ3gnLCB7eDogMTAwfSk7IC8vPT4gMTAwXG4gKiAgICAgIHByb3AoJ3gnLCB7fSk7IC8vPT4gdW5kZWZpbmVkXG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGN1cnJ5KDIsIChrZXksIG9iaikgPT4gaXNOaWwob2JqKSA/IHVuZGVmaW5lZCA6IG9ialtrZXldKVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztBQUM5Q0EsR0FBSyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdDaEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQUEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEFBQUcsU0FBQSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBQSxDQUFDOyJ9