UNPKG

moltres-utils

Version:
66 lines (53 loc) 1.79 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _curry = _interopRequireDefault(require("../common/curry")); var _defn = _interopRequireDefault(require("../common/defn")); var _isFunction = _interopRequireDefault(require("../lang/isFunction")); var _isNil = _interopRequireDefault(require("../lang/isNil")); var _isUndefined = _interopRequireDefault(require("../lang/isUndefined")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Returns a function that when supplied an object returns the indicated property of that object, if it exists. * * @function * @since v0.0.3 * @alias prop * @category data * @sig s -> {s: a} -> a | Undefined * @param {string|number|Function} prop The property name or property selector * @param {Object} value The value to query * @returns {*} The value at the given property * @example * * getProp('x', {x: 100}) //=> 100 * getProp('x', {}) //=> undefined * getProp(undefined, {}) //=> {} * getProp(1, ['foo', 'bar']) //=> 'bar' * getProp((value) => value[0], ['foo', 'bar']) //=> 'foo' * getProp('foo', { * foo: 'bar', * get(prop) { return this[prop] } * }) //=> 'bar' */ var getProp = (0, _curry.default)((0, _defn.default)('getProp', function (prop, value) { if ((0, _isUndefined.default)(prop)) { return value; } if ((0, _isFunction.default)(prop)) { return prop(value); } if ((0, _isNil.default)(value)) { return undefined; } if ((0, _isFunction.default)(value.get)) { return value.get(prop); } return value[prop]; })); var _default = getProp; exports.default = _default; //# sourceMappingURL=getProp.js.map