UNPKG

foop

Version:

interfaces that describe their intentions.

37 lines (35 loc) 2.63 kB
/* 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