UNPKG

moltres-utils

Version:
71 lines (58 loc) 1.98 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 _isFunction = _interopRequireDefault(require("../lang/isFunction")); var _isMap = _interopRequireDefault(require("../lang/isMap")); var _isNil = _interopRequireDefault(require("../lang/isNil")); var _isUndefined = _interopRequireDefault(require("../lang/isUndefined")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Returns whether or not an object has an own property with the specified name * * If prop is a function then it is executed against value as a selector. * If prop is undefined then value will be checked for truthiness. * * @function * @since v0.0.3 * @category data * @sig s -> {s: x} -> Boolean * @param {String | Function} prop The name of the property to check for. * @param {Object | Map} value The value to query. * @returns {Boolean} Whether the property exists. * @example * * hasProp('name', {name: 'philipp'}) //=> true * hasProp('name', {}) //=> false * * hasProp(undefined, {}) //=> true * hasProp(undefined, null) //=> false * * hasProp((value) => value.name, { name: 'eslam'}) //=> true * hasProp((value) => value.birthday, { name: 'raees'}) //=> false */ var hasProp = (0, _curry.default)(function (prop, value) { if ((0, _isUndefined.default)(prop)) { return !!value; } if ((0, _isFunction.default)(prop)) { try { return !!prop(value); } catch (error) { return false; } } if ((0, _isNil.default)(value)) { return false; } if ((0, _isMap.default)(value)) { return value.has(prop); } return Object.prototype.hasOwnProperty.call(value, prop); }); var _default = hasProp; exports.default = _default; //# sourceMappingURL=hasProp.js.map